6.6 KiB
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: stories slepen vanuit de Product Backlog naar de Sprint en terug
- Sprint Planning: taken beheren per story
- REST API voor integratie met Claude Code
- Demo-modus (alleen lezen) — inclusief actieve sprint met voorbeelddata
- Statusbalk met versienummer en builddatum
Lokale quickstart
Vereisten
- Node.js 20+
- npm
- Een Neon PostgreSQL database (neon.tech — gratis tier volstaat)
Stappen
# 1. Clone de repository
git clone <repo-url>
cd scrum4me
# 2. Installeer dependencies
npm install
# 3. Configureer omgevingsvariabelen
cp .env.example .env.local
# Vul de volgende waarden in .env.local:
# DATABASE_URL — Neon pooled connection string
# DIRECT_URL — Neon direct connection string
# SESSION_SECRET — genereer met: openssl rand -base64 32
# 4. Database schema aanmaken en migraties uitvoeren
npx prisma migrate deploy
# 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 — inclusief actieve sprint met 3 voorbeeldstories)
Omgevingsvariabelen
| Variabele | Beschrijving |
|---|---|
DATABASE_URL |
Neon pooled connection string |
DIRECT_URL |
Neon direct connection string (voor migraties) |
SESSION_SECRET |
Minimaal 32 tekens — genereer met openssl rand -base64 32 |
Cloud deployment (Vercel + Neon)
1. Database aanmaken op Neon
- Maak een account op neon.tech
- Maak een nieuw project en database
- Kopieer de connection strings:
- DATABASE_URL: de pooled connection string
- DIRECT_URL: de directe (niet-gepoolde) connection string
2. Deployen op Vercel
- Push de code naar GitHub
- Importeer het project in vercel.com
- Voeg de volgende environment variables toe in Vercel:
DATABASE_URL(Neon pooled URL)DIRECT_URL(Neon direct URL)SESSION_SECRET(random string >= 32 tekens)
- 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.
- Maak een API token aan via Instellingen -> API Tokens
- 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 migrate deploy |
Migraties uitvoeren |
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, inclusief cross-panel drag)
- Prisma v7 (ORM)
- PostgreSQL via Neon (zowel lokaal als productie)
- iron-session (auth)
- Sonner (toasts)
- Zod (validatie)
Wijzigingslog
v0.2.0
- Drag-and-drop Sprint Backlog: stories slepen vanuit de Product Backlog (rechts) naar de Sprint Backlog (links) en terug — vervangt de voormalige "+ Sprint" knop
- Statusbalk: sticky balk onderaan met copyright, versienummer (
package.json) en builddatum (ingesteld op het moment van de Vercel-build) - Demo-sprint: seed maakt automatisch een actieve sprint aan voor de demo-gebruiker zodat de Sprint Backlog direct te verkennen is
- CI/CD: GitHub Actions pipeline met TypeScript-check, ESLint en automatische Prisma-generatie
- Vercel + Neon deployment: productie-omgeving actief op PostgreSQL