How hanif-089/movix works
MOVIX is a movie-discovery application: users browse catalog pages or search by title/natural-language prompt, then inspect movies and save favorites; authenticated users can also manage profiles and receive preference-based recommendations. The visible runtime is a React client and Express API backed by MongoDB, with embedding generation and semantic-search services; a separate data pipeline prepares and imports movie data. The README describes a FastAPI/Gemini service, but no such service appears in this tree. Several backend links are supported by the source index rather than inspected implementation excerpts.
Main entry points: app.js API application · search.js Search service · user.controller.js Profile handlers · Movie.js Movie records
Components 21
React discovery client
- Client app
client/src/App.jsx - Movie pages
client/src/routes/movieRoutes.jsx - User pages
client/src/routes/userRoutes.jsx - Search page
client/src/pages/Search.jsx - Movie API client
client/src/api/movie.js - User API client
client/src/api/user.js - Auth context
client/src/context/AuthContext.jsx
Express API
- API application
server/src/app.js - Catalog handlers
server/src/controllers/movie.controller.js
Accounts and preferences
- Auth middleware
server/src/middlewares/auth.middleware.js - Profile handlers
server/src/controllers/user.controller.js - Watchlist handlers
server/src/controllers/watchlist.controller.js - User records
server/src/models/User.js
Search and recommendations
- Search handlers
server/src/controllers/search.controller.js - Embedding service
server/src/services/embedding.js - Search service
server/src/services/search.js - Search history
server/src/models/SearchHistory.js
Movie data
- Movie records
server/src/models/Movie.js - Movie data pipeline
data-pipeline/scripts
Other components
- Viewer
- Embedding provider
Connections 24
- Viewer → Client app: uses
README.md - Client app → Movie pages: routes to
client/src/App.jsx - Client app → User pages: routes to
client/src/App.jsx - Search page → Movie API client: requests search
client/src/pages/Search.jsx - Viewer → API application: REST requests
README.md - API application → Search handlers: mounts search routes
server/src/app.js - API application → Catalog handlers: mounts movie routes
server/src/app.js - API application → Profile handlers: mounts user routes
server/src/app.js - Search handlers → Embedding service: generates vectors
server/src/controllers/search.controller.js - Search handlers → Search service: searches movies
server/src/controllers/search.controller.js - Catalog handlers → Movie records: queries catalog
server/src/controllers/movie.controller.js - Catalog handlers → Search service: finds similar
server/src/controllers/movie.controller.js - Search service → Movie records: queries vectors
server/src/services/search.js - Search service → Search history: records queries
server/src/services/search.js - Profile handlers → User records: reads preferences
server/src/controllers/user.controller.js - Profile handlers → Embedding service: embeds preferences
server/src/controllers/user.controller.js - Profile handlers → Search service: gets recommendations
server/src/controllers/user.controller.js - Watchlist handlers → User records: updates watchlist
server/src/controllers/watchlist.controller.js - Watchlist handlers → Movie records: checks movies
server/src/controllers/watchlist.controller.js - Auth middleware → User records: loads user
server/src/middlewares/auth.middleware.js - Embedding service → Embedding provider: requests embeddings
server/src/services/embedding.js - Movie data pipeline → Movie records: imports movie data
- User API client → API application: calls profile APIs
- Movie API client → API application: calls movie APIs