A modern streaming platform built with a microservices architecture, featuring content recommendation, user management, and a responsive web interface.
- Frontend: React + Vite + React Router
- Backend: Spring Boot (Java 17) + Spring Security + JPA
- Recommendation Service: FastAPI (Python)
- Frontend: React 18, Vite, Axios, React Router
- Backend: Spring Boot 3.2.2, PostgreSQL, Maven
- Recommendation: FastAPI, Uvicorn, NumPy
- Deployment: Docker, GitHub Actions, GitHub Pages
- Node.js 18+
- Java 17+
- Python 3.9+
- PostgreSQL
- Docker (optional)
-
Clone the repository
git clone <repository-url> cd netflocks-clone
-
Frontend Setup
cd frontend npm install npm run dev -
Backend Setup
cd backend mvn clean install mvn spring-boot:run -
Recommendation Service Setup
cd reco-service pip install -r requirements.txt uvicorn main:app --reload
Create .env files in each service directory:
Backend (.env)
DATABASE_URL=jdbc:postgresql://localhost:5432/netflocks
DB_USERNAME=your_username
DB_PASSWORD=your_password
JWT_SECRET=your_jwt_secretFrontend (.env)
VITE_API_BASE_URL=http://localhost:8080
VITE_RECO_SERVICE_URL=http://localhost:8000docker-compose up -d# Frontend
docker build -t netflocks-frontend ./frontend
docker run -p 3000:3000 netflocks-frontend
# Backend
docker build -t netflocks-backend ./backend
docker run -p 8080:8080 netflocks-backend
# Recommendation Service
docker build -t netflocks-reco ./reco-service
docker run -p 8000:8000 netflocks-recoThe frontend is automatically deployed to GitHub Pages via GitHub Actions when pushing to the main branch.
- Backend: Deployed to your preferred cloud platform (Heroku, AWS, DigitalOcean)
- Recommendation Service: Deployed alongside backend or separately
- Database: PostgreSQL instance on your cloud provider
CI/CD pipelines are set up for:
- Frontend testing and deployment to GitHub Pages
- Backend testing and Docker image building
- Recommendation service testing and Docker image building
GET /api/auth/**- Authentication endpointsGET /api/users/**- User managementGET /api/content/**- Content managementGET /api/profiles/**- User profiles
GET /health- Health checkGET /recommendations?profileId={id}&limit={limit}- Get recommendations
cd frontend
npm run lintcd backend
mvn testcd reco-service
pytest- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Frontend Repository
- Backend Repository
- Recommendation Service Repository
- Live Demo (After deployment)
For support and questions:
- Create an issue in the repository
- Contact the development team
Note: Make sure to configure all environment variables and secrets in your deployment platform before going to production.