https://github.com/nitinjuyal1610/chatgambit
Modern and scalable chat application built using NestJS, TypeScript .
https://github.com/nitinjuyal1610/chatgambit
docker docker-compose nestjs postgresql prisma-orm reactjs reactquery typescript
Last synced: 3 months ago
JSON representation
Modern and scalable chat application built using NestJS, TypeScript .
- Host: GitHub
- URL: https://github.com/nitinjuyal1610/chatgambit
- Owner: NitinJuyal1610
- Created: 2023-09-13T07:22:34.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-10-14T12:17:50.000Z (over 2 years ago)
- Last Synced: 2025-10-22T18:56:49.456Z (8 months ago)
- Topics: docker, docker-compose, nestjs, postgresql, prisma-orm, reactjs, reactquery, typescript
- Language: TypeScript
- Homepage: http://ec2-35-154-81-179.ap-south-1.compute.amazonaws.com/
- Size: 1.53 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🚀 ChatGambit - Scalable and Secure Chat Application
ChatGambit is a modern and scalable chat application built using NestJS, TypeScript, React, websockets, Casl, Zod, and Tailwind. It provides real-time full-duplex communication with a range of capabilities, including user authentication, group creation, and advanced security features.
## 🌟 Features
- **Real-Time Communication:** 📡 ChatGambit enables real-time, full-duplex communication between users, making it ideal for chat applications and collaborative environments.
- **Group Chat:** 👥 Users can join existing chat groups or create their own, allowing for flexible and organized conversations.
- **Admin Controls:** 👑 Administrators have the ability to kick users from chat groups to maintain order and manage discussions.
- **Persistent Data** 📅 Room and user data persist for active rooms, ensuring a continuous, real-time experience.
## 🔐 Security and Functionality Enhancements
- **Rate Limiting:** ⏳ To prevent abuse, ChatGambit includes rate limiting functionality to control the number of messages sent within a specific time frame.
- **Message Acknowledgement:** ✉️ Messages sent through ChatGambit include acknowledgement to confirm successful delivery.
- **CASL Attribute-Based Authorization:** 🔐 ChatGambit leverages CASL for attribute-based authorization, that define fine-grained permissions and access control for users.
- **End-to-End Validation with Zod:** ✅ Zod ensures robust end-to-end validation, helping to maintain data integrity throughout the application.
## 🛠️ Tech Stack
- Backend:
- NestJS
- TypeScript
- Postgress SQL
- Prisma ORM
- Docker & Docker Compose
- Frontend:
- React
- TypeScript
- Tailwind CSS
- Websockets for real-time communication
## 🌐 Nginx Reverse Proxy
The application is hosted behind an Nginx reverse proxy to enhance security and routing capabilities.
## 📦 Installation and Usage
To get started with ChatGambit, follow these steps:
1. Clone the repository: `git clone https://github.com/NitinJuyal1610/ChatGambit`
2. Navigate to the project directory: `cd chatgambit`
3. Build and run the docker container `docker compose up`