A real-time chat application built using the Gin framework (Go), PostgreSQL, and Redis.
GinChat is a web chat and efficient real-time chat service leveraging the Go Gin web framework, Redis for message caching, and PostgreSQL as the database. The application is containerized using Docker for easy deployment.
- ❤️ Technologies in Use: Gorilla WebSocket, GORM, Swagger, concurrency, JWT, OTP, microservice architecture.
- 💬 Chat Features: Safe and private chats where you can send text, images, and voice messages.
- 🟢 Real-Time Communication: Enables instant messaging with Redis.
- ⚡ Gin Framework: Lightweight and high-performance Go framework.
- 🔐 Authentication: Secure user authentication with JWT and OTP via phone numbers.
- 🛠 Dockerized: All services (GinChat, PostgreSQL, Redis) run in isolated containers.
- 💾 Persistence: PostgreSQL for persistent message storage and Redis for in-memory caching to reduce load on PostgreSQL.
- 📊 Scalable: Easily scalable with Docker and Redis.
- Language: Go (Gin framework)
- Database: PostgreSQL
- Cache: Redis
- Containerization: Docker
- Frontend: Currently, there is no UI.
- Go (v1.22+)
- Docker (Latest version)
- Docker Compose (v2+)
- Clone the repository:
git clone https://github.com/Ali-darzii/GinChat.git
- Go to the main directory :
cd GinChat
- Run with Docker Compose :
docker compose up -d --build
- If you have an older version of Docker Compose :
docker-compose up -d --build
- For API Endpoints check : Swagger Documentation