How nidhi-kumari10/movie-recommendation-system works
This is a full-stack movie discovery and recommendation application. Users browse popular or filtered titles, inspect details, save movies and record likes, ratings, and reviews; those interactions support personalized recommendations, with genre-based fallback when similarity data is unavailable. The frontend routes these experiences, while Express routes requests to authentication, movie, and user controllers. MongoDB-backed user state and the local movie catalog support the service; TMDB supplies poster images. Frontend-to-API calls are not shown in the excerpts, so those links are marked unverified.
Main entry points: App.jsx Route app · userRoutes.js User endpoints · server.js Express server · userController.js Preferences and recommendations
Components 25
Web experience
- Route app
frontend/src/App.jsx - Browse home
frontend/src/pages/Home.jsx - Movie details
frontend/src/pages/MovieDetail.jsx - Recommendations view
frontend/src/pages/Recommend.jsx - Wishlist view
frontend/src/pages/Wishlist.jsx - Profile view
frontend/src/pages/Profile.jsx - Authentication views
frontend/src/pages/Auth.jsx - Login view
frontend/src/pages/Login.jsx - Movie card
frontend/src/components/MovieCard.jsx - Navigation bar
frontend/src/components/Navbar.jsx
API and domain
- Movie endpoints
backend/routes/movieRoutes.js - Catalog and recommendations
backend/controllers/movieController.js - User endpoints
backend/routes/userRoutes.js - Preferences and recommendations
backend/controllers/userController.js - Express server
backend/server.js
Identity and profiles
- Auth endpoints
backend/routes/authRoutes.js - Signup and login
backend/controllers/authController.js - JWT guard
backend/middleware/authMiddleware.js
Persistence and media
- User document
backend/models/User.js - Movie catalog
backend/data/movies.json - Poster lookup
backend/utils/tmdb.js - Database connection
backend/config/db.js
Other components
- Movie viewer
- TMDB service
- MongoDB
Connections 34
- Movie viewer → Route app: uses
- Route app → Browse home: routes to
frontend/src/App.jsx - Route app → Movie details: routes to
frontend/src/App.jsx - Route app → Recommendations view: routes to
frontend/src/App.jsx - Route app → Wishlist view: routes to
frontend/src/App.jsx - Route app → Profile view: routes to
frontend/src/App.jsx - Route app → Authentication views: routes to
frontend/src/App.jsx - Route app → Login view: routes to
frontend/src/App.jsx - Route app → Navigation bar: renders
frontend/src/App.jsx - Browse home → Movie card: renders
frontend/src/pages/Home.jsx - Recommendations view → Movie card: renders
frontend/src/pages/Recommend.jsx - Profile view → Movie card: renders
frontend/src/pages/Profile.jsx - Movie card → User endpoints: posts preferences
- Recommendations view → User endpoints: requests recommendations
- Wishlist view → User endpoints: requests wishlist
- Profile view → User endpoints: requests profile
- Authentication views → Auth endpoints: submits credentials
- Login view → Auth endpoints: submits credentials
- Express server → Movie endpoints: mounts
backend/server.js - Express server → User endpoints: mounts
backend/server.js - Express server → Auth endpoints: mounts
backend/server.js - Movie endpoints → Catalog and recommendations: dispatches
backend/routes/movieRoutes.js - User endpoints → Preferences and recommendations: dispatches
backend/routes/userRoutes.js - User endpoints → JWT guard: protects routes
backend/routes/userRoutes.js - Auth endpoints → Signup and login: dispatches
backend/routes/authRoutes.js - Catalog and recommendations → Movie catalog: reads
backend/controllers/movieController.js - Catalog and recommendations → Poster lookup: requests posters
backend/controllers/movieController.js - Preferences and recommendations → Movie catalog: reads
backend/controllers/userController.js - Preferences and recommendations → Poster lookup: requests posters
backend/controllers/userController.js - Poster lookup → TMDB service: searches titles
backend/utils/tmdb.js - Preferences and recommendations → User document: reads and updates
backend/controllers/userController.js - Signup and login → User document: creates and reads
backend/controllers/authController.js - Express server → Database connection: connects
backend/server.js - Database connection → MongoDB: connects to