Skip to content

victormoreira92/clone-letterboxd

Repository files navigation

Movie Reservation System

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.

Tech stack:

  • Ruby on Rails
  • PostgreSQL
  • RSpec
  • Devise for authentication
  • Tailwind for styling
  • Sidekiq for background jobs
  • Redis for caching
  • Docker for containerization

To-Do

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.

Installation

  1. Clone the repository:
    git clone 
  2. Navigate to the project directory:
    cd movie-reservation-system
  3. Install dependencies:
    bundle install
  4. Set up the database:
    rails db:create
    rails db:migrate
    rails db:seed
  5. Start the server:
    rails server
  6. Open your browser and go to http://localhost:3000.

Running Tests

To run the tests, use the following command:

bundle exec rspec

Contributing

Contributions are welcome! Please fork the repository and submit a pull request with your changes.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Future Enhancements

  • 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.

About

A Fullstack clone of LetterBoxd, which users can interact with save movies tand list movies, and rate movies

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors