TEAM | SJSU ID |
---|---|
Shiva Ram Reddy Bethi | 017408482 |
Jatin Bhandari | 017425447 |
Charles Fathima Bhumpala | 016773055 |
Sohan Leburu | 017408768 |
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 |
REACTJS, TAILWIND CSS, VITE, NODEJS, EXPRESSJS, MONGODB
- 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.
- 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.
- 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.
-
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.
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)
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
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
Sprint Task Sheet and burndown strawhats.xlsx
- git clone repo
- Install dependencies for both frontend and backend npm install
npm install
- 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
- Run backend -
npm run dev
Run frontend -npm run start