Skip to content

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 (PrismaPg over a pg.Pool); generated client lives under src/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 dev

What's Different from Prisma 5/6

AspectPrisma 5/6Prisma 7 (this example)
Generatorprisma-client-jsprisma-client with output
Client importfrom '@prisma/client'from '@/generated/prisma'
Connectionnew PrismaClient()new PrismaClient({ adapter: new PrismaPg(pool) })
Logging$on('query', ...)Auto — adapter uses $extends
@prisma/client depRequiredNot needed (client generated locally)

Packages Used

PackagePurpose
@forinda/kickjsCore framework: DI, decorators, Express 5 routing, middleware
@forinda/kickjs-configZod-based env validation
@forinda/kickjs-swaggerOpenAPI docs
@forinda/kickjs-devtoolsDebug dashboard
@forinda/kickjs-authJWT auth with @Public() decorator
@forinda/kickjs-prismaPrisma adapter — supports v5 / v6 / v7 client shapes
@forinda/kickjs-queueBullMQ job processing
BYO cron via defineAdapter + cronerScheduled tasks — see Cron guide
BYO mailer via definePlugin + nodemailer/ResendEmail transport — see Mailer guide
@forinda/kickjs-wsWebSocket adapter
@prisma/adapter-pg + pgPrisma 7 driver adapter for PostgreSQL

Source