A backend-focused application built with DRF that allows users to get information about Movies, Directors and Actors connected with the TMDB API to get full information about a movie.
Live Demo: https://movie-api-one.vercel.app/
- Backend: Python, Django Rest Framework
- Frontend: React, JavaScript, TailwindCSS (Generated with AI using Claude Code)
- Database: PostgreSQL, Supabase
- Caching: Redis Cloud
- Backend Deployment: Render
- Frontend Deployment: Vercel
- Movies listing with title, description, rating, genres, poster, director and actor
- Director and Actor listing with movies count
- Full CRUD operations for authenticated users
- JWT authentication
- API documentation with Swagger
- User enters to the main page and see movies listing
- Can see movie details, as well as directors and actors pages
- User wants to create, edit or update a movie, director or actor info
- Create an account or login
- Now it is allowed to make changes
git clone https://github.com/jscode-1302/movie-api.git
cd movie-api
# Backend setup
cd backend/
pip install -r requirements.txt
cp .env.example .env
# Edit .env with your configuration
python manage.py migrate
python manage.py runserver
# Frontend setup (new terminal)
cd frontend/
npm install
cp .env.example .env
# Edit .env with your API URL
npm run devCreate a .env file in the backend directory with:
# Django Configuration
SECRET_KEY=your-secret-key
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1
# Database Configuration
DATABASE_URL=postgresql://USER:PASSWORD@HOST:PORT/NAME
# Redis Cache Configuration
REDIS_URL=redis://127.0.0.1:6379/1
# TMDb API Configuration
# Get your API key from: https://www.themoviedb.org/settings/api
TMDB_API_KEY=your-tmdb-api-key
# CORS Configuration
CORS_ALLOWED_ORIGINS=http://localhost:5173,http://localhost:8000
# Logging
DEBUG_LOG_LEVEL=DEBUG
DJANGO_LOG_FILE=django_logs.txtOnce the backend is running, visit:
- Swagger UI:
http://localhost:8000/api/schema/swagger-ui/ - ReDoc:
http://localhost:8000/api/schema/redoc/
Contributions, issues and feature requests are welcome!
Feel free to check the issues page.
If you have any questions or suggestions, feel free to reach out:
- GitHub: @jscode-1302
MIT License