A modern, full-stack team collaboration platform built with Next.js 15, NestJS, WebSockets, and PostgreSQL. Designed to showcase scalable architecture, intelligent task management, real-time communication, and modern development practices.
TeamOps is a comprehensive team management and collaboration platform that streamlines project coordination, task management, and real-time communication with smart assignment and workload distribution. Built with modern technologies and designed for scalability, it demonstrates best practices in full-stack development, microservices architecture, and cloud-native deployment.
- 🚀 Modern Tech Stack — Next.js 15, NestJS, TypeScript, Prisma
- ⚡ Real-Time Features — WebSockets, live notifications, instant updates
- 🎯 Intelligent Task Assignment — Auto-assign tasks to creator, permission-based reassignment
- 📊 Workload Distribution — Visual team workload analytics and metrics
- 🏗️ Scalable Architecture — Microservices, event-driven design
- 🌐 Cloud-Native — Optimized for Render, Vercel, and modern hosting
- 🔒 Enterprise-Ready — JWT auth, role-based access, data security
# Clone and setup
git clone https://github.com/CVamsi27/teamops.git
cd teamops
cp .env.example .env
pnpm install
# Start development
pnpm dev- 🌐 Frontend: Vercel - Auto-deploy from GitHub
- ⚙️ Backend: Render - Uses included
render.yaml - 🗄️ Database: Neon - Serverless PostgreSQL
- 💾 Cache/Events: Upstash - Redis & Kafka (optional)
- 📖 Complete Setup Guide — Development environment setup
- 🏗️ Architecture Overview — System design and structure
- 🚀 Deployment Guide — Production deployment steps
- 🔧 Render Deployment — Render-specific setup
- 🔐 GitHub Actions Guide — CI/CD automation
- 📧 SMTP Setup Guide — Email configuration
- 🎯 Phase 2 Enhancements — Task assignment features
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | Next.js 15 + TypeScript + TailwindCSS + shadcn/ui | Modern React framework with SSR |
| Backend | NestJS + TypeScript + Prisma ORM | Scalable Node.js microservices |
| Database | PostgreSQL + Neon | Serverless PostgreSQL database |
| Real-Time | Socket.IO + WebSockets | Live notifications & updates |
| Authentication | JWT + Google OAuth + Passport.js | Secure user authentication |
| Caching | Upstash Redis (optional) | Performance optimization |
| Events | Upstash Kafka (optional) | Event-driven architecture |
| Deployment | Render + Vercel | Cloud-native hosting |
| Package Manager | pnpm + Turbo | Efficient monorepo management |
| SMTP + Nodemailer | Team invitations & notifications |
- 🔐 Authentication & Authorization — JWT + Google OAuth integration
- 👥 Team Management — Create teams, invite members via email, role-based access
- 📋 Project & Task Management — Full CRUD operations, priorities, deadlines
- 🔔 Real-Time Notifications — Live updates via WebSockets
- 💬 Live Chat — Real-time team communication
- 📊 Activity Dashboard — Track team progress and activity feeds
- 🗂️ File Management — Task attachments and project files
- 📅 Google Calendar Integration — Sync tasks with calendar events
- 🎨 Modern UI — Responsive design with dark/light mode support
- 🎯 Smart Task Assignment — Tasks default to creator, explicit assignment optional
- 🔐 Permission-Based Reassignment — Only LEAD/CONTRIBUTOR members can reassign tasks
- 🔔 Assignment Notifications — Real-time alerts when tasks are assigned/unassigned
- 👥 Auto-Membership — Creator auto-added as LEAD to projects, ADMIN to teams
- 📊 Workload Distribution — Visual analytics showing task counts per team member by status (TODO/IN_PROGRESS/DONE)
- 📈 Team Statistics — Member metrics including total tasks, average workload
- ⚡ Monorepo Architecture — Efficient code sharing and management
- 🔄 Event-Driven Design — Kafka integration for scalable messaging
- 📱 Responsive Design — Mobile-first, cross-platform compatibility
- 🛡️ Security — CORS protection, JWT validation, input sanitization
- 🎭 Role-Based Access — LEAD, CONTRIBUTOR, REVIEWER, VIEWER permissions
- 📊 Workload Analytics — Aggregated metrics and visualization
- 📈 Performance — Redis caching, optimized queries, CDN assets
┌─────────────────┐ HTTP/WebSocket ┌─────────────────┐
│ Frontend │◄───────────────────►│ Backend │
│ (Next.js) │ │ (NestJS) │
│ Port: 3000 │ │ Port: 3001 │
└─────────────────┘ └─────────────────┘
│
▼
┌──────────────────────────────────┐
│ External Services │
│ • PostgreSQL (Neon) │
│ • Redis Cache (Upstash) │
│ • Kafka Events (Upstash) │
│ • SMTP Email Service │
└──────────────────────────────────┘
teamops/
├── apps/
│ ├── api/ # NestJS Backend
│ │ ├── src/
│ │ │ ├── modules/ # Feature modules
│ │ │ │ ├── auth/ # Authentication
│ │ │ │ ├── user/ # User management
│ │ │ │ ├── team/ # Team operations
│ │ │ │ ├── project/ # Project management
│ │ │ │ ├── task/ # Task operations
│ │ │ │ ├── chat/ # Real-time chat
│ │ │ │ ├── notification/ # Notifications
│ │ │ │ └── integration/ # External APIs
│ │ │ ├── common/ # Shared utilities
│ │ │ └── infrastructure/ # Database, WebSocket setup
│ │ └── prisma/ # Database schema & migrations
│ └── web/ # Next.js Frontend
│ ├── app/ # App router pages
│ ├── components/ # Reusable UI components
│ ├── hooks/ # Custom React hooks
│ └── lib/ # Utilities & API clients
├── packages/ # Shared packages
│ ├── ui/ # Shared UI components
│ ├── api/ # Shared types & interfaces
│ └── typescript-config/ # TypeScript configurations
├── docs/ # Documentation
└── scripts/ # Deployment scripts
Tasks in TeamOps feature intelligent assignment management:
- Auto-Assignment: Tasks are automatically assigned to their creator
- Explicit Assignment: Users can assign tasks to team members with permission checks
- Permission Control: Only LEAD and CONTRIBUTOR members can reassign tasks
- Notifications: Real-time notifications when tasks are assigned or reassigned
- Workload Tracking: Built-in analytics to monitor team member workloads
# Assign task to member (requires LEAD/CONTRIBUTOR role)
PATCH /api/tasks/:taskId
{
"assigneeId": "user-id"
}
# Get workload distribution for project
GET /api/tasks/workload/:projectId
Response:
[
{
"userId": "id",
"name": "John Doe",
"email": "john@example.com",
"totalTasks": 5,
"todoCount": 2,
"inProgressCount": 2,
"doneCount": 1
}
]| Role | Can Assign | Can Reassign | Can View Workload |
|---|---|---|---|
| LEAD | ✅ | ✅ | ✅ |
| CONTRIBUTOR | ✅ | ✅ | ✅ |
| REVIEWER | ❌ | ❌ | ✅ |
| VIEWER | ❌ | ❌ | ✅ |
- Workload Distribution View — Visual bar chart showing team member tasks by status
- Task Assignment Selector — Dropdown to assign/reassign tasks
- Task Filters — Filter tasks by assignee (My Tasks, Team Tasks, etc.)
When tasks are assigned or reassigned:
{
"type": "task_assigned",
"taskId": "task-123",
"assigneeId": "user-456",
"projectId": "project-789",
"assignedBy": "user-001",
"timestamp": "2025-10-23T10:30:00Z"
}- ✅ User authentication & team management
- ✅ Project & task CRUD operations
- ✅ Real-time notifications via WebSockets
- ✅ Basic chat functionality
- ✅ Google Calendar integration
- ✅ Smart task assignment (default to creator)
- ✅ Auto-membership for projects/teams
- ✅ Permission-based task reassignment
- ✅ Assignment change notifications
- ✅ Workload distribution analytics
- 🔄 Assignee filters → Filter tasks by assignee ("My Tasks", "Team Tasks", etc.)
- 🔄 Bulk reassignment → Select multiple tasks and reassign in batch
- 🔄 Assignment history → Track who assigned tasks and when
- 🔄 @mention notifications → Notify users when mentioned in comments
- 🔄 Task templates → Create templates with pre-assigned members
- 💬 Advanced Chat Features → Threads, file sharing, emoji reactions
- 📆 Integration Hub → Slack, Microsoft Teams, Jira connectors
- 🗓️ Project Timelines → Gantt charts, milestone tracking
- ⚡ Full Kafka Integration → Event-driven architecture expansion
- 📊 Advanced Analytics → Burndown charts, velocity tracking, performance KPIs
- 🔄 Custom Workflows → Define unique task pipelines per team
- 🏢 Multi-Tenancy Support → Separate data for multiple organizations
- 🛡️ Role-Based API Access → Granular permissions and access control
- 🤖 AI Task Suggestions → Smart recommendations based on past activity
- 📅 AI-Generated Project Timelines → Intelligent project planning
- 🔔 Predictive Alerts → Early warnings for potential delays
- 📈 Smart Analytics → AI-driven insights and productivity recommendations
- 📜 Complete API Documentation → OpenAPI/Swagger specifications
- 🤝 Contributor Guide → Easy onboarding for open source contributors
- 🐳 Docker Setup → Containerized development environment
- 🔌 Plugin System → Extensible architecture for third-party integrations
- Node.js 20+
- pnpm (recommended) or npm
- PostgreSQL database (local or Neon)
git clone https://github.com/CVamsi27/teamops.git
cd teamops
pnpm install# Copy environment template
cp .env.example .env
# Edit .env with your configurations
# Required: DATABASE_URL, JWT_SECRET
# Optional: Google OAuth, Redis, Kafka, SMTP# Generate Prisma client
cd apps/api && pnpm exec prisma generate
# Run migrations
pnpm exec prisma migrate dev
# (Optional) Seed sample data
pnpm exec prisma db seed# Start both frontend and backend
pnpm dev
# Or start individually:
pnpm dev:web # Frontend only (port 3000)
pnpm dev:api # Backend only (port 3001)- 🌐 Frontend: http://localhost:3000
- ⚙️ Backend API: http://localhost:3001/api
- 📊 Database Studio:
pnpm prisma:studio
# 1. Push to GitHub
git push origin main
# 2. Connect repository to Render
# 3. Render auto-detects render.yaml configuration
# 4. Set environment variables in Render dashboardRequired Environment Variables:
DATABASE_URL=your_neon_connection_string
JWT_SECRET=your_secret_key
GOOGLE_CLIENT_ID=your_google_oauth_id (optional)
GOOGLE_CLIENT_SECRET=your_google_oauth_secret (optional)- Vercel + Railway: Frontend on Vercel, API on Railway
- AWS: ECS/EKS for containers, RDS for database
- Google Cloud: Cloud Run + Cloud SQL
- Self-hosted: Docker Compose setup available
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
- TypeScript for type safety
- ESLint + Prettier for code formatting
- Jest for testing
- Conventional commits for git messages
MIT © Vamsi Krishna
- 🌐 Live Demo: [Coming Soon]
- 📚 Documentation: docs/
- 🐛 Issues: GitHub Issues
- 💬 Discussions: GitHub Discussions
- 📧 Contact: vamsi@example.com
# Interactive deployment wizard
npm run deploy:free# 1. Copy environment template
cp .env.example .env.local
# 2. Get deployment help
npm run deploy:guide
# 3. Setup services (follow the links)
npm run setup:all
# 4. Test locally
npm run dev
# 5. Deploy to production
npm run deploy:vercel- Vercel: $0/month (Recommended for Frontend)
- Render: $0/month forever (Recommended for Backend)
- Railway: Pay-as-you-go (Alternative)
- Neon: Free PostgreSQL database
- Upstash: Free Redis + Kafka (optional)
- ✅ GitHub Actions configured
- ✅ Automatic testing on PR
- ✅ Optional auto-deploy to production
- ✅ Zero-config setup
� Complete Documentation → 🏗️ Architecture Overview → � Deployment Guide → � GitHub Actions Setup → 📧 SMTP Email Setup → 🎯 Phase 2 Task Features →