https://github.com/taygaminginc/nimbuschat
NimbusChat is a responsive messaging app built with React and TypeScript. It features live messaging, file sharing, and efficient state management. ππ¬
https://github.com/taygaminginc/nimbuschat
aws docker firebase kafka react redis-cache redis-pubsub socket-io tailwind typescript zustand
Last synced: 3 months ago
JSON representation
NimbusChat is a responsive messaging app built with React and TypeScript. It features live messaging, file sharing, and efficient state management. ππ¬
- Host: GitHub
- URL: https://github.com/taygaminginc/nimbuschat
- Owner: TAYGAMINGINC
- Created: 2025-07-14T17:05:33.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-07-15T00:21:00.000Z (12 months ago)
- Last Synced: 2025-07-15T02:15:12.206Z (12 months ago)
- Topics: aws, docker, firebase, kafka, react, redis-cache, redis-pubsub, socket-io, tailwind, typescript, zustand
- Language: TypeScript
- Size: 274 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# NimbusChat: Scalable Real-Time Chat Application π

[](https://github.com/TAYGAMINGINC/NimbusChat/releases)
---
## Table of Contents
- [Features](#features)
- [Technologies Used](#technologies-used)
- [Installation](#installation)
- [Usage](#usage)
- [Contributing](#contributing)
- [License](#license)
- [Contact](#contact)
---
## Features
NimbusChat offers a wide range of features designed to enhance user experience and provide seamless communication:
- **Instant Messaging**: Send and receive messages in real-time.
- **Notifications**: Get alerts for new messages and activities.
- **File Sharing**: Share files quickly and easily within chats.
- **User Management**: Manage user profiles and settings efficiently.
- **Scalability**: Built to handle growing user bases without performance loss.
---
## Technologies Used
NimbusChat is built using a modern tech stack to ensure performance and reliability:
- **React**: A JavaScript library for building user interfaces.
- **TypeScript**: A superset of JavaScript that adds static types.
- **Node.js**: A JavaScript runtime for building server-side applications.
- **Redis**: An in-memory data structure store used for caching and pub/sub messaging.
- **Kafka**: A distributed event streaming platform for real-time data feeds.
- **MySQL**: A relational database management system for data storage.
### Additional Topics
This project also incorporates:
- AWS for cloud hosting.
- Docker for containerization.
- Express.js for building web applications.
- Firebase for backend services.
- Socket.io for real-time web socket communication.
- Tailwind CSS for styling.
- Zustand for state management.
---
## Installation
To get started with NimbusChat, follow these steps:
1. **Clone the Repository**:
```bash
git clone https://github.com/TAYGAMINGINC/NimbusChat.git
cd NimbusChat
```
2. **Install Dependencies**:
For the frontend:
```bash
cd client
npm install
```
For the backend:
```bash
cd server
npm install
```
3. **Set Up Environment Variables**:
Create a `.env` file in the root of both the client and server directories. Add your configuration settings for the database, Redis, and any API keys.
4. **Run the Application**:
Start the server:
```bash
cd server
npm start
```
Start the client:
```bash
cd client
npm start
```
5. **Access the Application**:
Open your browser and navigate to `http://localhost:3000` to view NimbusChat in action.
---
## Usage
Once installed, you can begin using NimbusChat right away. Hereβs how:
1. **Create an Account**: Register a new user by providing your email and password.
2. **Log In**: Use your credentials to log in.
3. **Start Chatting**: Select a user from the list and start sending messages.
4. **Share Files**: Use the file upload feature to share documents and images.
5. **Manage Settings**: Update your profile and notification preferences in the user settings.
For detailed documentation, visit the [Releases](https://github.com/TAYGAMINGINC/NimbusChat/releases) section.
---
## Contributing
We welcome contributions to NimbusChat! To contribute:
1. **Fork the Repository**: Click on the fork button at the top right.
2. **Create a New Branch**: Use a descriptive name for your branch.
```bash
git checkout -b feature/YourFeatureName
```
3. **Make Changes**: Implement your changes.
4. **Commit Your Changes**:
```bash
git commit -m "Add a feature"
```
5. **Push to Your Branch**:
```bash
git push origin feature/YourFeatureName
```
6. **Create a Pull Request**: Go to the original repository and click on "New Pull Request".
Please ensure your code adheres to the project's coding standards and includes tests where applicable.
---
## License
NimbusChat is licensed under the MIT License. See the [LICENSE](LICENSE) file for more information.
---
## Contact
For questions or support, feel free to reach out:
- **Email**: support@nimbuschat.com
- **GitHub**: [TAYGAMINGINC](https://github.com/TAYGAMINGINC)
For the latest releases, visit the [Releases](https://github.com/TAYGAMINGINC/NimbusChat/releases) section.
---
### Acknowledgments
Special thanks to the open-source community for their contributions and support. Your efforts make projects like NimbusChat possible.

### Resources
- [React Documentation](https://reactjs.org/docs/getting-started.html)
- [TypeScript Documentation](https://www.typescriptlang.org/docs/)
- [Node.js Documentation](https://nodejs.org/en/docs/)
- [Redis Documentation](https://redis.io/documentation)
- [Kafka Documentation](https://kafka.apache.org/documentation/)
- [MySQL Documentation](https://dev.mysql.com/doc/)
---
### Feedback
We appreciate any feedback on NimbusChat. If you encounter issues or have suggestions, please open an issue in the repository.

---
### Future Enhancements
We plan to add more features in the future, including:
- Enhanced user profiles.
- Improved file sharing capabilities.
- Support for video calls.
- Advanced notification settings.
Stay tuned for updates!
---
### Community Guidelines
Please adhere to the community guidelines while contributing or discussing in the repository. Respect and collaboration are key to a healthy project environment.

---
### FAQs
**Q: How do I reset my password?**
A: Use the "Forgot Password" link on the login page to reset your password.
**Q: Can I use NimbusChat for my business?**
A: Yes, NimbusChat can be customized for business use. Please contact us for more details.
**Q: Is there a mobile version of NimbusChat?**
A: Currently, NimbusChat is web-based, but a mobile version is planned for future releases.
---
### Changelog
Refer to the [Releases](https://github.com/TAYGAMINGINC/NimbusChat/releases) section for detailed changelogs and updates on the project.
---
### Conclusion
We hope you enjoy using NimbusChat. Your feedback and contributions help us improve and grow. Thank you for being a part of our community!