- HTML5 & CSS
- Javascript
- Django templates
- Python v. 3.8.6
- Django v. 3.1.5
Inside folder /movieclub_project
, on your terminal of choice, execute the following:
python manage.py makemigrations
in order to generate the necessary files for the database setup;python manage.py migrate
to execute the previous setup files created;python manage.py runserver
to run the server.
As per default, the server adress is http://127.0.0.1:8000/
.
In order to access the administrative interface via /admin
, it is necessary to creat an administrative user.
To do that, inside /movieclub_project
execute python manage.py createsuperuser
and follow the instructions.
Allows movies to be searched by their title.
Utilizes javascript to dynamically show the queried search after 500 milliseconds of text being typed.
Specific files for this page are: (this section title will be hidden for the features below)
index.js
index.html
If user has staff
status, allows movies to be added to database.
add_movie.html
Allows user to create a new list of movies.
add_list.html
Displays requested list page accordingly to the provided ID (integer) and allows user (if it's author) to delete it.
list.html
Displays requested movie page accordingly to the provided ID (integer).
movie.html
Displays a page with all the reviews for requested movie accordingly to the provided ID (integer).
movie_reviews.html
Displays requested user profile page accordingly to the provided username (string).
profile.html
Displays a page with all the lists of the requested user accordingly to the provided username (string).
lists.html
Displays a page with all the reviews of the requested user accordingly to the provided username (string).
user_reviews.html
Displays requested review page accordingly to the provided ID (integer) and allows user (if it's author) to delete or edit it.
review.html
review.js
Registers new movies to specified list via POST
request.
Registers to database new reviews via POST
request.
Returns a JSON response with review data accordingly to the provided ID (integer) via GET
request.
Receives JSON payload via PUT
request with new data and saves it to provided review.
Deletes provided review via POST
request.
review.js
Deletes specified list via POST
request accordingly to provided ID (integer).
Returns a JSON response with movie data accordingly to the provided ID via GET
request, utilizing "movie"
as kwargs
.
Displays a page for the login of registered users.
login.html
Allows logged in users to log out.
Allows the registration of new users.
register.html
Why you believe your project satisfies the distinctiveness and complexity requirements, mentioned above.
The project was made from scratch, based on an original idea, following the requirements and trying to implement all methods learned through the lectures and problem sets.
-
/movieclub_project/movieclub/static/movieclub
contains all javascript and css files. -
/movieclub_project/movieclub/templates/movieclub
contains all .html files.
All files created and used in the project are described in the Features section, with the exception of the following, used more generally:
-
image.js
used to frame images when reframing was needed. -
style.css
used to store all the css specifications. -
apology.html
used to return an apology page with specified error message when needed.
Described in Instalation section.
Some observations:
- The project allows (and requires, initially) manually adding each movie to it's database.
models.py
allows to implement an User.avatar and a Movie.poster, providing the image url, but this feature is not enabled by default. To change it's default values, it is needed to access Django's admin interface via/admin
.