gitbuyer_

zelalemzola/sprint_planner

privatemain

README

SprintDeck

SprintDeck is a production-grade full-stack team sprint planning application.

Features

  • Workspace & Team Management: Invite members, assign roles (Admin/Member).
  • Sprint Management: Create sprints with goals, dates, and member capacities.
  • Task Management: Create, assign, estimate, and prioritize tasks.
  • Kanban Board: Drag-and-drop task management for active sprints.
  • Burndown Chart: Real-time visualization of sprint progress.
  • Velocity Tracking: Rolling average of completed points across past sprints.
  • Comments & Activity: Collaborate on tasks with comments.
  • Daily Digest: Email summaries for active sprints.

Tech Stack

  • Framework: Next.js 14 (App Router)
  • Language: TypeScript (strict mode)
  • API: tRPC
  • Database: PostgreSQL with Prisma ORM
  • Validation: Zod
  • Styling: Tailwind CSS
  • Testing: Vitest + React Testing Library

Architecture

SprintDeck follows a modern Next.js App Router architecture:

  • Frontend & Routing: Built with React Server Components (RSC) and Client Components. The App Router handles routing natively. Pages fetch initial data server-side where possible.
  • Typesafe API (tRPC): We use tRPC to define API routes in src/server/routers. This provides end-to-end typesafety from the backend resolvers to the frontend hooks without needing build steps or GraphQL codegen.
  • Database & ORM (Prisma): Prisma acts as our strongly-typed database client. Schema is defined in prisma/schema.prisma. All services in src/server/services perform DB operations using the shared Prisma client.
  • Authentication: Handled via NextAuth.js.
  • Data Validation: We use zod both in tRPC inputs and API routes for strict runtime validation.

Getting Started

Prerequisites

  • Node.js 20+
  • PostgreSQL
  • Docker (optional)

Quick Start (Docker)

The easiest way to run the application locally is using Docker Compose, which spins up a Postgres database, runs Prisma migrations, and starts the Next.js development server with your local files mounted for live reloading:

  1. Clone the repository
  2. Run cp .env.example .env
  3. Run docker-compose up --build
  4. Access the app at http://localhost:3000

Manual Setup

  1. Clone the repository
  2. Run npm install
  3. Copy .env.example to .env and fill the variables
  4. Run npx prisma migrate dev
  5. Run npm run dev

Testing

Unit tests (no database / no Docker required)

From a fresh clone:

npm ci
npx prisma generate
npm test

Coverage gates:

npm run test:coverage

Service tests use a Prisma mock at src/server/db/__mocks__/client.ts, so the unit suite exits 0 without Postgres or Docker.

Optional one-shot helper: npm run verify:fresh (generate → build → unit tests).

Integration tests (disposable Postgres)

One command from a fresh clone (Docker required):

npm install
npm run test:integration:local

On Windows PowerShell:

npm install
npm run test:integration:local:win

Manual equivalent:

docker compose -f docker-compose.test.yml up -d --wait
DATABASE_URL=postgresql://test:test@localhost:5433/sprint_planner_test?schema=public \
  npx prisma db push
RUN_INTEGRATION=1 DATABASE_URL=postgresql://test:test@localhost:5433/sprint_planner_test?schema=public \
  npm run test:integration
docker compose -f docker-compose.test.yml down -v

CI runs unit coverage and integration tests against docker-compose.test.yml.

Health & metrics

  • GET /api/health — liveness/readiness (?mode=ready also pings Postgres)
  • GET /api/metrics — Prometheus counters for requests/errors

Security

See SECURITY.md.

648 files

file contents open where the seller allows a preview; the rest is what you are buying

.github/6
.husky/1
docs/334
prisma/2
scripts/4
src/129

… and 148 more files; every path is in the JSON face