Task Management App (Prisma 7)
A full-featured task management API built with KickJS, Prisma 7, and PostgreSQL. Demonstrates the Prisma 7 driver adapter pattern with @prisma/adapter-pg.
Features
- 14 DDD modules — auth, users, workspaces, projects, tasks, labels, comments, attachments, channels, messages, notifications, activity, stats
- PostgreSQL + Prisma 7 — driver adapter wiring (
PrismaPgover apg.Pool); generated client lives undersrc/generated/prisma/ @forinda/kickjs-auth— JWT strategy with@Public()decorator and protected-by-default policy- Real-time — WebSocket adapter for live updates
- Background jobs — BullMQ queues for email, notifications, activity logging
- Cron jobs — token cleanup, overdue reminders, health checks, daily digests, presence cleanup
- Swagger UI at
/docs, DevTools at/_debug
Running
bash
cd examples/task-prisma-api
# Set up Postgres + Redis connection
cp .env.example .env # edit DATABASE_URL and REDIS_URL
# Generate Prisma client (also runs on postinstall)
npx prisma generate
# Push schema to database
npx prisma db push
# Start dev server
kick devWhat's Different from Prisma 5/6
| Aspect | Prisma 5/6 | Prisma 7 (this example) |
|---|---|---|
| Generator | prisma-client-js | prisma-client with output |
| Client import | from '@prisma/client' | from '@/generated/prisma' |
| Connection | new PrismaClient() | new PrismaClient({ adapter: new PrismaPg(pool) }) |
| Logging | $on('query', ...) | Auto — adapter uses $extends |
@prisma/client dep | Required | Not needed (client generated locally) |
Packages Used
| Package | Purpose |
|---|---|
@forinda/kickjs | Core framework: DI, decorators, Express 5 routing, middleware |
@forinda/kickjs-config | Zod-based env validation |
@forinda/kickjs-swagger | OpenAPI docs |
@forinda/kickjs-devtools | Debug dashboard |
@forinda/kickjs-auth | JWT auth with @Public() decorator |
@forinda/kickjs-prisma | Prisma adapter — supports v5 / v6 / v7 client shapes |
@forinda/kickjs-queue | BullMQ job processing |
BYO cron via defineAdapter + croner | Scheduled tasks — see Cron guide |
BYO mailer via definePlugin + nodemailer/Resend | Email transport — see Mailer guide |
@forinda/kickjs-ws | WebSocket adapter |
@prisma/adapter-pg + pg | Prisma 7 driver adapter for PostgreSQL |