ProjectsReal-time chat with Socket.IOJan/2024

This app is a full-stack project with MERN, with the purpose of practicing the use of Socket.IO to create a real-time chat. It has a MongoDB database. The biggest challenge was to integrate Socket.IO with React, handle client-side and server-side events, and synchronize states, although Zustand helped me a lot.

At the technical level, this app has the following features:

  • It has user registration and login, using JWT for authentication.
  • It has a real-time chat (without refreshing the web page), where users can exchange messages with any connected user.
  • A notification is received when a message arrives and the window is focused on another chat.
  • You can see the list of connected users.
  • The notification bell has a counter for unread messages.
  • Possibility to mark all messages as read.

WebsiteThis application hasn't been deployed, but we can review the code in a face-to-face or virtual interview, and if you like I can re-deploy it to test it.

Source code

Front-endReact, Vite, Javascript, Chakra-UI, Bootstrap, socket-io client, Wouter, Zustand

Back-endJavascript, cors, dotenv, express, node, socket-io, mongoose, MongoDB

Below is a short video with a demo of the app: