CMPE-202 Spring 2025 - Team Server Surfers
Team Members:
- Aarsh Sheth
- Vanishree Ramaprasanna
- Urvashi Kohale
- Harishita Gupta
Team Contributions:
- Aarsh Sheth - Handled backend development, deployed the application to the cloud, and resolved deployment issues.
- Vanishree Ramaprasanna - Worked on backend development and prepared UML diagrams for the system architecture.
- Urvashi Kohale - Focused on front-end development and created detailed wireframes for the application.
- Harishita Gupta - Contributed to front-end development and served as Scrum Master, ensuring timely updates to all project documentation.
Git repo: https://github.com/gopinathsjsu/team-project-20202-server-surfers
User Story Document: https://docs.google.com/spreadsheets/d/17kZTCkHclWtoeaOx0SXQ5mXGeS66r6OzM5DLbHvyJi8/edit?gid=0#gid=0
Sprint Plan Document: https://docs.google.com/spreadsheets/d/17kZTCkHclWtoeaOx0SXQ5mXGeS66r6OzM5DLbHvyJi8/edit?gid=1137985608#gid=1137985608
Project journal: Weekly Scrum Report https://docs.google.com/document/d/1Q4OcGgaD9gD9MYQPP3uwK7y-M_fiGd6a4j9fwOfpdk4/edit?tab=t.0
WireFrame: https://github.com/gopinathsjsu/team-project-20202-server-surfers/blob/main/docs/UI%20Wireframes.pdf
To run the project locally: Backend: https://github.com/gopinathsjsu/team-project-20202-server-surfers/blob/main/api/README.md
Frontend:
- Make sure Node.js and npm are installed.
- Verify installation:
node -v npm -v
- Install dependencies:
npm install
- Start the development server
npm start
- The application will run at http://localhost:3000.
XP Core Values:
-
Communication :
- Regular sprint planning and task ownership were distributed.
- Shared responsibilities (e.g., login features, cloud deployment) fostered collaboration.
- Wireframes and UI designs were iterated on together across roles.
-
Feedback :
- APIs and UIs were tested early and fixed across sprints based on bugs and usage.
- Features like GMap integration and restaurant approval used internal reviews to guide implementation.
- Sprint 5 included testing both cloud-hosted and local versions for reliability.
Tech Stack:
- Backend - Python + Django + Django REST Framework + Pytest (for testing)
- Frontend - Reactjs + MaterialUI
- Database - Postgres
- Deployment - Amazon EC2
- Reverse Proxy - Ngnix
- Web server - Gunicorn
Feature Set:
- User signup and login functionality.
- Profile view and update Password option for users.
- Restaurant search with filters (zip code, Date, time, city, state, number of people, etc.).
- View restaurant details with ratings and Google Maps integration.
- Table booking with time slots and party size selection.
- Restaurant tables booking, rescheduling, and cancellation features.
- Email notifications for booking confirmation, booking updates, restaurant approvals, etc. A total of 8 Email templates have been added, covering all the possible scenarios.
- Restaurant managers can add, update, and view their restaurant details.
- Admin dashboard for viewing and managing all restaurants.
- Admin can approve or reject new restaurant requests.
Design Decisions:
- We wanted to opt for a simple and minimalistic design for UI to focus on the functionality.
- For the front end, we used React, which allows for faster page load and reload due to the virtual DOM.
- PostgreSQL was selected for its reliability, strong relational capabilities, and seamless integration with Django ORM.
- Python + Django + DRF - chosen for its robustness, scalability, and built-in admin support, Django with DRF enables rapid REST API development and clean separation of concerns.
Note - All the Project documents and diagrams are available in the docs/ folder, and also provided Google Doc links.