Skip to content

gopinathsjsu/teamproject-strawhats

Repository files navigation

MovieTheater Club Application - Reel Rover

TEAM NAME - STRAWHATS

TEAM SJSU ID
Shiva Ram Reddy Bethi 017408482
Jatin Bhandari 017425447
Charles Fathima Bhumpala 016773055
Sohan Leburu 017408768

Team Members and Contribution gist:

TEAM Contribution
Shiva Ram Reddy Bethi Scrum Master, Front end and Backend API implementation - Designed and configured MongoDB models, cinemaController logic, worked on cinema route module,worked on Admin Route for client logic, Designed and worked on Home, Register, Purchase front-end client webpages, developed Navbar, TheatreListByMovie, CinemaLists, DateSelector React Components, loadbalancer
Jatin Bhandari Front end and Backend API implementation - authController & theaterController logic, worked on auth route & theater module, Designed and worked on Tickets, Analytics, Login front-end client webpages, developed MovieLists, NowShowing, ShowtimeDetails, Showtimes React Components, AWS deployment and Autoscaling in EC2 instances
Charles Fathima Bhumpala Front end and Backend API implementation - movieController logic, worked on movie route module, Developed Location Context, Designed and worked on Movie, Showtime, Cinema front-end client webpages, developed Theater, TheaterListsByCinema, UpcomingMovies React Components
Sohan Leburu Front end and Backend API implementation - Configured showtime component for admin users, worked on showtime route module, Developed Auth Context, Designed and worked on User front-end client webpages, developed SelectedMovie, Seat configurations, ScheduleTable, Loading React Components, Black box Testing

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

teamproject-strawhats created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •