{"id":29328764,"url":"https://github.com/sanketp1/slack-colaboration-tool-clone","last_synced_at":"2026-04-13T19:32:04.384Z","repository":{"id":303311388,"uuid":"1015048222","full_name":"sanketp1/slack-colaboration-tool-clone","owner":"sanketp1","description":"A modern, full-stack Slack-like collaboration platform built with cutting-edge technologies, featuring real-time messaging, video calls, file sharing, and more.","archived":false,"fork":false,"pushed_at":"2025-07-06T23:14:19.000Z","size":132,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-07T00:26:24.489Z","etag":null,"topics":["docker","fastapi","livekit-sdk","minio","mongodb","pnpm","pnpm-monorepo","python","react","redis","security","typescript"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sanketp1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-06T23:10:54.000Z","updated_at":"2025-07-06T23:35:09.000Z","dependencies_parsed_at":"2025-07-07T00:26:36.760Z","dependency_job_id":"e67d378b-e17b-4c12-ad6a-74ad064aaceb","html_url":"https://github.com/sanketp1/slack-colaboration-tool-clone","commit_stats":null,"previous_names":["sanketp1/slack-colaboration-tool-clone"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sanketp1/slack-colaboration-tool-clone","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanketp1%2Fslack-colaboration-tool-clone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanketp1%2Fslack-colaboration-tool-clone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanketp1%2Fslack-colaboration-tool-clone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanketp1%2Fslack-colaboration-tool-clone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sanketp1","download_url":"https://codeload.github.com/sanketp1/slack-colaboration-tool-clone/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanketp1%2Fslack-colaboration-tool-clone/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31768636,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T15:25:13.801Z","status":"ssl_error","status_checked_at":"2026-04-13T15:25:09.162Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","fastapi","livekit-sdk","minio","mongodb","pnpm","pnpm-monorepo","python","react","redis","security","typescript"],"created_at":"2025-07-07T22:37:05.383Z","updated_at":"2026-04-13T19:32:04.364Z","avatar_url":"https://github.com/sanketp1.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 Slack Collaboration Tool Clone\n\nA modern, full-stack Slack-like collaboration platform built with cutting-edge technologies, featuring real-time messaging, video calls, file sharing, and more.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Python](https://img.shields.io/badge/Python-3.8+-blue.svg)](https://www.python.org/)\n[![React](https://img.shields.io/badge/React-18.2.0-blue.svg)](https://reactjs.org/)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.0.2-blue.svg)](https://www.typescriptlang.org/)\n[![FastAPI](https://img.shields.io/badge/FastAPI-0.104.1-green.svg)](https://fastapi.tiangolo.com/)\n[![MongoDB](https://img.shields.io/badge/MongoDB-7.0-green.svg)](https://www.mongodb.com/)\n[![Redis](https://img.shields.io/badge/Redis-7.2-red?logo=redis\u0026logoColor=white)](https://redis.io/)\n[![MinIO](https://img.shields.io/badge/MinIO-Object%20Storage-orange?logo=minio\u0026logoColor=white)](https://min.io/)\n[![LiveKit](https://img.shields.io/badge/LiveKit-WebRTC-blueviolet?logo=livekit\u0026logoColor=white)](https://livekit.io/)\n\n[![Docker](https://img.shields.io/badge/Docker-Compose-blue.svg)](https://www.docker.com/)\n\n\n---\n\n## 📋 Table of Contents\n\n* [✨ Features](#-features)\n* [🗼️ App Preview](#️-app-preview)\n* [🛠️ Tech Stack](#️-tech-stack)\n* [🏗️ Architecture](#️-architecture)\n* [💄️ Database Schema](#️-database-schema)\n* [📚 Documentation](#-documentation)\n* [🔌 API Reference](#-api-reference)\n* [🚀 Quick Start](#-quick-start)\n* [🐳 Docker Installation](#-docker-installation)\n* [🔧 Development Setup](#-development-setup)\n* [🧪 Testing](#-testing)\n* [📦 Deployment](#-deployment)\n* [🤝 Contributing](#-contributing)\n* [📄 License](#-license)\n* [❤️ Acknowledgements](#-acknowledgements)\n\n\n---\n\n\n## ✨ Features\n\n\u003e 🧩 Built to emulate the core experiences of modern collaboration tools like Slack, Zoom, and Notion — all in one workspace.\n\n### ⚙️ Core Functionality Overview\n\n| 🔧 Feature                 | 📝 Description                                                             |\n| -------------------------- | -------------------------------------------------------------------------- |\n| 💬 **Live Chat**           | Real-time messaging using WebSockets with channel-based threads.           |\n| 📞 **Video Calls**         | Seamless group video and audio calling using **LiveKit** integration.      |\n| 📂 **File Sharing**        | Upload and share files securely via **MinIO**, with drag-and-drop support. |\n| 🧵 **Message Threads**     | Keep discussions focused using threaded replies and reactions.             |\n| 😊 **Emoji Reactions**     | React with emojis to lighten up conversations.                             |\n| 🔔 **Notifications**       | Real-time desktop and in-app notifications for mentions, messages, etc.    |\n| 🛡️ **JWT Authentication** | Secure login/signup flows using access tokens and refresh tokens.          |\n| 🔐 **Permissions**         | Fine-grained role-based access and private/public channel toggles.         |\n\n---\n\n### 🧠 Visual Feature Map\n\n```mermaid\ngraph TD\n  A[User] --\u003e|Login/Register| B[Auth Service]\n  A --\u003e|Join Channel| C[Channel Service]\n  A --\u003e|Send Message| D[Message Service]\n  A --\u003e|Start Video Call| E[Video Service]\n  A --\u003e|Upload File| F[File Service]\n  B --\u003e G[MongoDB]\n  C --\u003e G\n  D --\u003e G\n  F --\u003e H[MinIO]\n  E --\u003e I[LiveKit]\n```\n\n---\n\n## 🗼️ App Preview\n\n### Login \n![Dashboard](https://fmzqhgyfpkifsbymzdoy.supabase.co/storage/v1/object/public/portfolio/collaboration-tool-slack-clone/1.png)\n\n### Registration\n![Channel Chat](https://fmzqhgyfpkifsbymzdoy.supabase.co/storage/v1/object/public/portfolio/collaboration-tool-slack-clone/2.png)\n\n### Dashboard Overview\n![Video Call](https://fmzqhgyfpkifsbymzdoy.supabase.co/storage/v1/object/public/portfolio/collaboration-tool-slack-clone/3.png)\n\n### Messaging \u0026 Threading\n![Message Threading](https://fmzqhgyfpkifsbymzdoy.supabase.co/storage/v1/object/public/portfolio/collaboration-tool-slack-clone/6.png)\n\n### Call Preview\n![Call Preview](https://fmzqhgyfpkifsbymzdoy.supabase.co/storage/v1/object/public/portfolio/collaboration-tool-slack-clone/4.png)\n\n### Video Call\n![Video Call](https://fmzqhgyfpkifsbymzdoy.supabase.co/storage/v1/object/public/portfolio/collaboration-tool-slack-clone/5.png)\n\n---\n\n## 🛠️ Tech Stack\n\n### 🧹 Frontend\n\n* React 18, TypeScript, Vite\n* Tailwind CSS\n* Zustand, React Query\n* React Router DOM, Lucide Icons\n* Socket.IO client, React Dropzone\n* Markdown, Emoji Picker\n\n### 🚀 Backend\n\n* FastAPI, Uvicorn, Pydantic\n* Motor (MongoDB), Redis\n* WebSockets, JWT (Python-Jose)\n* MinIO SDK, Passlib\n\n### 🧱 Infrastructure\n\n* Docker \u0026 Docker Compose\n* Helm Charts for Kubernetes\n* GitHub Actions CI/CD\n* LiveKit Server for video\n* PNPM + TurboRepo\n\n---\n\n## 🏗️ Architecture\n\n### System Architecture\n\n```mermaid\ngraph TB\n  subgraph Client\n    A[React UI] --\u003e B[WebSocket]\n  end\n  subgraph Gateway\n    C[FastAPI Gateway] --\u003e D[Auth, Channels, Messages, Files]\n  end\n  subgraph Services\n    D --\u003e E[MongoDB]\n    D --\u003e F[Redis]\n    D --\u003e G[MinIO]\n    D --\u003e H[LiveKit]\n  end\n```\n\n### Microservices View\n\n```mermaid\ngraph LR\n  A[Web/Mobile Client] --\u003e B[API Gateway]\n  B --\u003e C[Auth Service]\n  B --\u003e D[Message Service]\n  B --\u003e E[File Service]\n  B --\u003e F[Video Service]\n  C --\u003e G[MongoDB]\n  D --\u003e G\n  D --\u003e H[Redis]\n  E --\u003e I[MinIO]\n  F --\u003e J[LiveKit]\n```\n\n---\n\n## 💄️ Database Schema\n\n### User\n\n```mermaid\nerDiagram\n  USER {\n    ObjectId id PK\n    string email\n    string username\n    string hashed_password\n    string avatar\n    datetime created_at\n  }\n```\n\n### Channel\n\n```mermaid\nerDiagram\n  CHANNEL {\n    ObjectId id PK\n    string name\n    ObjectId created_by FK\n  }\n```\n\n### Message\n\n```mermaid\nerDiagram\n  MESSAGE {\n    ObjectId id PK\n    string content\n    ObjectId channel_id FK\n    ObjectId user_id FK\n    ObjectId thread_id FK\n    array reactions\n    datetime created_at\n  }\n```\n\n---\n\n## 📚 Documentation\n\n### Project Structure\n\n```\nslack-clone/\n├── apps/\n│   ├── api/         # FastAPI backend\n│   └── web/         # React frontend\n├── docker-compose.yml\n├── helm/            # Helm charts\n└── livekit.yaml     # LiveKit config\n```\n\n### Concepts\n\n* JWT-based Auth flow\n* Live WebSocket chat engine\n* Secure file uploads to MinIO\n* Real-time user presence\n* Threaded messages with Markdown\n\n---\n\n## 🔌 API Reference\n\n### 🔐 Auth\n\n* `POST /auth/register`\n* `POST /auth/login`\n\n### 📨 Channels\n\n* `GET /channels`\n* `POST /channels`\n\n### 📩 Messages\n\n* `GET /messages/:channel_id`\n* `POST /messages`\n\n### 📁 Files\n\n* `POST /files/upload`\n\n### 📹 Video\n\n* `POST /video/token`\n\n---\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n* Docker \u0026 Docker Compose\n* Node 18+\n* Python 3.8+\n* PNPM\n\n### Clone and Start\n\n```bash\ngit clone https://github.com/yourusername/slack-clone.git\ncd slack-clone\ndocker-compose up -d\n```\n\n### Seed Database\n\n```bash\ndocker-compose exec api python scripts/seed.py\n```\n\n---\n\n## 🐳 Docker Installation\n\n```bash\n# Build \u0026 run\ndocker-compose up -d\n\n# Stop all\ndocker-compose down\n```\n\n---\n\n## 🔧 Development Setup\n\n### Backend\n\n```bash\ncd apps/api\npython -m venv venv\nsource venv/bin/activate\npip install -r requirements.txt\nuvicorn main:app --reload\n```\n\n### Frontend\n\n```bash\ncd apps/web\npnpm install\npnpm dev\n```\n\n---\n\n## 🧪 Testing\n\n### Backend\n\n```bash\ncd apps/api\npytest\npytest --cov=app --cov-report=html\n```\n\n### Frontend\n\n```bash\ncd apps/web\npnpm test\n```\n\n---\n\n## 📦 Deployment\n\n### Docker Production Build\n\n```bash\ndocker-compose -f docker-compose.prod.yml build\ndocker-compose -f docker-compose.prod.yml up -d\n```\n\n### Kubernetes Deployment\n\n```bash\nhelm install slack-clone ./helm\nhelm upgrade slack-clone ./helm\n```\n\n---\n\n## 🤝 Contributing\n\n### How to Contribute\n\n1. Fork this repo\n2. Create a new branch\n3. Commit your changes\n4. Open a Pull Request\n\n### Contribution Guidelines\n\n* Follow existing code style\n* Add relevant tests\n* Use clear commit messages\n\n---\n\n## 📄 License\n\nThis project is licensed under the [MIT License](LICENSE).\n\n---\n\n## ❤️ Acknowledgements\n\n* [LiveKit](https://livekit.io/)\n* [FastAPI](https://fastapi.tiangolo.com/)\n* [MinIO](https://min.io/)\n* [MongoDB](https://www.mongodb.com/)\n* [React](https://react.dev/)\n\n---\n\n## 🧑‍💻 Made by Sanket with ❤️\n\n\u003e Feel free to ⭐ the repo if you like it!\n\n* 🔗 [LinkedIn](https://linkedin.com/in/psanket18)\n* 🐦 [Twitter](https://twitter.com/p_sanket18)\n* 💻 [GitHub](https://github.com/sanketp1)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanketp1%2Fslack-colaboration-tool-clone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsanketp1%2Fslack-colaboration-tool-clone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanketp1%2Fslack-colaboration-tool-clone/lists"}