There is many changes in terms of database design for messaging and conversations relate to primary keys, which Django migration doesn't fully support (tables for Conversation and Message). Please delete the old mesh database in your local machine with DROP DATABASE mesh; and create the database again.
DevOps
Resolved #321 : Added Docker for both front-end and back-end, the instructions to use docker to start the containers for the project is also added to the README.md file.
Backend
Authentication module added: for login, logout, and session checks. Also added test and documentation for this module.
Websockets: added channels and channels_redis to the Pipenv file. These are used for real-time WebSocket communication. Added a ChatConsumer to handle websockets real-time communication and persistent with the database (saving messages), also return saved message to the websocket connection.
Frontend
Account Context: Simplifies user state management by providing a global ` context. Components can access the user's login state directly.
File Structure: reorganized the frontend structure for better organization, including a new /pages folder.
Home Page: Merged /logged-in-home and /logged-out-home into a single home page route /.
Page Footer: Combined footer components ((logged in and logged out) into 1 Footer components
Login/Logout Functionality: Implemented actual login/logout actions for UI elements.
UI/UX Enhancements
Theme Mode Toggle: Added a theme mode button on the navbar, allowing users to switch between light and dark themes. Theme styles are now split into dark.ts and light.ts for clarity.
Responsive Navigation: Introduced a hamburger menu for enhanced mobile navigation, with login functionality integrated into the sidebar (SideDrawer.tsx). The current sidebar is the file SideDrawer.tsx inside the /components/layout folder, the content of the file is based on the previous work (/src/components/SideMenu.tsx), just fixed some styling (flex) and added functionality for logging out
2FA Reminde: The 2FA reminder is now displayed based on user login status and 2FA verification.
MessageBar: A new MessageBar component has been added for logged-in users. The message is functional and it allows the user to chat with other users with the websockets connection. Issues (will be created after the merge): there should be a way for user to connect to each other in order to create a connection. Currently, the MessageBar/ChatBox is only fetching the exists user's conversations from the database, then allow the two users to message each other. In short, currently, there is no feature for a user to connect and start a new conversation with another user.
Message Page: reuse the same components from the chatbox but it fits the whole page.
Resolved Issues
258 The hamburger menu is now fully responsive, supporting efficient navigation and authentication actions.
Notes:
mesh
database in your local machine withDROP DATABASE mesh;
and create the database again.DevOps
Docker
for both front-end and back-end, the instructions to use docker to start the containers for the project is also added to theREADME.md
file.Backend
channels
andchannels_redis
to the Pipenv file. These are used for real-time WebSocket communication. Added a ChatConsumer to handle websockets real-time communication and persistent with the database (saving messages), also return saved message to the websocket connection.Frontend
/pages
folder./logged-in-home
and/logged-out-home
into a single home page route/
.Footer
componentsUI/UX Enhancements
Theme Mode Toggle: Added a theme mode button on the navbar, allowing users to switch between light and dark themes. Theme styles are now split into dark.ts and light.ts for clarity.
Responsive Navigation: Introduced a hamburger menu for enhanced mobile navigation, with login functionality integrated into the sidebar (SideDrawer.tsx). The current sidebar is the file SideDrawer.tsx inside the
/components/layout
folder, the content of the file is based on the previous work (/src/components/SideMenu.tsx
), just fixed some styling (flex) and added functionality for logging out2FA Reminde: The 2FA reminder is now displayed based on user login status and 2FA verification.
MessageBar: A new MessageBar component has been added for logged-in users. The message is functional and it allows the user to chat with other users with the websockets connection. Issues (will be created after the merge): there should be a way for user to connect to each other in order to create a connection. Currently, the MessageBar/ChatBox is only fetching the exists user's conversations from the database, then allow the two users to message each other. In short, currently, there is no feature for a user to connect and start a new conversation with another user.
Message Page: reuse the same components from the chatbox but it fits the whole page.
Resolved Issues
258 The hamburger menu is now fully responsive, supporting efficient navigation and authentication actions.