ucsb-cs156-m23 / proj-gauchoride-staff

https://ucsb-cs156-m23.github.io/proj-gauchoride-staff/
0 stars 0 forks source link

FEATURE: Driver/admin chat #14

Open github-actions[bot] opened 1 year ago

github-actions[bot] commented 1 year ago

User Story

Discussion

Currently, the drivers use a group chat to coordinate their activities.

Moving that group chat into the app is a good way to provide a way for coordination to happen while the program is relatively small. As the program grows, more of the features can be automated (e.g. assigning drivers to rides).

Also, if the group chat is in the app, we can add things like "mentioning rides", "mentioning drivers" or "mentioning riders" with @ or # notation to make links to the rows in the database tables (similar to how the @ and # symbols work in Github discussions.)

Initially, the chat may be only for drivers and admins. At a later stage, we can check in with the program participants to see whether it makes sense to add riders into the chat as well.

Feature Summary

The aim is to have a chat page in the app so that admins and drivers can send messages between each other.

Discussion

This is a big feature, so it should be broken up into multiple issues; the list below is one suggestion.

Remember "minimum viable product"; the first iteration of this would be a single chat room for all drivers/admins without DM features; just a global chat where everyone sees everything.

So DM's are not part of MVP. However, I do suggest including these fields in the entity, since it can be disruptive to add new fields to the database once that app is launched. It will be easier to add DMs later if these fields already exist.

private boolean dm; private Long toUserId

The dm field would initially always be false, and the toUserId field would be null; we'll use those fields later when/if we implement DMs (but that will be a separate Epic.)

Implementation Todos

Here is one way to break this up. Note that each of the headings below could be a single issue/PR or it could be broken down further into multiple issues/PRs; smaller issues/PRs are easier to code review / merge and tend to earn more points!

CRUD backend for messages MVP

Frontend ChatDisplay Component (MVP)

Frontend Chat Display Component (not MVP; work on these ONLY after all front and backend MVP features are done!)

Frontend ChatMessageCreate component (MVP)

Frontend ChatPanel component (MVP)

Frontend ChatPanel component incorporated into App

This depends on all of the MVP issues above being finished.

Your job here is to incorporate the working ChatPanel into a new ChatPage at the url /chat.

github-actions[bot] commented 1 year ago

Copied from https://github.com/ucsb-cs156/proj-gauchoride/issues/46