Skip to content

RedE005/movieBookingApp

This branch is 1 commit ahead of gopinathsjsu/teamproject-strawhats:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d0a2521 · Jan 11, 2024

History

93 Commits
Dec 2, 2023
Nov 28, 2023
Oct 19, 2023
Nov 30, 2023
Oct 3, 2023
Nov 18, 2023
Dec 2, 2023
Jan 11, 2024
Dec 5, 2023
Nov 29, 2023
Nov 29, 2023
Nov 25, 2023

Repository files navigation

MovieTheater Club Application - Reel Rover

Tech stack

REACTJS, TAILWIND CSS, VITE, NODEJS, EXPRESSJS, MONGODB

Design Choices:

Why NoSQL in a database?

  • We opted for NoSQL instead of a relational framework because it uses unique languages for processing the stored data.
  • This provides a database focused on developers, making the design and API access more straightforward.
  • Developers can use databases without worrying about their underlying mechanics.
  • NoSQL databases enable focusing on specific needs without imposing a fixed schema on the database.

Why is MongoDB used?

  • MongoDB supports varied data structures due to its secondary indexing, enhancing flexibility in data modeling.
  • The schema-less nature of MongoDB means that defining a schema from the beginning is not necessary.

Why MERN Stack - Performance and User Interface Rendering

  • React JS excels in abstracting the UI layer. Being just a library, React allows for flexible application construction and code structuring, leading to superior UI rendering and performance compared to Angular.
  • Cost Efficiency The MERN Stack's reliance on JavaScript for all layers means a company can save time and money by hiring JavaScript experts instead of specialists for each distinct technology.
  • Open Source and Cost-Free MERN Stack's exclusive use of open-source technologies enables developers to leverage community resources for solutions to development challenges.

XP Core Values Maintained by Team

  • Simplicity
    Our approach prioritized implementing the simplest and most effective solutions. We designed the code to be modular and reusable, ensuring that it is easily understandable and modifiable by any team member in the future. Efforts were made to minimize code smells, and we included relevant comments for clarity. This approach has resulted in a straightforward code base that is easy to maintain.

  • Feedback
    By consistently giving and receiving feedback, we were able to learn, adapt to changes, and avoid repeating errors, enhancing our efficiency. Throughout the development process, we created pull requests and committed our changes to a branch. These changes were only merged into the master branch after receiving approval from another team member. This practice ensured that any updates to the master branch were stable and did not negatively impact other team members' work. Continuous feedback played a crucial role in aligning our goals and responsibilities.

  • Communication
    Effective communication was a cornerstone of our team's approach throughout the project. Initially, we collaboratively brainstormed the project's concept and distributed tasks among ourselves. We held regular sprint meetings where team members discussed challenges they encountered and conducted retrospectives on aspects that didn't go as planned. This open communication ensured a smooth project workflow and team synergy.

Architecture Diagram

Architecture diagram.png

Deployment Diagram

Component Diagram.jpeg

UML Diagram

Deployment diagram.png

Component Diagram

Component Diagram.jpeg

Feature Set

For all users:

View Home/Landing page showing information about the Theaters, locations, current movie schedules, and upcoming movies, View membership option - Regular and Premium View Registration/Signup page - viewable by all users Book tickets for a movie Each booking will include an online service fee ($1.50 per ticket)

For Enrolled and logged in Members:

View members page - showing movie tickets purchased, rewards points accumulated Regular membership is free Premium membership is for an annual fee of 15 dollars View list of Movies watched in the past 30 days Book multiple seats (upto 8) for a movie show - using rewards points or payment method (pre-selected) - seats selected by the user Cancel previous tickets before showtime and request refund Accumulate rewards points (all members) 1 point per dollar Premium members get online service fee waived for any booking

Theater employees :

Add/update/remove movies/showtimes/theater assignment in the schedule Configure seating capacity for each theater in a multiplex View analytics dashboard showing Theater occupancy for the last 30/60/90 days Summarized by location Summarized by movies Configure discount prices for shows before 6pm and for Tuesday shows

UI Wireframes

Adding page.jpg Admin page UI.jpg Analytics page UI.jpg) Choosing a seat.jpg Adding page.jpg Home Page UI.jpg Movie theatre and showtime.jpg Regsiter page web UI.jpg Rewards page.jpg

Sprint BurnDown Chart

Sprint Task Sheet and burndown strawhats.xlsx

Steps to run the application

  1. git clone repo
  2. Install dependencies for both frontend and backend npm install npm install
  3. Create .env file at /server :
PORT=8080
DATABASE=<your MongoDB connection string URI>
JWT_SECRET=<any random JWT secret>
JWT_EXPIRE=30d
JWT_COOKIE_EXPIRE=30
  1. Run backend - npm run dev Run frontend - npm run start

About

Movie Booking Application using MERN stack

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 98.6%
  • CSS 1.3%
  • HTML 0.1%