Revise README for project overview and features
Updated the README to reflect new features, technology stack, and project goals.
This commit is contained in:
parent
671e58948c
commit
aea278eed7
1 changed files with 60 additions and 246 deletions
306
README.md
306
README.md
|
|
@ -1,250 +1,64 @@
|
|||
# Scrum4Me
|
||||
# Scrum4Me – Agile Project Management Tool
|
||||
|
||||
## Portfolio samenvatting
|
||||
Scrum4Me is een moderne fullstack webapplicatie voor agile projectmanagement.
|
||||
De applicatie is gebouwd als portfolio-project om mijn vaardigheden in moderne softwareontwikkeling, cloud deployment en AI-assisted development te demonstreren.
|
||||
|
||||
## Doel
|
||||
Veel teams missen overzicht en flexibiliteit in agile workflows.
|
||||
Scrum4Me biedt een lichtgewicht, web-based oplossing voor het beheren van sprints, taken en teamprocessen.
|
||||
|
||||
## Mijn rol
|
||||
- Architectuur en ontwerp
|
||||
- Fullstack development (frontend + backend)
|
||||
- Database ontwerp
|
||||
- Implementatie van authenticatie en API’s
|
||||
- CI/CD en deployment
|
||||
|
||||
## Functionaliteiten
|
||||
- Agile dashboards (scrum boards)
|
||||
- Taakbeheer (create/update/delete)
|
||||
- Authenticatie en gebruikersbeheer
|
||||
- API tokens voor externe integraties
|
||||
- Drag-and-drop interactie
|
||||
- Integratie met AI tooling (Claude Code)
|
||||
|
||||
## Technologie stack
|
||||
- Next.js (App Router)
|
||||
- React
|
||||
- TypeScript
|
||||
- Prisma ORM
|
||||
- PostgreSQL (Neon)
|
||||
- Vercel (hosting)
|
||||
- GitHub Actions (CI/CD)
|
||||
|
||||
## Architectuur (kort)
|
||||
- Frontend en backend via Next.js
|
||||
- Database via Prisma + PostgreSQL
|
||||
- Auth en API via server routes
|
||||
- Deployment via Vercel
|
||||
|
||||
## Live demo
|
||||
👉 Voeg hier je Vercel link toe
|
||||
|
||||
## Screenshots
|
||||
👉 Voeg hier screenshots toe (dashboard, board, etc.)
|
||||
|
||||
## Wat ik geleerd heb
|
||||
- Werken met moderne fullstack architectuur
|
||||
- Integratie van database via Prisma
|
||||
- Opzetten van CI/CD pipelines
|
||||
- Structureren van schaalbare webapplicaties
|
||||
|
||||
## Toekomstige verbeteringen
|
||||
- Multi-user samenwerking verbeteren
|
||||
- Notificaties
|
||||
- Performance optimalisatie
|
||||
- Uitbreiding AI-functionaliteit
|
||||
|
||||
## Repository
|
||||
https://github.com/madhura68/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](https://neon.tech) — gratis tier volstaat)
|
||||
|
||||
### Stappen
|
||||
|
||||
```bash
|
||||
# 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](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
|
||||
|
||||
1. Maak een account op [neon.tech](https://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](https://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
|
||||
|
||||
```bash
|
||||
# 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.
|
||||
|
||||
```bash
|
||||
curl -H "Authorization: Bearer <token>" \
|
||||
https://your-app.vercel.app/api/products
|
||||
```
|
||||
|
||||
**Response:**
|
||||
```json
|
||||
[
|
||||
{ "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.
|
||||
|
||||
```bash
|
||||
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).
|
||||
|
||||
```bash
|
||||
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.
|
||||
|
||||
```bash
|
||||
# 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.
|
||||
|
||||
```bash
|
||||
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.
|
||||
|
||||
```bash
|
||||
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.
|
||||
|
||||
```bash
|
||||
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](https://claude.ai/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 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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue