Want to make more friends? Eat more donuts? Touch grass? UBC DONUTS is just the app for you
UBC donuts makes it easy for you to make new friends through assigned hangouts, or Donut dates, done at a regular interval. You'll be matched based on similar interests, age, and other factors that you can decide are relevant. Share your donut dates with others as well by posting images for what you did on the date
- React
- Node/Express
- oauth2.0 + google -> view commit
- (web) pushAPI for notifications -> view commit
cron/scheduler- oracledb
openai- websockets -> view commit
Goes without saying, list is tentative. We don't want to split the work sequentially between FE and BE so that we can test the app more effectively as we develop.
- Setup project (FE & BE)
Deadline: Friday July 26th- FE: React setup with manifest.json for PWA
jaewudonald - BE: Initialize server, open db connection using oracledb
jaewu
- FE: React setup with manifest.json for PWA
- Implement auth layer (FE & BE)
Deadline: Friday July 26th- FE: Create login screen, create helper function for cookie/auth header handling?
david - BE: Setup route to service auth handshake between oauth and FE, create auth middleware
davidjaewu
- FE: Create login screen, create helper function for cookie/auth header handling?
- Implement pages and components (FE)
Deadline: Monday July 29th- Home/Feed screen
donalddavidjaewu- Aggregated posts component
- Profile + Notifications link components
- Post screen
donalddavidjaewu- Post component
- Comment component
- Reaction component
- Profile screen
donalddavidjaewu- Profile details component
- Edit profile component
- Settings component
- Notifications screen
donalddavidjaewu- Notification component
- Donut/Groupchat screen
donalddavidjaewu- Donut component
- Message component
- Home/Feed screen
- Implement routes (BE)
donalddavidjaewuDeadline: Wednesday July 31st
| Entity/Domain | Request | Endpoint | Description |
|---|---|---|---|
| Thread | GET | /threads/:donutID/:postOrder | Get comments of a post |
| Thread | POST | /threads/:donutID/:postOrder | Post a comment on a post (requires comment data as payload) |
| Thread | PATCH | /threads/:threadID | Update a comment |
| Thread | PATCH | /threads/:threadID/reaction | Create a reaction |
| Post | GET, POST, PATCH, DELETE | /post | CRUD a Post |
| Profile | GET, POST, PATCH, DELETE | /profile/:email | CRUD a Profile |
| Notification | GET | /notifications/:email | Get all notifications for a user |
| Notification | POST | /notifications/:email/:message | Insert a new notification for a user |
| Notification | DELETE | /notifications/:notificationID | Delete a notification |
| Donut | GET | /donut/:donutID | Get a donut |
| Donut | GET | /donut/:donutID/messages | Get all messages of that donut groupchat |
| Donut | POST | /donut/:donutID/message | Send a message to a donut groupchat |
- Implement pair scheduling
donalddavidDeadline: Wednesday July 31st- Task scheduler
- Pair matching function
- Implement notifications
jaewuDeadline: Friday August 2nd- FE: Push Notification permission request
- BE: Store push notif endpoint to Profile.settings
- Implement realtime chat websockets
donald - Implementing an algorithm (e.g. YouTube) to show trending posts at the top
donald
The deliverables from milestones 1 and 2 are available in the repository.
- Screenshots of the UI/UX components can be found in this readme.md below