ChatterBox is an instant messaging platform I developed to explore websocket programming and client-server synchronization. On the frontend, I built a dynamic UI using the Handlebars framework that supports multiple chat rooms and live message updates. The backend is powered by Node.js, Socket.io, the Passport library, MongoDB, and Mongoose. The entire foundation of the project relies on the websocket management that comes from socket.io. This is what makes it possible to have real-time communication with multiple users, allowing for group chats in addition to private messages.
I used the Passport library to manage user authentication and OAuth 2.0 logins, enabling secure sign-in with local accounts as well as with external providers such as Google. To support persistence and history, ChatterBox uses MongoDB to store chat logs, user sessions, and metadata.