An open API service indexing awesome lists of open source software.

https://github.com/srivardhan0909/talknest

A feature-rich real-time chat application
https://github.com/srivardhan0909/talknest

expressjs mongodb node-js reactjs socket-io

Last synced: 4 months ago
JSON representation

A feature-rich real-time chat application

Awesome Lists containing this project

README

          

# Real-time Chat Application

A feature-rich real-time chat application built with the MERN stack (MongoDB, Express.js, React.js, Node.js), Socket.io, and modern styling libraries.

## 🌟 Features

- Real-time messaging using Socket.io
- User authentication and authorization with JWT
- Responsive UI with Tailwind CSS
- Online user status tracking
- Global state management using Zustand
- Comprehensive error handling
- Professional deployment configuration

## 🚀 Tech Stack

- **Frontend:**
- React.js
- TailwindCSS
- Socket.io-client
- Zustand

- **Backend:**
- Node.js
- Express.js
- MongoDB
- Socket.io
- JSON Web Tokens

## 🛠️ Installation Steps

1. Clone the repository
```bash
git clone https://github.com/yourusername/realtime-chat-app.git
```

2. Change the working directory
```bash
cd realtime-chat-app
```

3. Install dependencies
```bash
npm install
```

4. Create `.env` file in root and add your variables
```env
PORT=5000
MONGO_DB_URI=your_mongodb_uri
JWT_SECRET=your_jwt_secret
NODE_ENV=development
```

5. Run the app
```bash
npm run dev
```

## 🏗️ Building for Production

1. Create a production build
```bash
npm run build
```

2. Start the production server
```bash
npm start
```

## 💻 Usage

1. Register a new account or login with existing credentials
2. Start chatting with online users in real-time
3. View online/offline status of other users
4. Enjoy seamless real-time communication!

## 📝 Environment Variables

The following environment variables are required for the application to run:

| Variable | Description |
| -------- | ----------- |
| PORT | Port number for the server |
| MONGO_DB_URI | MongoDB connection string |
| JWT_SECRET | Secret key for JWT authentication |
| NODE_ENV | Development/Production environment |

## 🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

1. Fork the project
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

## 📜 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details

## 🙏 Acknowledgments

- Socket.io documentation
- MongoDB documentation
- TailwindCSS community

## ⭐ Show your support

Give a ⭐️ if this project helped you!