Skip to content

TeamThunderr/devcollab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

170 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•—   β–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—      β–ˆβ–ˆβ•—      β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘      β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—
β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘      β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•
β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•  β•šβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘      β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—
β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•”β• β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•
β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β•β•  β•šβ•β•β•β•   β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β•β• β•šβ•β•β•β•β•β•β•β•šβ•β•  β•šβ•β•β•šβ•β•β•β•β•β•

πŸ— DevCollab

The all-in-one real-time collaboration platform for developer teams

Jira + Notion + VS Code + Slack β€” in one app. Zero switching.


React TypeScript Node.js Fastify PostgreSQL Redis Socket.IO Gemini Docker License


View Demo Vercel Postman Collection



πŸ“Έ Preview

🌐 Live at β†’ devcollab-gamma.vercel.app

DevCollab Demo

πŸ’‘ Real-time kanban, AI-powered planning, Monaco code editor β€” all in one window.


πŸ“‹ Table of Contents


✨ Features

Feature Description
🏒 Workspace & Projects Multi-tenant workspaces with role-based access β€” Owner / Admin / Member / Viewer
πŸ“‹ Kanban Board Real-time drag-and-drop with P0/P1/P2 priorities, assignees, due dates, labels, attachments & @mention comments
⚑ Real-time Collaboration Socket.IO + Redis pub/sub β€” live presence indicators, online avatars, task viewers, instant sync across all users
πŸ–₯ Monaco Code Editor Full VS Code engine in-browser with file tree, multi-tab, auto-save & syntax highlighting for 20+ languages
πŸ”– Code Snippet Manager Shiki syntax highlighting, tag-based search, copy-to-clipboard, open directly in editor
πŸ“ Documentation Wiki Tiptap rich-text editor with version history, page linking, image uploads & AI summarization
πŸ€– AI Intelligence Center 6 Gemini-powered tools that read your actual project data β€” plans, reviews, standups and more
πŸ’¬ Project Chat WhatsApp-quality messaging with @mentions, emoji reactions, reply threads, edit history & presence
πŸ“‘ Activity Feed Live workspace timeline β€” every action logged and streamed in real time
πŸ”” Notifications Real-time push via Socket.IO β€” @mention alerts, assignment pings, unread count badge
πŸ’³ Billing & Pro Tier Free / Pro plans with Razorpay sandbox checkout and feature-gating via ProGate

πŸ› Architecture

                              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                              β”‚            User's Browser            β”‚
                              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                         β”‚  HTTP        β”‚  WS
                              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                              β”‚              Nginx (Port 80)          β”‚
                              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                         β”‚              β”‚
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚   Frontend (React 18)  β”‚   β”‚   Backend (Fastify / Node)  β”‚
                    β”‚   Vite Β· Zustand       β”‚   β”‚   TypeScript Β· JWT Auth     β”‚
                    β”‚   Monaco Β· Tiptap      β”‚   β”‚   BullMQ Β· Socket.IO        β”‚
                    β”‚   Socket.IO Client     β”‚   β”‚   Port 3000                 β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                   β”‚      β”‚      β”‚
                              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”   β”‚      β”‚
                              β”‚  PostgreSQL 16         β”‚   β”‚      β”‚
                              β”‚  (raw pg β€” no ORM)     β”‚   β”‚      β”‚
                              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚      β”‚
                                                   β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”   β”‚
                                                   β”‚  Redis 7  β”‚   β”‚
                                                   β”‚ Socket.IO β”‚   β”‚
                                                   β”‚  Adapter  β”‚   β”‚
                                                   β”‚  + Cache  β”‚   β”‚
                                                   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
                                                          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                                          β”‚  External Services  β”‚
                                                          β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
                                                          β”‚  β”‚  Gemini API   β”‚ β”‚
                                                          β”‚  β”‚  (AI + Stream)β”‚ β”‚
                                                          β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
                                                          β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
                                                          β”‚  β”‚   Razorpay    β”‚ β”‚
                                                          β”‚  β”‚  (Payments)   β”‚ β”‚
                                                          β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
                                                          β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
                                                          β”‚  β”‚  SMTP / Email β”‚ β”‚
                                                          β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
                                                          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Horizontally scalable: The Socket.IO Redis adapter lets you run multiple backend instances behind a load balancer β€” all instances share real-time state via Redis pub/sub.


