How pushingcode70/movie-booking-recommendation-system works
This is a cinema-booking platform whose main customer journey runs from browsing movies and showtimes through seat selection, booking, payment, and emailed tickets. Account verification, TMDB catalogue search, wishlists/watched history, semantic recommendations, and an admin dashboard are distinct supporting capabilities. The sampled files establish key routing and embedding flows; many feature internals are represented from the documented structure and are not individually verified.
Main entry points: movie_repository.go Data repositories · app.js Web client · booking.js Booking UI · main.go API route registration
Components 23
User experience
- Web client
frontend/js/app.js - Authentication UI
frontend/js/auth.js - Booking UI
frontend/js/booking.js - Admin dashboard
frontend/js/admin.js
API and identity
- Auth handlers
handlers/auth_handler.go - Auth and OTP
services/auth_service.go - API route registration
main.go
Cinema operations
- Movie catalogue
services/movie_service.go - Theatres and shows
services/show_service.go - Seat availability
services/seat_service.go - Booking workflow
services/booking_service.go - Payment and tickets
services/payment_service.go - Admin operations
services/admin_service.go
Discovery and recommendations
- Wishlist and watched
services/wishlist_service.go - Recommendations
services/recommendation_service.go - Embedding generation
services/movie_embedding_service.go - Embedding model API
embedding-service/main.py
Persistence and integrations
- TMDB integration
services/tmdb_service.go - Data repositories
repositories/movie_repository.go - PostgreSQL and pgvector
database/database.go
Other components
- Customer or admin
- Razorpay
- SMTP email
Connections 33
- Customer or admin → Web client: uses
README.md - Web client → Authentication UI: renders
- Web client → Booking UI: routes to
- Web client → Admin dashboard: routes to
frontend/js/app.js - Authentication UI → Auth handlers: requests
- Auth handlers → Auth and OTP: calls
handlers/auth_handler.go - Auth and OTP → Data repositories: reads and writes
services/auth_service.go - Auth and OTP → SMTP email: sends OTP
services/auth_service.go - Web client → API route registration: API requests
- API route registration → Recommendations: registers endpoints
main.go - API route registration → Admin operations: registers endpoints
main.go - API route registration → Booking workflow: registers endpoints
main.go - Booking UI → Theatres and shows: selects show
- Booking UI → Seat availability: selects seats
- Booking UI → Booking workflow: submits booking
- Booking workflow → Data repositories: persists booking
- Booking workflow → Razorpay: initiates payment
- Payment and tickets → Razorpay: processes payment
- Payment and tickets → SMTP email: emails ticket
- Admin dashboard → Admin operations: admin requests
- Admin operations → Data repositories: reads and writes
- Movie catalogue → Data repositories: reads catalogue
- Movie catalogue → TMDB integration: searches metadata
- Theatres and shows → Data repositories: reads schedules
- Seat availability → Data repositories: reads availability
- Wishlist and watched → Data repositories: stores history
- Recommendations → Data repositories: reads taste and vectors
- Recommendations → Embedding generation: requests vectors
- Embedding generation → TMDB integration: loads movie details
services/movie_embedding_service.go - Embedding generation → Embedding model API: posts text
services/movie_embedding_service.go - Recommendations → PostgreSQL and pgvector: similarity search
- Data repositories → PostgreSQL and pgvector: queries
- Movie catalogue → TMDB integration: imports movie data