Een desktop-first fullstack webapplicatie voor solo developers en kleine Scrum Teams die meerdere softwareprojecten parallel beheren. De app organiseert werk hiërarchisch (product → PBI → story → taak), biedt gesplitste planningsschermen met drag-and-drop, en integreert met Claude Code via een REST API en MCP https://scrum4-me.vercel.app
Find a file
janpeter visser 08de004ae7 feat: PostgreSQL support en Vercel CI/CD deployment
- Prisma schema: sqlite → postgresql provider met directUrl
- prisma.config.ts: directUrl toegevoegd
- seed.ts: dynamisch SQLite of PostgreSQL adapter op basis van DATABASE_URL
- ci.yml: preview deploy op PR, productie deploy op push naar main

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 12:59:12 +02:00
.github/workflows feat: PostgreSQL support en Vercel CI/CD deployment 2026-04-24 12:59:12 +02:00
.icons feat: ST-201-ST-210 M2 stories, drag-and-drop en Zustand stores 2026-04-24 11:46:18 +02:00
__tests__ feat: ST-601-ST-612 M6 polish, beveiliging en launch-ready 2026-04-24 12:36:23 +02:00
actions feat: ST-601-ST-612 M6 polish, beveiliging en launch-ready 2026-04-24 12:36:23 +02:00
app feat: ST-601-ST-612 M6 polish, beveiliging en launch-ready 2026-04-24 12:36:23 +02:00
components feat: ST-601-ST-612 M6 polish, beveiliging en launch-ready 2026-04-24 12:36:23 +02:00
lib feat: ST-601-ST-612 M6 polish, beveiliging en launch-ready 2026-04-24 12:36:23 +02:00
prisma feat: PostgreSQL support en Vercel CI/CD deployment 2026-04-24 12:59:12 +02:00
public feat: ST-101-ST-110 M1 producten, PBI backlog, iconen en PWA manifest 2026-04-24 11:33:47 +02:00
stores feat: ST-301-ST-312 M3 Sprint Backlog en Sprint Planning 2026-04-24 11:51:27 +02:00
.gitignore feat: MD3 design system + spec-documenten toegevoegd aan repo 2026-04-24 11:01:00 +02:00
AGENTS.md Initial commit from Create Next App 2026-04-22 20:25:19 +02:00
CLAUDE.md feat: ST-201-ST-210 M2 stories, drag-and-drop en Zustand stores 2026-04-24 11:46:18 +02:00
components.json feat: ST-001–ST-005 foundation — scaffolding, Prisma, schema, seed, env 2026-04-22 21:04:48 +02:00
eslint.config.mjs Initial commit from Create Next App 2026-04-22 20:25:19 +02:00
MD3_Color_Scheme_Documentation.md feat: MD3 design system + spec-documenten toegevoegd aan repo 2026-04-24 11:01:00 +02:00
middleware.ts feat: ST-006-ST-008 auth pages, middleware, nav shell en dashboard 2026-04-24 11:18:42 +02:00
next.config.ts Initial commit from Create Next App 2026-04-22 20:25:19 +02:00
package-lock.json feat: ST-601-ST-612 M6 polish, beveiliging en launch-ready 2026-04-24 12:36:23 +02:00
package.json feat: ST-601-ST-612 M6 polish, beveiliging en launch-ready 2026-04-24 12:36:23 +02:00
postcss.config.mjs Initial commit from Create Next App 2026-04-22 20:25:19 +02:00
prisma.config.ts feat: PostgreSQL support en Vercel CI/CD deployment 2026-04-24 12:59:12 +02:00
README.md feat: ST-601-ST-612 M6 polish, beveiliging en launch-ready 2026-04-24 12:36:23 +02:00
scrum4me-architecture.md feat: MD3 design system + spec-documenten toegevoegd aan repo 2026-04-24 11:01:00 +02:00
scrum4me-backlog.md feat: MD3 design system + spec-documenten toegevoegd aan repo 2026-04-24 11:01:00 +02:00
scrum4me-functional-spec.md feat: MD3 design system + spec-documenten toegevoegd aan repo 2026-04-24 11:01:00 +02:00
scrum4me-personas.md feat: MD3 design system + spec-documenten toegevoegd aan repo 2026-04-24 11:01:00 +02:00
scrum4me-product-backlog.md feat: MD3 design system + spec-documenten toegevoegd aan repo 2026-04-24 11:01:00 +02:00
scrum4me-styling.md feat: MD3 design system + spec-documenten toegevoegd aan repo 2026-04-24 11:01:00 +02:00
Srum4MeIcons.html feat: ST-201-ST-210 M2 stories, drag-and-drop en Zustand stores 2026-04-24 11:46:18 +02:00
theme.css feat: MD3 design system + spec-documenten toegevoegd aan repo 2026-04-24 11:01:00 +02:00
tsconfig.json Initial commit from Create Next App 2026-04-22 20:25:19 +02:00
vitest.config.ts feat: ST-601-ST-612 M6 polish, beveiliging en launch-ready 2026-04-24 12:36:23 +02:00

Scrum4Me

Lichtgewicht Scrum-planner voor solo developers en kleine teams die meerdere softwareprojecten parallel beheren.

