Download Agile Scrum Master Setup (.exe)
Sprint automates the entire scrum lifecycle — planning, assignment, monitoring, and reporting — so your team ships without the coordination overhead.
Quick Start · Architecture · Tech Stack · Docs · Contributing
|
🏢 Multi-Tenant Architecture Universal metadata DB with isolated per-organization tenant databases. Secure and infinitely scalable. |
⚡ Event-Driven Automation Inngest-powered durable functions drive issue-to-task pipelines and monitoring pulses — with full run observability. |
|
🤖 Hybrid AI Architecture Node gateway orchestration layered over a FastAPI ML/LLM service backed by Groq for real sprint intelligence. |
🔗 BFF API Layer Next.js BFF routes keep browser auth clean and backend proxying simple — zero token leakage to the client. |
|
📡 Real-Time Project Feeds Socket.IO project rooms push live approvals and agent actions to connected clients the moment they happen. |
🔧 Operational Resilience BullMQ + Redis for durable background jobs, webhook retry/DLQ, and full worker lifecycle control baked in. |
┌─────────────────────────────────────────────────────────────────────┐
│ SPRINT SYSTEM │
│ │
│ ┌──────────────────┐ ┌──────────────────────────────────┐ │
│ │ FRONTEND │ │ BACKEND GATEWAY │ │
│ │ │ │ │ │
│ │ Next.js 16 │─────▶│ Express API Gateway │ │
│ │ App Router │ │ ├── Service Layer │ │
│ │ BFF API Routes │ │ ├── BullMQ Workers │ │
│ │ Zustand Stores │ │ └── Socket.IO │ │
│ └──────────────────┘ └──────────┬───────────────────────┘ │
│ │ │
│ ┌─────────────────────────────┼──────────────────┐ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌───────────────┐ ┌─────────────────────┐ ┌─────────────────┐ │
│ │ AI SERVICE │ │ AUTOMATION │ │ DATA LAYER │ │
│ │ │ │ │ │ │ │
│ │ FastAPI │ │ Inngest │ │ Universal DB │ │
│ │ ML/LLM routes│ │ Task Factory │ │ Tenant DB │ │
│ │ Groq Inference│ │ Monitor Functions │ │ Redis Cache │ │
│ └───────────────┘ └─────────────────────┘ └─────────────────┘ │
│ │
│ ─────────────────────── EXTERNAL INTEGRATIONS ─────────────────── │
│ GitHub Webhooks · Jira OAuth · Slack · Groq API │
└─────────────────────────────────────────────────────────────────────┘
Data flow: Browser → Next.js BFF → Express Gateway → Services → {Universal DB / Tenant DB}
AI flow: Gateway → FastAPI → Groq → Response
Events: GitHub/Jira Webhook → Gateway → Inngest → Task Factory → Tenant DB
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | Next.js 16 · React 19 · Tailwind | App Router UX with unified frontend/backend route model |
| State | Zustand | Lightweight global state for UI and agent feeds |
| API Gateway | Node.js · Express | Mature middleware ecosystem, predictable routing |
| Realtime | Socket.IO | Project room updates for approvals and agent actions |
| Database | PostgreSQL 14+ (Neon compatible) | Strong relational model with tenant isolation |
| Background Jobs | BullMQ · Redis 7 | Durable retries and full operational control |
| Orchestration | Inngest | Durable event functions with run observability |
| AI Service | FastAPI · Python 3.11 · Groq | ML/LLM integration and model lifecycle support |
sprint/
│
├── app/ # Next.js App Router + BFF API
│ ├── (dashboard)/ # Dashboard route group
│ ├── api/ # BFF API endpoints
│ └── auth/ # Auth pages
│
├── components/ # Shared React UI components
├── lib/ # Utility modules (DB, proxy, stores)
├── src/store/ # Zustand stores for agent feed state
├── inngest/ # Event client & function implementations
│
├── backend/
│ ├── api-gateway/ # Express API gateway
│ │ ├── src/routes/
│ │ ├── src/services/
│ │ ├── src/workers/
│ │ └── init.sql
│ └── ai-service/ # FastAPI AI service (Python)
│
├── database/
│ └── init.sql # App schema bootstrap SQL
│
└── docs/
├── product/
└── technical/
├── architecture.md
├── database-schema.md
└── agents.md
Make sure you have the following installed:
| Tool | Version |
|---|---|
| Node.js | 20+ |
| npm | 10+ |
| Python | 3.11+ |
| PostgreSQL | 14+ |
| Redis | 7+ |
git clone https://github.com/your-org/sprint.git
cd sprint
npm install# Root config
cp .env.example .env
# API Gateway config
cp backend/api-gateway/.env.example backend/api-gateway/.env
# AI Service config
cp backend/ai-service/.env.example backend/ai-service/.envFill in all required values — see Environment Variables below.
# App schema
npm run init:app-db
# Universal DB (from gateway)
cd backend/api-gateway
npm run init:universal-dbOpen three terminals:
# Terminal 1 — API Gateway
cd backend/api-gateway
npm run dev# Terminal 2 — AI Service
cd backend/ai-service
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000# Terminal 3 — Next.js App
npm run devRun your Inngest dev workflow and ensure the Next.js endpoint is reachable:
http://localhost:3000/api/inngest
Root .env
| Variable | Description |
|---|---|
DATABASE_URL |
Primary PostgreSQL connection string |
DB_* |
Additional DB config (host, port, name, user, pass) |
API_GATEWAY_URL |
Base URL for the Express gateway |
API_PORT |
Port the gateway listens on |
AI_SERVICE_URL |
FastAPI AI service base URL |
AI_PORT |
Port the AI service listens on |
GROQ_API_KEY |
Groq API key for LLM inference |
GITHUB_* |
GitHub app credentials + webhook secret |
JIRA_* |
Jira OAuth client ID and secret |
SLACK_* |
Slack app tokens |
NEXTAUTH_SECRET |
NextAuth.js signing secret |
JWT_SECRET |
JWT signing secret |
NEXTAUTH_URL |
Public app URL for NextAuth |
API Gateway backend/api-gateway/.env
| Variable | Description |
|---|---|
UNIVERSAL_DATABASE_URL |
Connection string for the universal/metadata DB |
PORT |
Gateway server port |
FRONTEND_URL |
Frontend origin for CORS |
JWT_SECRET |
JWT signing secret |
REFRESH_TOKEN_SECRET |
Refresh token signing secret |
TENANT_DB_PROVISIONING_MODE |
neon or local |
NEON_API_KEY |
Neon API key (when using Neon provisioning) |
REDIS_URL |
Redis connection string for BullMQ |
ENABLE_SCHEDULER |
Toggle background scheduler (true/false) |
ENABLE_WORKERS |
Toggle background workers (true/false) |
GITHUB_WEBHOOK_SECRET |
Shared secret for GitHub webhook validation |
JIRA_CLIENT_ID |
Jira OAuth client ID |
JIRA_CLIENT_SECRET |
Jira OAuth client secret |
AI Service backend/ai-service/.env
| Variable | Description |
|---|---|
DATABASE_URL |
PostgreSQL connection string for the AI service |
GROQ_API_KEY |
Groq API key |
GROQ_BASE_URL |
Groq API base URL |
GROQ_MODEL |
Model identifier (e.g. llama3-70b-8192) |
npm run dev # Start Next.js development server
npm run build # Build Next.js for production
npm run start # Run production Next.js server
npm run lint # Run ESLint
npm run init:app-db # Bootstrap app schema from database/init.sqlnpm run dev # Start Express with nodemon
npm run start # Start Express (production)
npm run init:universal-db # Initialize universal DB schema
npm run init:tenant-template-db # Initialize tenant template DB
npm run init:tenant-db # Initialize a tenant DB from connection string
npm run migrate:spaces-goals-devtools # Run spaces/goals/devtools migration
npm run migrate:teams-rbac # Run teams & RBAC migration
npm run reset:all-data # Reset all seeded data
npm test # Run gateway test suiteBrowser
└─▶ Next.js BFF (/app/api/*)
└─▶ reads auth_token cookie
└─▶ proxies to Express Gateway with Authorization: Bearer <jwt>
└─▶ Gateway validates JWT
└─▶ resolves Tenant DB from orgId in token claims
- No direct API calls from browser to the Express gateway — all traffic routes through the BFF
- Per-tenant DB isolation —
orgIdin JWT claims determines which database connection is used - Webhook verification — all GitHub webhook payloads are HMAC-validated before processing
- DLQ on failure — failed webhook deliveries are routed to a dead-letter queue for retry
| Document | Path |
|---|---|
| 🏗 Architecture Overview | docs/technical/architecture.md |
| 🗄 Database Schema | docs/technical/database-schema.md |
| 🤖 Agents Reference | docs/technical/agents.md |
| 📦 Product Docs | docs/product/ |
| 🤝 Contributing Guide | CONTRIBUTING.md |
Contributions are welcome! Please read CONTRIBUTING.md before opening a PR.
# Fork the repo, then:
git checkout -b feat/your-feature
git commit -m "feat: describe your change"
git push origin feat/your-feature
# Open a Pull RequestSprint is released under the MIT License.
Built to eliminate sprint coordination overhead — one agent at a time.