https://github.com/iarsham/task-realtime-app
Real-time chat with microservices: REST APIs, AsyncQ, WebSockets, Redis for caching & notifications. (Test-driven possible)
https://github.com/iarsham/task-realtime-app
docker golang microservice mongodb rabbitmq real-time-notification redis tdd unittest websocket
Last synced: about 1 year ago
JSON representation
Real-time chat with microservices: REST APIs, AsyncQ, WebSockets, Redis for caching & notifications. (Test-driven possible)
- Host: GitHub
- URL: https://github.com/iarsham/task-realtime-app
- Owner: iarsham
- License: mit
- Created: 2024-06-20T16:04:34.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-06-27T19:16:52.000Z (almost 2 years ago)
- Last Synced: 2025-01-15T07:33:13.308Z (about 1 year ago)
- Topics: docker, golang, microservice, mongodb, rabbitmq, real-time-notification, redis, tdd, unittest, websocket
- Language: Go
- Homepage:
- Size: 119 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🚀 Go WebSocket Realtime App


Welcome to the Go WebSocket WebSocket Realtime App! This is a simple chatroom application implemented using WebSockets
in the Go
language. The application allows multiple users to join a chatroom and exchange messages in real-time.
## ✨ Features
- Send & receive messages instantly in the chatroom. ➡️
- Secure login. Log in with your username for a personalized chat space.🔐
- Get push notifications for important updates.📢
- Caching stores frequently used data for a smoother experience.🌟
- Microservices power! Breaks down the app for better scaling and easier updates.📩
- RabbitMQ message queue! Delivers messages reliably between services.💬
- Rock-solid tests! Ensures everything works perfectly with TDD & unit testing. ✅
## ⚙️ Prerequisites
Before running this application, make sure you have the following installed:
- Go (1.22 or higher) 🐹 (https://go.dev/)
- Docker & Docker-Compose ☁️(https://www.docker.com/)
## 📥 Installation
1. **Clone this repository to your local machine:**
```shell
git clone https://github.com/iarsham/task-realtime-app
2. **Change to the project directory:**
```shell
cd ./task-realtime-app
3. **Create .env file and fill it based on .env-sample:**
```shell
touch .env
4. **Build and Start the application:**
```shell
make run-prod
## 🚀 Usage
- Auth Service: http://localhost:8000/docs. RestAPI
- Notification Service: http://localhost:8001/notification. Websocket
- Chat & Room Service: http://localhost:8002/docs. Websocket & RestAPI


## 🤝 Contributing
Contributions are welcome! If you find any issues or want to enhance the functionality of this application, feel free to
open an issue or submit a pull request. Please make sure to follow the Contributing Guidelines when contributing.
## 📄 License
This project is licensed under the MIT License.
## 📞 Contact
If you have any questions or need any assistance, feel free to reach out:
- Email: arshamdev2001@gmail.com