Functies:

  • Hiërarchisch werkbeheer: Product → PBI → Story → Taak
  • Gesplitste planningsschermen met drag-and-drop
  • Sprint backlog en planning
  • REST API voor integratie met Claude Code
  • Demo-modus (alleen lezen)

Lokale quickstart

Vereisten

  • Node.js 20+
  • npm

Stappen

# 1. Clone de repository
git clone <repo-url>
cd scrum4me

# 2. Installeer dependencies
npm install

# 3. Configureer omgevingsvariabelen
cp .env.example .env.local
# Bewerk .env.local en vul SESSION_SECRET in:
# openssl rand -base64 32

# 4. Database initialiseren (SQLite lokaal)
npx prisma db push

# 5. Testdata inladen
npx prisma db seed

# 6. Start de ontwikkelserver
npm run dev

Open http://localhost:3000.

Demo-account: gebruikersnaam demo / wachtwoord demo1234 (alleen lezen)


Omgevingsvariabelen

Variabele Beschrijving
DATABASE_URL SQLite: file:./dev.db · PostgreSQL: zie Neon-sectie
DIRECT_URL Alleen bij PostgreSQL met connection pooling (Neon)
SESSION_SECRET Minimaal 32 tekens — genereer met openssl rand -base64 32

Cloud deployment (Vercel + Neon)

1. Database aanmaken op Neon

  1. Maak een account op neon.tech
  2. Maak een nieuw project en database
  3. Kopieer de connection strings:
    • DATABASE_URL: de pooled connection string
    • DIRECT_URL: de directe (niet-gepoolde) connection string

2. Deployen op Vercel

  1. Push de code naar GitHub
  2. Importeer het project in vercel.com
  3. Voeg de volgende environment variables toe in Vercel:
    • DATABASE_URL (Neon pooled URL)
    • DIRECT_URL (Neon direct URL)
    • SESSION_SECRET (random string >= 32 tekens)
  4. Deploy

3. Database migraties uitvoeren

# Eenmalig na deploy:
npx prisma migrate deploy
npx prisma db seed

REST API

Alle endpoints vereisen Authorization: Bearer <token>. Maak een token aan via Instellingen -> API Tokens in de app.

Endpoints

GET /api/products

Haal alle actieve producten op.

curl -H "Authorization: Bearer <token>" \
  https://your-app.vercel.app/api/products

Response:

[
  { "id": "clx...", "name": "Mijn Product", "repo_url": "https://github.com/..." }
]

GET /api/products/:id/next-story

Haal de hoogst geprioriteerde open story uit de actieve sprint op.

curl -H "Authorization: Bearer <token>" \
  https://your-app.vercel.app/api/products/<product-id>/next-story

Response: story-object inclusief taken.


GET /api/sprints/:id/tasks?limit=10

Haal de eerste N taken uit de sprint op (standaard 10, max 50).

curl -H "Authorization: Bearer <token>" \
  "https://your-app.vercel.app/api/sprints/<sprint-id>/tasks?limit=5"

POST /api/stories/:id/log

Voeg een logvermelding toe aan een story.

# Implementatieplan:
curl -X POST -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"type":"IMPLEMENTATION_PLAN","content":"Aanpak: ..."}' \
  https://your-app.vercel.app/api/stories/<story-id>/log

# Testresultaat:
curl -X POST -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"type":"TEST_RESULT","content":"Alle tests geslaagd","status":"PASSED"}' \
  https://your-app.vercel.app/api/stories/<story-id>/log

# Commit:
curl -X POST -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"type":"COMMIT","content":"feat: ST-001","commit_hash":"abc123","commit_message":"feat: ST-001 scaffolding"}' \
  https://your-app.vercel.app/api/stories/<story-id>/log

PATCH /api/stories/:id/tasks/reorder

Pas de taakvolgorde aan binnen een story.

curl -X PATCH -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"task_ids":["id-1","id-2","id-3"]}' \
  https://your-app.vercel.app/api/stories/<story-id>/tasks/reorder

PATCH /api/tasks/:id

Werk de status van een taak bij.

curl -X PATCH -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"status":"IN_PROGRESS"}' \
  https://your-app.vercel.app/api/tasks/<task-id>

Status waarden: TO_DO - IN_PROGRESS - DONE


POST /api/todos

Maak een todo aan.

curl -X POST -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"title":"Mijn nieuwe todo"}' \
  https://your-app.vercel.app/api/todos

Claude Code integratie

Scrum4Me integreert met Claude Code via de REST API.

  1. Maak een API token aan via Instellingen -> API Tokens
  2. Gebruik de API om implementatieplannen, testresultaten en commits automatisch te loggen in stories

Scripts

Script Beschrijving
npm run dev Lokale ontwikkelserver
npm run build Productie-build
npm run lint ESLint
npm test Beveiligingstests uitvoeren
npx tsc --noEmit TypeScript-check
npx prisma db push Database schema synchroniseren
npx prisma db seed Testdata inladen

Tech stack

  • Next.js 15 (App Router) + React 19
  • TypeScript strict
  • Tailwind CSS + shadcn/ui (Base UI)
  • Zustand (client state)
  • dnd-kit (drag-and-drop)
  • Prisma v7 (ORM)
  • PostgreSQL (Neon) / SQLite (lokaal)
  • iron-session (auth)
  • Sonner (toasts)
  • Zod (validatie)