🏗 Currently in development
APIs for cinema management including CRUD on cinemas, halls, movies, buying tickets, admin panel...
- ✅ [Admin] Create a new branch
- ✅ [Admin] Update branch basic info (name, location, opening hours => 7AM - 10PM)
- ✅ [Public] Get all cinemas
- ✅ [Public] Get a single cinema
- ✅ [Admin] Delete a cinema
- ✅ [Admin] Upload layout image of cinema ((halls, entrances, exits, seats, counter desk, Snacks & drinks stalls))
- ✅ [Admin] Upload photo of cinema
- ✅ [Admin] Add a new hall to a cinema (name, cinema ID, hall types ID, seats => JSON object, hall location image)
- ✅ [Admin] Update a hall
- ✅ [Admin] Get all halls
- ✅ [Admin] Get all halls of a cinema
- ✅ [Admin] Get a single hall
- ✅ [Admin] Delete a hall
- ✅ [Admin] Create a hall type (name: 2D, 3D, 4D, IMAX, VIP, PREMIUM, description, compatible movie type ids)
- ✅ [Admin] Update a hall type
- ✅ [Admin] Get all hall types
- ✅ [Admin] Get all halls of a hall type
- ✅ [Admin] Get a single hall type
- ✅ [Admin] Delete a hall type
- ✅ [Admin] Get all compatible hall types for a movie type
- ✅ [Admin] Create a movie (title, ticketPrice, durationInMinutes, genre ids, movie type id, release date => (for coming soon section) , spoken language id, subtitile language id, country id, description, trailer url, banner url)
- ✅ [Admin] Update a movie
- ✅ [Admin] Get all movies
- ✅ [Admin] Get all movies of a movie type
- ✅ [Admin] Get all movies of a spoken language
- ✅ [Admin] Get all movies of a subtitle language
- ✅ [Admin] Get all movies of a country
- ✅ [Admin] Get a single movie
- ✅ [Admin] Delete a movie
- ✅ [Admin] Create a movie type (name: 2D, 3D, 4D, description)
- ✅ [Admin] Update a movie type
- ✅ [Admin] Get all movie types
- ✅ [Admin] Get a single movie type
- ✅ [Admin] Delete a movie type
- ✅ [Admin] Create a genre (name, description)
- ✅ [Admin] Update a genre
- ✅ [Admin] Get all genres
- ✅ [Admin] Get all movies of a genre
- ✅ [Admin] Get a single genre
- ✅ [Admin] Delete a genre
- ✅ [ADMIN] Create a language (name)
- ✅ [ADMIN] Update a language
- ✅ [ADMIN] Get all languages
- ✅ [ADMIN] Get a single language
- ✅ [ADMIN] Delete a language
- ✅ [ADMIN] Create a country (name, code)
- ✅ [ADMIN] Update a country
- ✅ [ADMIN] Get all country
- ✅ [ADMIN] Get a single country
- ✅ [ADMIN] Delete a country
- ✅ [Admin] Add a movie showtime to a hall of a cinema
- ✅ [Admin] Update a showtime (movie id, startedDateTime, cinema id)
- ✅ [Public] Get all showtimes
- ✅ [Public] Get all showtimes of a movie
- ✅ [Public] Get a showtime
- ✅ [Admin] Delete a showtime
- ✅ [Private] Initiate a purchase request (number of ticket, showtime id)
- ✅ [Private] Create a purchase request (user id => (Guest or Normal user), chosen seats)
- ✅ [Private] Execute a purchase request
- [Private] Get all my purchases
- [Private] Get my single purchases
- ✅ [Admin] Get all purchases
- ✅ [Admin] Get a single purchases
Initiate purchase request
- Reserve time for seats selection and purchase for the user
- Real-time updates on seat-selection
Create purchase request
- Return response to front-end if purchase could be made, with total price, seats selection, hall, movie. (Served as confirmation screen)
Execute purchase request
- Generate a QR code
CHALLENGES
- Integrate Stripe API for payment
- ✅ [Admin] Add new announcement (title, description, image, start datetime, end datetime)
- ✅ [Admin] Update an announcement (title, description, image, start datetime, end datetime)
- ✅ [Public] Get all annoucements
- ✅ [Public] Get a single annoucement
- ✅ [Admin] Delete an annoucement
- ✅ [Admin] Upload image of announcement
- ✅ [Admin] Create a membership (name, description)
- ✅ [Admin] Update a membership
- ✅ [Public] Get all memberships
- ✅ [Public] Get a single membership
- ✅ [Admin] Delete a membership
- ✅ [Admin] Create a user (name, email, password, role, membership id, ⏳ reset password token, ⏳ reset password expire)
- ✅ [Admin] Update a user
- ✅ [Admin] Get all users
- ✅ [Admin] Get a single user
- ✅ [Admin] Delete a user
- [Public] Register a user (name, email, password)
- [Public] Login a user
- [Private] Change password of a user
- [Public] Reset password of a user
- [Private] Get profile user
- [Private] Logout user
- [Admin] Configure minimum minutes between movie showtimes
- [Admin] Configure whether discount if user buy tickets through mobile apps, and discount amount/percentage
- [Admin] Configure amount of minutes for seats selection and purchase
- [Admin] Configure sequence of announcements
- [Admin] Configure recommended list of movies
- [Admin] Configure sequence level of memberships