This is a movie reservation system based on https://roadmap.sh/projects/movie-reservation-system It is a web application that allows users to reserve seats for movies in theaters. It includes features for both administrators and clients:
- Administrator can add movies, create reservations, and manage the system.
- Client can reserve seats for movies, view available shows, and manage their reservations.
- Client be able to view available shows.
- Client be able to manage their reservations.
- Client be able to view their reservation history.
- Client be able to manage their profile.
- Client be able to view available movies.
- Ruby on Rails
- PostgreSQL
- RSpec
- Devise for authentication
- Tailwind for styling
- Sidekiq for background jobs
- Redis for caching
- Docker for containerization
Module 1: User Authentication
- Implement user registration and login functionality using Devise.
- Create user roles (admin and client) with appropriate permissions.
- Implement user profile management (view, edit, delete).
- Implement password reset functionality.
- Implement email confirmation for new users.
Module 2: Movie Management
- Create a model for movies with attributes like title, description, duration, and genre.
- Implement CRUD operations for movies (Create, Read, Update, Delete).
- Implement movie search functionality.
- Implement movie filtering by genre and duration.
- Implement movie sorting by release date and rating.
Module 3: Reservation Management
- Create a model for reservations with attributes like user_id, movie_id, seat_number, and reservation_time.
- Implement CRUD operations for reservations.
- Implement seat selection for reservations.
- Implement reservation history for users.
- Implement reservation cancellation functionality.
Module 4: Show Management
- Create a model for shows with attributes like movie_id, show_time, and available_seats.
- Implement CRUD operations for shows.
- Implement show scheduling for movies.
- Implement show availability checking.
Module 5: Admin Dashboard
- Create an admin dashboard for managing movies, reservations, and users.
- Implement admin functionalities for adding, updating, and deleting movies.
- Implement admin functionalities for managing reservations.
- Implement admin functionalities for managing users.
- Implement admin functionalities for viewing system statistics (e.g., total reservations, most popular movies).
Module 6: Client Dashboard
- Create a client dashboard for managing reservations and viewing available shows.
- Implement client functionalities for reserving seats for movies.
- Implement client functionalities for viewing reservation history.
- Implement client functionalities for managing user profile.
- Implement client functionalities for viewing available movies.
- Clone the repository:
git clone
- Navigate to the project directory:
cd movie-reservation-system - Install dependencies:
bundle install
- Set up the database:
rails db:create rails db:migrate rails db:seed
- Start the server:
rails server
- Open your browser and go to
http://localhost:3000.
To run the tests, use the following command:
bundle exec rspecContributions are welcome! Please fork the repository and submit a pull request with your changes.
This project is licensed under the MIT License. See the LICENSE file for details.
- Implement payment integration for reservations.
- Implement user notifications for reservation confirmations and reminders.
- Implement advanced search and filtering options for movies.
- Implement a recommendation system for movies based on user preferences.
- Implement a review and rating system for movies.
- Implement a mobile-friendly version of the application.
- Implement a RESTful API for the application to allow third-party integrations.
- Implement a caching mechanism to improve performance.
- Implement a logging system to track user activities and errors.
- Implement a deployment pipeline for continuous integration and deployment.
- Implement a monitoring system to track application performance and health.