An interactive messaging app built using React that utilizes email/password authentication and websockets.
- Clone the repo.
- Run
npm install
to install.
Create .env file in root folder like the example. Add a file called "serviceAccountKey.json" containing your Firebase service account key into the root folder. Run npm run dev
to start server and client together.
- React with TailwindCSS for the frontend
- Node/Express for creating API endpoints
- MongoDB for storing chat room members and messages
- Firebase Authentication for authentication
- Socket.io for making the app real-time
- Users can register and login using email/password.
- Users can create a room to chat with others.
- Chats are maintained real-time.
- Emoji picker is also integrated.
- Users can update their display name and avatar on profile page.
- Generate random avatars with DiceBear Avatar API
- Users can see online status.
- Dark mode theme.
- Searching of chats.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.