Skip to content

Real-time chat with microservices: REST APIs, AsyncQ, WebSockets, Redis for caching & notifications. (Test-driven possible)

License

Notifications You must be signed in to change notification settings

iarsham/task-realtime-app

Repository files navigation

🚀 Go WebSocket Realtime App

Chat Application Chat Application

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:

📥 Installation

  1. Clone this repository to your local machine:

    git clone https://github.com/iarsham/task-realtime-app
    
  2. Change to the project directory:

    cd ./task-realtime-app
    
  3. Create .env file and fill it based on .env-sample:

    touch .env
    
  4. Build and Start the application:

    make run-prod
    

🚀 Usage

Message Example Notfication Example

🤝 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: