https://github.com/sanketp1/slack-colaboration-tool-clone
A modern, full-stack Slack-like collaboration platform built with cutting-edge technologies, featuring real-time messaging, video calls, file sharing, and more.
https://github.com/sanketp1/slack-colaboration-tool-clone
docker fastapi livekit-sdk minio mongodb pnpm pnpm-monorepo python react redis security typescript
Last synced: 3 months ago
JSON representation
A modern, full-stack Slack-like collaboration platform built with cutting-edge technologies, featuring real-time messaging, video calls, file sharing, and more.
- Host: GitHub
- URL: https://github.com/sanketp1/slack-colaboration-tool-clone
- Owner: sanketp1
- Created: 2025-07-06T23:10:54.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2025-07-06T23:14:19.000Z (3 months ago)
- Last Synced: 2025-07-07T00:26:24.489Z (3 months ago)
- Topics: docker, fastapi, livekit-sdk, minio, mongodb, pnpm, pnpm-monorepo, python, react, redis, security, typescript
- Language: Python
- Homepage:
- Size: 129 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ๐ Slack Collaboration Tool Clone
A modern, full-stack Slack-like collaboration platform built with cutting-edge technologies, featuring real-time messaging, video calls, file sharing, and more.
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/)
[](https://reactjs.org/)
[](https://www.typescriptlang.org/)
[](https://fastapi.tiangolo.com/)
[](https://www.mongodb.com/)
[](https://redis.io/)
[](https://min.io/)
[](https://livekit.io/)[](https://www.docker.com/)
---
## ๐ Table of Contents
* [โจ Features](#-features)
* [๐ผ๏ธ App Preview](#๏ธ-app-preview)
* [๐ ๏ธ Tech Stack](#๏ธ-tech-stack)
* [๐๏ธ Architecture](#๏ธ-architecture)
* [๐๏ธ Database Schema](#๏ธ-database-schema)
* [๐ Documentation](#-documentation)
* [๐ API Reference](#-api-reference)
* [๐ Quick Start](#-quick-start)
* [๐ณ Docker Installation](#-docker-installation)
* [๐ง Development Setup](#-development-setup)
* [๐งช Testing](#-testing)
* [๐ฆ Deployment](#-deployment)
* [๐ค Contributing](#-contributing)
* [๐ License](#-license)
* [โค๏ธ Acknowledgements](#-acknowledgements)---
## โจ Features
> ๐งฉ Built to emulate the core experiences of modern collaboration tools like Slack, Zoom, and Notion โ all in one workspace.
### โ๏ธ Core Functionality Overview
| ๐ง Feature | ๐ Description |
| -------------------------- | -------------------------------------------------------------------------- |
| ๐ฌ **Live Chat** | Real-time messaging using WebSockets with channel-based threads. |
| ๐ **Video Calls** | Seamless group video and audio calling using **LiveKit** integration. |
| ๐ **File Sharing** | Upload and share files securely via **MinIO**, with drag-and-drop support. |
| ๐งต **Message Threads** | Keep discussions focused using threaded replies and reactions. |
| ๐ **Emoji Reactions** | React with emojis to lighten up conversations. |
| ๐ **Notifications** | Real-time desktop and in-app notifications for mentions, messages, etc. |
| ๐ก๏ธ **JWT Authentication** | Secure login/signup flows using access tokens and refresh tokens. |
| ๐ **Permissions** | Fine-grained role-based access and private/public channel toggles. |---
### ๐ง Visual Feature Map
```mermaid
graph TD
A[User] -->|Login/Register| B[Auth Service]
A -->|Join Channel| C[Channel Service]
A -->|Send Message| D[Message Service]
A -->|Start Video Call| E[Video Service]
A -->|Upload File| F[File Service]
B --> G[MongoDB]
C --> G
D --> G
F --> H[MinIO]
E --> I[LiveKit]
```---
## ๐ผ๏ธ App Preview
### Login
### Registration
### Dashboard Overview
### Messaging & Threading
### Call Preview
### Video Call
---
## ๐ ๏ธ Tech Stack
### ๐งน Frontend
* React 18, TypeScript, Vite
* Tailwind CSS
* Zustand, React Query
* React Router DOM, Lucide Icons
* Socket.IO client, React Dropzone
* Markdown, Emoji Picker### ๐ Backend
* FastAPI, Uvicorn, Pydantic
* Motor (MongoDB), Redis
* WebSockets, JWT (Python-Jose)
* MinIO SDK, Passlib### ๐งฑ Infrastructure
* Docker & Docker Compose
* Helm Charts for Kubernetes
* GitHub Actions CI/CD
* LiveKit Server for video
* PNPM + TurboRepo---
## ๐๏ธ Architecture
### System Architecture
```mermaid
graph TB
subgraph Client
A[React UI] --> B[WebSocket]
end
subgraph Gateway
C[FastAPI Gateway] --> D[Auth, Channels, Messages, Files]
end
subgraph Services
D --> E[MongoDB]
D --> F[Redis]
D --> G[MinIO]
D --> H[LiveKit]
end
```### Microservices View
```mermaid
graph LR
A[Web/Mobile Client] --> B[API Gateway]
B --> C[Auth Service]
B --> D[Message Service]
B --> E[File Service]
B --> F[Video Service]
C --> G[MongoDB]
D --> G
D --> H[Redis]
E --> I[MinIO]
F --> J[LiveKit]
```---
## ๐๏ธ Database Schema
### User
```mermaid
erDiagram
USER {
ObjectId id PK
string email
string username
string hashed_password
string avatar
datetime created_at
}
```### Channel
```mermaid
erDiagram
CHANNEL {
ObjectId id PK
string name
ObjectId created_by FK
}
```### Message
```mermaid
erDiagram
MESSAGE {
ObjectId id PK
string content
ObjectId channel_id FK
ObjectId user_id FK
ObjectId thread_id FK
array reactions
datetime created_at
}
```---
## ๐ Documentation
### Project Structure
```
slack-clone/
โโโ apps/
โ โโโ api/ # FastAPI backend
โ โโโ web/ # React frontend
โโโ docker-compose.yml
โโโ helm/ # Helm charts
โโโ livekit.yaml # LiveKit config
```### Concepts
* JWT-based Auth flow
* Live WebSocket chat engine
* Secure file uploads to MinIO
* Real-time user presence
* Threaded messages with Markdown---
## ๐ API Reference
### ๐ Auth
* `POST /auth/register`
* `POST /auth/login`### ๐จ Channels
* `GET /channels`
* `POST /channels`### ๐ฉ Messages
* `GET /messages/:channel_id`
* `POST /messages`### ๐ Files
* `POST /files/upload`
### ๐น Video
* `POST /video/token`
---
## ๐ Quick Start
### Prerequisites
* Docker & Docker Compose
* Node 18+
* Python 3.8+
* PNPM### Clone and Start
```bash
git clone https://github.com/yourusername/slack-clone.git
cd slack-clone
docker-compose up -d
```### Seed Database
```bash
docker-compose exec api python scripts/seed.py
```---
## ๐ณ Docker Installation
```bash
# Build & run
docker-compose up -d# Stop all
docker-compose down
```---
## ๐ง Development Setup
### Backend
```bash
cd apps/api
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn main:app --reload
```### Frontend
```bash
cd apps/web
pnpm install
pnpm dev
```---
## ๐งช Testing
### Backend
```bash
cd apps/api
pytest
pytest --cov=app --cov-report=html
```### Frontend
```bash
cd apps/web
pnpm test
```---
## ๐ฆ Deployment
### Docker Production Build
```bash
docker-compose -f docker-compose.prod.yml build
docker-compose -f docker-compose.prod.yml up -d
```### Kubernetes Deployment
```bash
helm install slack-clone ./helm
helm upgrade slack-clone ./helm
```---
## ๐ค Contributing
### How to Contribute
1. Fork this repo
2. Create a new branch
3. Commit your changes
4. Open a Pull Request### Contribution Guidelines
* Follow existing code style
* Add relevant tests
* Use clear commit messages---
## ๐ License
This project is licensed under the [MIT License](LICENSE).
---
## โค๏ธ Acknowledgements
* [LiveKit](https://livekit.io/)
* [FastAPI](https://fastapi.tiangolo.com/)
* [MinIO](https://min.io/)
* [MongoDB](https://www.mongodb.com/)
* [React](https://react.dev/)---
## ๐งโ๐ป Made by Sanket with โค๏ธ
> Feel free to โญ the repo if you like it!
* ๐ [LinkedIn](https://linkedin.com/in/psanket18)
* ๐ฆ [Twitter](https://twitter.com/p_sanket18)
* ๐ป [GitHub](https://github.com/sanketp1)