Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 28 days 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 (8 months ago)
- Default Branch: master
- Last Pushed: 2024-06-27T19:16:52.000Z (8 months ago)
- Last Synced: 2024-11-15T02:08:18.286Z (3 months 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
![Chat Application](https://github.com/Marcel-MD/rooms-go-api/assets/87933412/0f9a521e-306d-4aed-8e30-4d35c2a669cb)
![Chat Application](https://github.com/Marcel-MD/rooms-go-api/assets/87933412/b943f3ee-6f37-41d7-8f07-6ba8c74b3916)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-app2. **Change to the project directory:**
```shell
cd ./task-realtime-app3. **Create .env file and fill it based on .env-sample:**
```shell
touch .env4. **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![Message Example](https://github.com/Marcel-MD/rooms-go-api/assets/87933412/a78010f8-675f-4047-ac5e-1f6229256bd4)
![Notfication Example](https://github.com/Marcel-MD/rooms-go-api/assets/87933412/885ae8e6-0886-4bb6-8366-40ec65dea042)## 🤝 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: [email protected]