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.
- 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. โ
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/)
-
Clone this repository to your local machine:
git clone https://github.com/iarsham/task-realtime-app
-
Change to the project directory:
cd ./task-realtime-app
-
Create .env file and fill it based on .env-sample:
touch .env
-
Build and Start the application:
make run-prod
- Auth Service: http://localhost:8000/docs. RestAPI
- Notification Service: http://localhost:8001/notification. Websocket
- Chat & Room Service: http://localhost:8002/docs. Websocket & RestAPI
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.
This project is licensed under the MIT License.
If you have any questions or need any assistance, feel free to reach out:
- Email: [email protected]