Assignments > Project 2c: Final Deliverable
Due on Tue, 05/06 @ 11:59PM. 85 Points.
Here is a link to the full Project 2 description
Grading Criteria (85 Points)
| Category | Points | Description |
|---|---|---|
| Backend Functionality | 20 | API and database work correctly (CRUD operations) + Tests. |
| Frontend Functionality | 20 | React app interacts successfully with the API. |
| Cloud Deployment | 15 | The app was successfully deployed. |
| UI/UX Design | 10 | Simple but intuitive frontend. |
| Code Quality | 15 | Clean, modular, readable code with meaningful commits and tests. |
| Final Presentation | 5 | 5-minute demo with a clear feature explanation. |
Minimum Required Features
All teams must:
- Create at least two new database models (e.g.,
StudySession,Internship,StudyGroup,Task,Calendar). - Build FastAPI endpoints for any relevant CRUD operations (Create, Read, Update, Delete) needed to support the functionality of your site.
- Develop React UI components/screens to interact with FastAPI endpoints.
- Give the app a look and feel (colors, fonts, styling, accessibility, usability, etc.).
- Enforce security (users should not see data that doesn’t belong to them).
- Write tests for all backend functionality (you don’t need to run tessts for React stuff) and ensure linter/formatter checks pass.
- Cloud deployment – Update Dockerfile to integrate dependencies and schemas.
Optional Stretch Goals (Extra Credit)
Each feature below is worth 5 points (maximum of 10 extra points):
- Calendar API integration (sync with Google Calendar).
- Collaboration/chat features – Share schedules, chat with other logged-in users.
- Email or text notifications for schedule updates or reminders.
- Automated course data updates – Periodically refresh course listings from the Meteor site.
- Waitlist feature – Display real-time seat availability and send notifications when a course opens.
- Admin dashboard:
- Allow instructors/admins to modify course offerings.
- Provide analytics on course popularity.
- UI Enhancements:
- Add dark mode.
- Improve keyboard navigation and screen reader compatibility.
- Ensure full responsiveness and mobile-friendliness.
- Propose your own stretch goal!
What to Turn In
One member of your group should turn in the following:
- A link to your repo
- A link to your deployment
In addition, every member of your group should fill out the “team contributions” survey (forthcoming).