-
[ ] Make sure every script currently in Giraffael works as expected:
- [x] Try to connect client to / disconnect client from server (done, 1/7/2026)
- [x] Try to create / delete chatrooms (done, 1/7/2026)
- [ ] Try to store / delete messages or files with Redis and MongoDB
- [ ] Try to add / remove clients as room members
-
[x] Remove the concept of Client_Obj (done, 1/8/2026)
-
[ ] Implement client login
Steps for client login
EXTRA: Checkout the “OAuth 2.0” authorization approach.
- [ ] One Redis client as “subscriber” for controlling pub/sub mode (SUBSCRIBE, UNSUBSCRIBE), and one separate Redis client as “publisher” for all other commands (PUBLISH, etc.).
- [ ] Start working on the frontend (w/ react, node or next js). Write frontend dockerfile and build it with Docker.
- Frontend should be very brief in this stage. A couple buttons and textfields should do.
- [ ] Make sure every feature is accessible and working as expected for frontend, Redis/MondoDB, and server side.
- [ ] Implement an alternative approach for client login: “Sign in with Google”. This is related to OAuth 2.0.
- [ ] If the user previous signed up with Giraffael using the email-password combination, but now tries to sign in with the same email address as their google account (password does not matter) for the first time, the server should check on this, and the client side should provide a new panel to handle this case.
Critical attributes of a client:
- Email address
- Password (hashed and stored in server db)
- Session id (stored in server db; hold in client local storage)
- JWT (stored in client local storage)
- will comeback later; focus on other attributes first
- Username
- will comeback later; focus on other attributes first
- User id (uuid)