A powerful Django-based backend service for the Flickture movie platform, providing a robust API for movie discovery, user management, and social features.
- Movie Data Integration
- Integration with TMDB API for comprehensive movie data
- Automatic movie data synchronization and updates
- Support for movie details, cast, genres, and collections
- High-quality movie posters and backdrop images
- Authentication System
- Token-based authentication
- User registration and login
- Profile management with customizable avatars and banners
- Social features including following/followers system
- Advanced Movie Management
- Detailed movie information storage
- Cast and crew information
- Genre categorization
- Movie collections support
- Popularity and rating tracking
-
Watchlist System
- Multiple watch statuses (Watchlist, Watching, Watched)
- Personal watchlist management
- Watch progress tracking
-
Social Features
- Movie comments and reviews
- Rating system (1-5 stars)
- Comment likes and responses
- User following system
-
API Documentation
- Swagger/OpenAPI integration
- Interactive API documentation
- Detailed endpoint descriptions
-
Media Management
- User avatar and banner image handling
- Secure media file storage
- Optimized image serving
- Framework: Django 4.2
- API: Django REST Framework
- Database: SQLite (Development) / PostgreSQL (Production)
- Authentication: Token-based authentication
- Documentation: drf-yasg (Swagger/OpenAPI)
- Image Processing: Pillow
- External APIs: TMDB API Integration
-
Advanced Movie Statistics
- Watch time analytics
- Genre preferences
- Viewing history trends
- Personalized recommendations
-
Extended Movie Information
- Crew details
- Production companies
- Filming locations
- Budget and revenue data
- Advanced Social Features
- User activity feed
- Movie discussions/forums
- User groups and communities
- Shared watchlists
- Content Moderation
- Comment moderation system
- User-generated content filtering
- Report handling
- Content guidelines enforcement
- API Enhancements
- GraphQL support
- Real-time updates
- Enhanced caching
- Rate limiting
- Webhook support
-
Prerequisites
- Python 3.8+
- pip
- virtualenv (recommended)
-
Environment Setup
# Create and activate virtual environment python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate # Install dependencies pip install -r requirements.txt # Set up environment variables cp env.example .env # Edit .env with your configuration
-
Database Setup
python manage.py migrate python manage.py createsuperuser
-
Running the Server
python manage.py runserver
-
API Documentation
- Swagger UI: http://localhost:8000/swagger/
- ReDoc: http://localhost:8000/redoc/
The API documentation is available through Swagger UI and ReDoc interfaces when the server is running. Key endpoints include:
-
Authentication
/api/v1/auth/register/: User registration/api/v1/auth/login/: User login/api/v1/auth/profile/: User profile management
-
Movies
/api/v1/movies/: Movie listing and search/api/v1/movies/{id}/: Detailed movie information/api/v1/movies/{id}/cast/: Movie cast information
-
User Features
/api/v1/watchlist/: Watchlist management/api/v1/favorites/: Favorites management/api/v1/comments/: Movie comments and reviews
We welcome contributions! Please follow these steps:
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- TMDB API for movie data
- Django and Django REST Framework communities
- All contributors to the project