A real-time one-to-one, many-to-many chat application. Built with Express-Typescript, ReactJS, MongoDB, ViteJS and Docker.
Features implemented in this Chat application:
- Supports multiple user registration including:
- username
- profile image
- One-to-one chat support with the following UX:
- one user can search for other using username/email
- online/offline status for corresponding chat partner
- shows typing status when partner is typing
- Many-to-many group chat support including:
- any user can make groups using existing users
- group creator is the admin(has rights to change group name, add or remove members, etc.)
- any person not added to group can't access chats
- Notifications are showed if someone messaging is not currently being viewed.
- If you have nodeJS installed and mongoDB configured then follow the steps:
- create an
.envfile similar to.env.examplewith suitable values. - Run
npm install -g typescriptfor installing typescript support. - Run
npm installinside both frontend and backend folders. - Run backend first using
npm start. - Then start frontend using
npm run dev, alternately you can also build and run using nginx. - Access the web app at
localhost:5173.
- create an
- If you have docker installed, then simply run with:
docker compose up
P.S-The name ProprietaryChatApp is intentionally given to mock the person who gave the assignment as they think the idea of a chat application is their own creation!!!












