https://github.com/aadarsh-guru/scalable-chat-system
🌐 Scalable Chat Application 🚀 A robust chat infrastructure with Node.js, TypeScript, Kafka, Redis, Socket.IO, PostgreSQL, Prisma, and AWS (S3, SES) for the backend. Beautiful cross-platform mobile client using React Native & Expo. Features scalable architecture with Redis Pub/Sub and Kafka, real-time communication, and secure data handling.
https://github.com/aadarsh-guru/scalable-chat-system
aws-ses expo expressjs kafka nodejs postgresql prisma react react-native react-navigation redis s3-bucket socket-io typescript
Last synced: 3 months ago
JSON representation
🌐 Scalable Chat Application 🚀 A robust chat infrastructure with Node.js, TypeScript, Kafka, Redis, Socket.IO, PostgreSQL, Prisma, and AWS (S3, SES) for the backend. Beautiful cross-platform mobile client using React Native & Expo. Features scalable architecture with Redis Pub/Sub and Kafka, real-time communication, and secure data handling.
- Host: GitHub
- URL: https://github.com/aadarsh-guru/scalable-chat-system
- Owner: Aadarsh-guru
- Created: 2024-01-07T14:19:15.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-24T16:58:01.000Z (over 1 year ago)
- Last Synced: 2024-12-28T00:43:13.088Z (over 1 year ago)
- Topics: aws-ses, expo, expressjs, kafka, nodejs, postgresql, prisma, react, react-native, react-navigation, redis, s3-bucket, socket-io, typescript
- Language: TypeScript
- Homepage:
- Size: 271 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Scalable Chat Backend
## Description
🌐 **Scalable and Real-time Chat Application**
A robust and scalable chat infrastructure using cutting-edge technologies. This project leverages Node.js, TypeScript, Kafka, Redis, Socket.IO, PostgreSQL, and Prisma to create a high-performance solution for real-time chat applications, along with a cross-platform mobile client built with React Native and Expo.
### Backend Features
- 🚀 **Scalable Architecture:** Utilizes Redis Pub/Sub for WebSocket scaling and Kafka for efficient database throughput management
- 🔄 **Real-time Communication:** Leverages Socket.IO to ensure seamless and real-time communication between clients
- 🛢️ **Persistent Storage:** Integrates with PostgreSQL and Prisma for reliable and efficient data storage
- 📤 **Media Storage:** Utilizes S3 buckets for secure and scalable storage of multimedia files
- 📨 **Email Service:** AWS SES integration for reliable email delivery
- 🔄 **TypeScript:** Enhances code maintainability and scalability with static typing
### Mobile Client Features
- 📱 **Cross-Platform:** Built using React Native and Expo TypeScript
- 🎨 **Modern UI:** Beautiful and intuitive user interface
- 🔄 **Real-time Updates:** Instant messaging and notifications
- 📸 **Media Sharing:** Support for images and files
- 🌙 **Dark Mode:** Comfortable viewing experience
## Tech Stack
### Backend
- Node.js
- TypeScript
- Redis (Pub/Sub)
- Kafka
- Socket.IO
- PostgreSQL
- Prisma
- Express.js
- AWS S3 & SES
### Client
- React Native
- Expo
- TypeScript
- Socket.IO Client
- React Navigation
## Getting Started
### Backend Setup
1. Clone the repository
```bash
git clone https://github.com/Aadarsh-guru/Scalable-Chat-System.git
cd Scalable-Chat-System
```
2. Install dependencies
```bash
npm install
```
3. Configure environment
```bash
cp .env.sample .env
```
4. Start the server
```bash
npm start
```
### Client Setup
1. Navigate to client directory
```bash
cd client
```
2. Install dependencies
```bash
npm install
```
3. Configure environment
```bash
cp .env.sample .env
```
4. Start the development server
```bash
npm start
```
5. Open the app in Expo Go by scanning the QR code
---
**🌟 Star this repository if you find it helpful!**