Frontend hosted on Vercel, API Server and WebSocket servers are hosted on Azure App Service, MongoDB Atlas used as database.
- Clone the repo.
- Go into
messaging-app-backend
,messaging-app-frontend
,messaging-app-websocket-server
and runnpm install
individually. (NPM and Node.js is a prerequisite) - Change the DB url in the backend application to point to your local MongoDb instance.
- Change the backend server url and websocket server url in React app to point to
localhost:3001
andlocalhost:9000
respectively. - Run
node app.js
in the folders for backend server and websocket server onlocalhost:3001
andlocalhost:9000
. - Run
npm start
to run the React App onlocalhost:3000
.
- User should be able to create an account.
- User should be able to login using their username and password.
- User should see a list of their conversations on the left pane, after successful login.
- User should be able to start a new conversation with a contact using the "New" button.
- On clicking a conversation summary, the entire conversation should load on the right pane.
- User should be able to receive push notification for a new message.
- User should be able to send a new message.
- JWT based Authorization, Social Media based Login
- Users should be able to send and receive Media in conversation
- User should be able to search for anyone and start a conversation based on username
- User can upload a profile picture and a status
- E2E Encryption of messages, API authorization stuff
- Pagination for messages in a conversation (only recent messages show up first and the rest is loaded on demand when user scrolls.)
- Responsive CSS for different screen sizes
- Figure out how to make it a Distributed system
- Caching
- Add support for emojis
- Support for Forward and share messages
- Support for Group messaging
- Link previews