Initial commit: CodeSync collaborative coding platform
Browse files
README.md
CHANGED
|
@@ -1,26 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
-
tags:
|
| 3 |
-
- ml-intern
|
| 4 |
-
---
|
| 5 |
|
| 6 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
|
| 8 |
-
|
| 9 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 10 |
|
| 11 |
-
|
| 12 |
|
| 13 |
-
|
| 14 |
-
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
|
| 16 |
-
##
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
|
| 18 |
-
|
| 19 |
-
from transformers import AutoModelForCausalLM, AutoTokenizer
|
| 20 |
|
| 21 |
-
model_id = "myagent10101/codesync-collaborative-platform"
|
| 22 |
-
tokenizer = AutoTokenizer.from_pretrained(model_id)
|
| 23 |
-
model = AutoModelForCausalLM.from_pretrained(model_id)
|
| 24 |
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
|
| 26 |
-
|
|
|
|
| 1 |
+
# π CodeSync β Real-Time Collaborative Coding Platform
|
| 2 |
+
|
| 3 |
+
<div align="center">
|
| 4 |
+
|
| 5 |
+

|
| 6 |
+

|
| 7 |
+

|
| 8 |
+

|
| 9 |
+

|
| 10 |
+

|
| 11 |
+
|
| 12 |
+
**A production-grade multiplayer code editor with AI assistance, video collaboration, and sandboxed execution.**
|
| 13 |
+
|
| 14 |
+
</div>
|
| 15 |
+
|
| 16 |
---
|
|
|
|
|
|
|
|
|
|
| 17 |
|
| 18 |
+
## β¨ Features
|
| 19 |
+
|
| 20 |
+
- π **Real-Time Collaboration** β CRDT-based sync (Yjs) with cursor presence
|
| 21 |
+
- π **Monaco Editor** β VS Code-grade editing experience
|
| 22 |
+
- π **Rooms System** β Create/join rooms with role-based access control
|
| 23 |
+
- π¬ **Real-Time Chat** β Room messaging with typing indicators
|
| 24 |
+
- β‘ **Code Execution** β Docker sandbox isolation (JS, Python, C++, Java)
|
| 25 |
+
- πΉ **Video/Audio Calls** β WebRTC peer-to-peer with screen sharing
|
| 26 |
+
- π€ **AI Assistant** β OpenRouter-powered debugging and optimization
|
| 27 |
+
- π **JWT Authentication** β Secure auth with Google OAuth
|
| 28 |
+
|
| 29 |
+
## ποΈ Architecture
|
| 30 |
|
| 31 |
+
```
|
| 32 |
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 33 |
+
β Client (Next.js 14) β
|
| 34 |
+
β Monaco Editor β Socket.io β WebRTC β Zustand β Tailwind β
|
| 35 |
+
βββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
|
| 36 |
+
β WebSocket + REST
|
| 37 |
+
βββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββ
|
| 38 |
+
β Backend (Express + Socket.io) β
|
| 39 |
+
β REST API β CRDT Engine β WebRTC Signaling β Execution Queue β
|
| 40 |
+
βββββββ¬βββββββββββββββ¬βββββββββββββββββββββββββββββ¬ββββββββββββ
|
| 41 |
+
β β β
|
| 42 |
+
βββββββ΄ββββββ βββββββ΄ββββββ ββββββββββ΄βββββββββ
|
| 43 |
+
β PostgreSQL β β Upstash β β Docker Sandboxes β
|
| 44 |
+
β (Supabase) β β Redis β β (Isolated) β
|
| 45 |
+
βββββββββββββ βββββββββββββ βββββββββββββββββββ
|
| 46 |
+
```
|
| 47 |
|
| 48 |
+
## π οΈ Tech Stack
|
| 49 |
|
| 50 |
+
| Layer | Technology |
|
| 51 |
+
|-------|-----------|
|
| 52 |
+
| Frontend | Next.js 14, TypeScript, Tailwind CSS, Monaco Editor |
|
| 53 |
+
| State | Zustand |
|
| 54 |
+
| Real-time | Socket.io, Yjs (CRDT) |
|
| 55 |
+
| Video | WebRTC |
|
| 56 |
+
| Backend | Node.js, Express |
|
| 57 |
+
| Database | PostgreSQL (Prisma ORM) |
|
| 58 |
+
| Cache | Upstash Redis |
|
| 59 |
+
| Execution | Docker containers |
|
| 60 |
+
| AI | OpenRouter (multi-model) |
|
| 61 |
+
| Auth | JWT + Google OAuth |
|
| 62 |
+
| Deploy | Vercel + Railway |
|
| 63 |
|
| 64 |
+
## π Quick Start
|
| 65 |
+
|
| 66 |
+
```bash
|
| 67 |
+
pnpm install
|
| 68 |
+
cp apps/server/.env.example apps/server/.env
|
| 69 |
+
docker compose -f docker/docker-compose.yml up postgres redis -d
|
| 70 |
+
cd apps/server && npx prisma migrate dev
|
| 71 |
+
cd ../.. && pnpm dev
|
| 72 |
+
```
|
| 73 |
|
| 74 |
+
## π Project Structure
|
|
|
|
| 75 |
|
|
|
|
|
|
|
|
|
|
| 76 |
```
|
| 77 |
+
codesync/
|
| 78 |
+
βββ apps/
|
| 79 |
+
β βββ web/ # Next.js 14 frontend
|
| 80 |
+
β βββ server/ # Express + Socket.io backend
|
| 81 |
+
βββ packages/shared/ # Shared types & constants
|
| 82 |
+
βββ docker/ # Docker configs + sandboxes
|
| 83 |
+
βββ docs/ # Architecture & deployment docs
|
| 84 |
+
```
|
| 85 |
+
|
| 86 |
+
## Key Design Decisions
|
| 87 |
+
|
| 88 |
+
| Decision | Rationale |
|
| 89 |
+
|----------|-----------|
|
| 90 |
+
| Yjs (CRDT) over OT | No central authority needed; guaranteed convergence |
|
| 91 |
+
| Redis Pub/Sub | Enables horizontal scaling without sticky sessions |
|
| 92 |
+
| Zustand over Redux | Less boilerplate, better TS support |
|
| 93 |
+
| Docker Isolation | Security-first execution with resource limits |
|
| 94 |
+
|
| 95 |
+
## π License
|
| 96 |
|
| 97 |
+
MIT
|