The Netflix clone project is a streaming platform with secure user authentication, multiple profiles per account, integrated payment processing, real-time movie updates and AI based recommendations. It delivers high-quality content and constantly refreshes its library to provide the latest films and shows. The platform is built in microservices architecture, ensure scalability and maintainability.
- User Authentication: Secure user registration, login, logout and reseting password.
- Multiple Profiles: Each user can contain up to 5 profiles.
- Payment Processing: Several different payment methods.
- Video Streaming: Custom streamer with the ability to change qualities.
- AI Based Recommenations: Movie recommendations based AI by profile.
- Front End: React, TypeScript
- Back End: Node.js, Express, TypeScript
- Data Base: MongoDB, MySQL
- Caching: Redis
- Cloud: AWS
- Event Streaming: Apache Kafka
- Containerization: Docker
- AI: Groq (Llama)
- Streaming: HLS
- State Management: Redux
- Styling: TailWind, CSS
- Authentication: JWT, bcrypt, crypto, twilio
- Payment Processing: Stripe, PayPal
- Testing: Jest, SuperTest
Microservices architecture divides the application into independent services like authentication, payment, and streaming, communicating via APIs for scalability and flexibility.
The streaming service uses HLS to split the master file into segments, which are uploaded to AWS S3, allowing dynamic quality adjustments based on the master file. This ensures smooth playback with adaptive streaming across different network conditions.
recommendations are powered by Groq, processing user activity in real-time to deliver personalized content suggestions, enhancing user engagement and experience on the platform.
To enhance code reuse and maintain consistency across the microservices, common utilities, types, and shared logic are encapsulated in a private npm package (@netflix-adea/common). This package is used across different services within the platform to ensure a modular and DRY (Don't Repeat Yourself) approach, making the development process more efficient and the codebase easier to maintain.



