MovieRama is a social sharing platform where users can share their favorite movies. Each movie has a title and a small description as well as a date that corresponds to the date it was added to the database. In addition it holds a reference to the user that submitted it. Users can also express their opinion about a movie by either likes or hates.
MovieRama is web application that consists of a RESTful API and a simple user interface that consumes it. The API is built with the Django REST Framework and uses Sqlite as database storage. The User Interface is build with the Bootstrap Framework and is being served through the Django Framework.
The API is using JSON Web Tokens to authenticate requests.
There are two ways to run the application, either using docker or by running the code locally.
Ensure the codebase has been cloned and that you navigate to the project's folder, running the commands:
git clone https://github.com/rania-marou/movierama
cd movierama
Once the application is up and running (by following the steps below), you can visit this link to view the application on your browser.
Depending on the way of running the application, the following requirements should be installed beforehand:
- docker, docker-compose
or
- Python (>=3.8), pip, pipenv
The application can be easily served using docker, by running the commands below:
docker-compose up
There is a bash script that takes care of the project initialization and local deployment, running the following command:
./start.sh
During the initialization process, some sample data of users, movies & votes are being loaded to the application. You can register as a new user or login as one of the already loaded users using the following credentials:
username: jane
password: Testing-123
There are more ways to interact with the API other than the provided UI, by either using the Swagger interface or Postman.
While the application is running you can access the Swagger interface that is being served at the root path of the API.
There is a Postman collection and environment that you can use in order to interact with the api or view example responses of it.
There is a number of tests written to test the basic functionality and responses of the API. In order to run the tests locally you can execute the following command:
pipenv run python manage.py test