πŸ“¦ Module Status

# Module Status Description
1 🏒 Workspace & Projects βœ… Complete Multi-tenant, RBAC (Owner/Admin/Member/Viewer), invite links
2 πŸ“‹ Kanban Board βœ… Complete Drag-and-drop, priorities, assignees, due dates, comments
3 ⚑ Real-time Collaboration βœ… Complete Socket.IO + Redis adapter, presence, live cursors
4 πŸ–₯ Monaco Code Editor βœ… Complete VS Code engine, file tree, multi-tab, 20+ languages
5 πŸ”– Code Snippet Manager βœ… Complete Shiki highlighting, tag search, editor integration
6 πŸ“ Documentation Wiki βœ… Complete Tiptap rich text, version history, image uploads
7 πŸ€– AI Intelligence Center βœ… Complete 6 Gemini tools β€” plans, reviews, standups, engineering plans
8 πŸ’¬ Project Chat βœ… Complete @mentions, reactions, threads, edit/delete, presence
9 πŸ“‘ Activity Feed βœ… Complete Live workspace timeline, all actions streamed in real time
10 πŸ”” Notifications βœ… Complete Real-time push, @mention alerts, unread badge count
11 πŸ’³ Billing βœ… Complete Free/Pro tiers, Razorpay sandbox, ProGate feature gating

πŸš€ Quick Start

🐳 Docker (Recommended β€” One Command)

# 1. Clone the repo
git clone https://github.com/your-org/devcollab.git
cd devcollab

# 2. Copy environment file
cp .env.example .env

# 3. Fill in required secrets (see Environment Variables below)
#    JWT_SECRET, JWT_REFRESH_SECRET, GEMINI_API_KEY

# 4. Launch everything
docker-compose up --build
Service URL
🌐 Frontend http://localhost
βš™οΈ Backend API http://localhost:3000
πŸ₯ Health Check http://localhost:3000/api/health

πŸ’» Local Development

# 1. Install all workspace dependencies
npm install

# 2. Start infrastructure services only
docker-compose up -d postgres redis

# 3. Start frontend + backend concurrently
npm run dev
Service URL
🌐 Frontend (Vite HMR) http://localhost:5173
βš™οΈ Backend API http://localhost:3000

βš™οΈ Environment Variables

Copy .env.example to .env and configure:

Variable Required Description
DATABASE_URL βœ… PostgreSQL connection string
REDIS_URL βœ… Redis connection string
JWT_SECRET βœ… Secret for signing access tokens
JWT_REFRESH_SECRET βœ… Secret for signing refresh tokens
GEMINI_API_KEY βœ… Google Gemini API key
GEMINI_MODEL βœ… Primary Gemini model (e.g. gemini-2.5-flash-preview-05-20)
GEMINI_FALLBACK_MODEL βœ… Fallback model for quota limits
AI_MOCK_MODE β˜‘οΈ Set true in dev to skip real AI calls
RAZORPAY_KEY_ID β˜‘οΈ Razorpay sandbox key ID
RAZORPAY_KEY_SECRET β˜‘οΈ Razorpay sandbox secret
SMTP_HOST β˜‘οΈ Email server host (e.g. smtp.gmail.com)
SMTP_PORT β˜‘οΈ Email server port (e.g. 587)
SMTP_USER β˜‘οΈ SMTP username / email address
SMTP_PASS β˜‘οΈ SMTP app password
FRONTEND_URL β˜‘οΈ Frontend origin for CORS (e.g. http://localhost:5173)
PORT β˜‘οΈ Backend server port (default: 3000)

βœ… = required to run Β· β˜‘οΈ = required for that feature


πŸ€– AI Intelligence Center

Powered by Google Gemini β€” six AI tools that read your actual project data:

πŸ“– Expand AI Feature Details
Tool What it does
πŸ—“ Wiki Plan Generator Reads your wiki requirements β†’ streams a week-by-week delivery plan β†’ auto-creates tasks on the board in real time
πŸ” Code Reviewer Analyses any code snippet β†’ returns quality score (1–10), bug list, security issues & performance notes
πŸ“Š Project Summariser Reads all your project tasks β†’ produces a health report with blockers, velocity & risk signals
β˜€οΈ Standup Generator Reads last 24 h of activity β†’ outputs a formatted standup report ready to paste in Slack
πŸ›  Engineering Plan Describe a feature β†’ generates 8 actionable subtasks and adds them to your Kanban board automatically
πŸ’‘ Snippet Explainer Pastes any code snippet β†’ returns a plain-English explanation of what it does

πŸ›£ API Routes

πŸ“‹ Full API Reference

All routes are prefixed with /api. JWT Bearer token required on protected routes.

Method Endpoint Description
POST /api/auth/register Register new user account
POST /api/auth/login Login and receive JWT pair
POST /api/auth/refresh Refresh access token
GET /api/auth/me Get current authenticated user
β€” β€” β€”
GET /api/workspaces List user's workspaces
POST /api/workspaces Create a new workspace
GET /api/workspaces/:id Get workspace details
PATCH /api/workspaces/:id Update workspace
DELETE /api/workspaces/:id Delete workspace
POST /api/workspaces/:id/invite Generate invite link
GET /api/workspaces/:id/members List workspace members
β€” β€” β€”
GET /api/projects List projects in workspace
POST /api/projects Create project
GET /api/projects/:id Get project
PATCH /api/projects/:id Update project
DELETE /api/projects/:id Delete project
β€” β€” β€”
GET /api/tasks/project/:projectId List tasks (filterable by status/priority)
POST /api/tasks Create task
GET /api/tasks/:id Get task with comments
PATCH /api/tasks/:id Update task (status, priority, assignee…)
DELETE /api/tasks/:id Delete task
POST /api/tasks/:id/comments Add comment
GET /api/tasks/:id/comments Get task comments
β€” β€” β€”
GET /api/snippets/project/:projectId List snippets
POST /api/snippets Create snippet
GET /api/snippets/:id Get snippet
PATCH /api/snippets/:id Update snippet
DELETE /api/snippets/:id Delete snippet
GET /api/snippets/project/:id/search?q= Search by title or tags
β€” β€” β€”
GET /api/wiki/:projectId Get wiki pages
POST /api/wiki Create wiki page
PATCH /api/wiki/:id Update wiki page
DELETE /api/wiki/:id Delete wiki page
β€” β€” β€”
GET /api/chat/:projectId/messages Get chat messages
POST /api/chat/:projectId/messages Send message
β€” β€” β€”
GET /api/activity/:workspaceId Get workspace activity feed
GET /api/notifications Get user notifications
PATCH /api/notifications/:id/read Mark notification as read
β€” β€” β€”
GET /api/ai/tools List available AI tools
POST /api/ai/run Run an AI tool (streaming SSE)
β€” β€” β€”
GET /api/billing/plans Get billing plans
POST /api/billing/checkout Initiate Razorpay checkout
POST /api/billing/verify Verify payment signature
β€” β€” β€”
GET /api/health Health check

🐳 Docker Services

Service Image Port Purpose
frontend Custom build 80 β†’ 5173 React + Vite dev server
backend Custom build 3000 Fastify API + Socket.IO
postgres postgres:16-alpine 5432 Primary database
redis redis:7-alpine 6379 Pub/sub + job queues
# Useful Docker commands
docker-compose up --build        # Build and start all services
docker-compose up -d postgres redis  # Start only infra
docker-compose down              # Stop all services
docker-compose logs -f backend   # Stream backend logs
docker-compose ps                # Check service health

πŸ† Hackathon

╔══════════════════════════════════════════════════════════╗
β•‘      DevFusion: The Developers Hackathon 2.0             β•‘
β•‘      Problem Statement: #26ENDC6 β€” DevCollab             β•‘
β•‘      Built in 10 days Β· 4 engineers Β· 0 sleep            β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

Why DevCollab?

Developer teams lose hours daily juggling Jira for tasks, Notion for docs, VS Code for code, and Slack for chat β€” four separate tools that don't talk to each other. DevCollab collapses all of that into a single, AI-aware, real-time platform. Every module is purpose-built for how engineering teams actually work, and the AI layer reads your actual project data β€” not generic summaries β€” to deliver plans and insights that are immediately useful.

What Makes It Different

Principle Implementation
πŸ” Zero app switching Board, editor, wiki, chat, snippets β€” all in one sidebar nav
⚑ Real-time by default Every action broadcasts via Socket.IO instantly β€” no polling, no refresh
🧠 AI that knows your project Gemini reads your real wiki pages and tasks before responding
πŸ“ˆ Production-grade architecture Redis adapter enables horizontal scaling of real-time layer
🐳 Fully Dockerized One docker-compose up --build and the entire stack is running

πŸ‘₯ Contributors


πŸ—‚ Project Structure

devcollab/
β”œβ”€β”€ apps/
β”‚   β”œβ”€β”€ frontend/              # React 18 + Vite + TypeScript
β”‚   β”‚   └── src/
β”‚   β”‚       β”œβ”€β”€ components/    # Shared UI components
β”‚   β”‚       β”œβ”€β”€ pages/         # Route-level pages (board, editor, wiki…)
β”‚   β”‚       β”œβ”€β”€ stores/        # Zustand global state
β”‚   β”‚       β”œβ”€β”€ hooks/         # Custom React hooks
β”‚   β”‚       β”œβ”€β”€ services/      # API service layer
β”‚   β”‚       └── lib/           # Axios instance, socket client
β”‚   └── backend/               # Fastify + Node.js + TypeScript
β”‚       └── src/
β”‚           β”œβ”€β”€ modules/       # Feature modules (auth, task, wiki, ai…)
β”‚           β”œβ”€β”€ socket/        # Socket.IO server + event handlers
β”‚           β”œβ”€β”€ db/            # Raw pg queries & migrations
β”‚           β”œβ”€β”€ middleware/     # Auth, error handling
β”‚           β”œβ”€β”€ redis/         # Redis client + pub/sub helpers
β”‚           └── utils/         # Shared utilities
β”œβ”€β”€ docker-compose.yml         # Full stack orchestration
β”œβ”€β”€ docker-compose.prod.yml    # Production configuration
└── .env.example               # Environment variable template

πŸ›  Tech Stack

πŸ“¦ Full Dependency List

Frontend

Package Purpose
React 18 UI framework
Vite Build tool & dev server
TypeScript Type safety
TailwindCSS Utility-first styling
Monaco Editor VS Code engine in-browser
Tiptap Rich text editor (Wiki)
Socket.IO Client Real-time bi-directional events
Zustand Lightweight global state
Lucide React Icon library
Shiki Syntax highlighting (snippets)

Backend

Package Purpose
Fastify High-performance HTTP server
Node.js JavaScript runtime
TypeScript Type safety
pg (raw) PostgreSQL driver β€” no ORM
Redis (ioredis) Pub/sub, caching, adapter
Socket.IO WebSocket server
@socket.io/redis-adapter Horizontal scaling
BullMQ Background job queues
JWT (@fastify/jwt) Authentication tokens

External Services

Service Usage
Google Gemini API AI tools (streaming SSE)
Razorpay Payment processing (sandbox)
SMTP Email notifications & invites


Built with ❀️ by Team Thunder
DevFusion: The Developers Hackathon 2.0 Β· Problem Statement #26ENDC6

Made with love Hackathon Status

Releases

No releases published

Packages

 
 
 

Contributors

Languages