This is the backend service for a Netflix clone application designed to handle user authentication, video management, video streaming metadata, recommendations, analytics, search, and admin operations. The backend uses modern enterprise technologies including Spring Boot, Kafka, AWS S3 storage, and Elasticsearch.
- User sign-up, login with JWT-based stateless authentication
- Role-based access control with ADMIN and USER roles
- Secure API access and protected admin endpoints
- Video metadata and file handling with AWS S3 uploads
- Video transcoding integration via Kafka event-driven pipeline
- Manifest URL handling for adaptive streaming formats (HLS/DASH)
- Full text video search using Elasticsearch with multi-field queries
- Indexed on upload, supports title, description, and genre search
- Basic collaborative filtering using Kafka user activity streams
- REST endpoint providing personalized suggestions based on watch history
- Collection and storage of user and video events in PostgreSQL
- Paginated, filtered REST analytics endpoints for admin dashboards
- Admin video and user management APIs protected by RBAC
- CRUD operations for videos and users by admins
- Kafka-driven notification microservice framework for push/email/in-app messaging
- Spring Boot for backend REST API and microservices
- PostgreSQL as primary database for users, videos, analytics events
- Kafka for event-driven communication (video upload, user activity, notifications)
- AWS S3 for scalable video and asset storage
- ffmpeg used in transcoding microservice (external, triggered by Kafka)
- Spring Security with JWT for authentication and role-based authorization
- Elasticsearch for fast, scalable video search capabilities
controller/: REST API controllers for auth, videos, user profiles, analytics, and adminservices/: Business logic and event consumers for recommendations, transcoding, analyticsrepository/: JPA and Elasticsearch repositories for data persistence and searchsecurity/: JWT utils, authentication filters, and UserDetails implementationutil/: S3 file upload and Kafka producer utilitiesdto/: Request and response DTOs for API communicationanalytics/: Domain objects and repositories for event trackingnotification/(Upcoming): Notification microservices and Kafka event listeners
- Implement DRM for video content security
- Advanced machine learning based recommendation engine
- Push and email notifications integration
- Payment and subscription management
- Comprehensive integration and UI testing
- Monitoring, logging, and real-time analytics dashboards
- Deploy with Docker and Kubernetes for scalability