The goal of this project is to implement a service for convenient storage of analytical information and UGC (User-Generated Content). UGC encompasses everything users add to your site, such as likes, bookmarks, and movie reviews. As a result, the storage not only needs to handle large data but also provide fast access to it (within 200 milliseconds). Therefore, as part of this project, research was conducted to meet these requirements, and MongoDB, a document-oriented NoSQL database, was chosen as the database solution. An asynchronous framework, FastAPI, is used to provide an API layer for the project. The project is run through an NGINX proxy server, which serves as the entry point for the web application.
Python
FastAPI
MongoDB
NGINX
Gunicorn
Docker
Clone the repository and navigate to the /infra
directory:
git clone https://github.com/temirovazat/cinemax-ugc.git
cd cinemax-ugc/infra/
Create a .env file and add project settings:
nano .env
# MongoDB
MONGO_HOST=mongo
MONGO_PORT=27017
Deploy and run the project in containers:
docker-compose up
The API documentation will be available at:
http://127.0.0.1/openapi