Helix Ticketing App
Portfolio project by Nanakumor Princewill
Production-inspired helpdesk with JWT auth, RBAC, soft deletes, Dockerized Postgres, and a layered Vitest/Playwright suite — built with Next.js 16 by Nanakumor Princewill.

Built for
Support teams that need a clean ticket inbox, role-separated admin tools, audit-friendly history, and deployable local infrastructure — not a throwaway CRUD demo.
Problem
Many portfolio “ticket apps” stop at create/read/update. Real support work needs auth, roles, conversation threads, priorities, safe soft deletes, clear loading/empty states, and a database story that travels with the app (migrations + Docker).
Overview
Helix Ticketing App is a full-stack helpdesk I built to practice enterprise patterns end to end: JWT sessions, RBAC, ticket conversations, admin console, activity logging, soft deletes, Zod validation, flash toasts, closed-ticket UX, Sentry monitoring, Prisma migrations, and Docker Compose for Postgres 17. It is an original portfolio product by Nanakumor Princewill — not affiliated with other products named Helix.
Capabilities
- User and admin experiences with separate permissions and ownership-aware ticket queues
- Ticket creation, priorities, threaded comments, activity history, and close flows
- Closed tickets visually muted (strikethrough / faded) with replies disabled
- Admin console for users with soft-delete that reassigns tickets instead of erasing history
- Flash toasts, confirm modals, loading spinners, and empty states across key flows
- Docker Compose + Prisma migrations for a reproducible Postgres setup
Architecture notes
- Next.js 16 App Router with Server Actions (no separate REST API) and Zod at every mutation edge
- PostgreSQL 17 + Prisma 7 as the relational source of truth, with versioned SQL migrations
- JWT httpOnly sessions (jose) + bcrypt hashing, login rate limits, and soft-delete-aware session checks
- Sentry for runtime visibility; Vitest unit/integration + Playwright E2E with axe a11y
- Optional Docker image + Compose stack for app + Postgres local/demo environments
Outcomes
- A deployable support product shape — auth, RBAC, conversations, admin tooling, and polish UX in one stack
- Clear separation between end-user ticket work and operator administration
- Data-safety habits (soft deletes + activity logging + migrations) baked into the domain model
- Documented layered tests and a public GitHub repo for walkthroughs and code review
Tech stack
- Next.js 16
- React 19
- TypeScript
- PostgreSQL
- Prisma
- Tailwind CSS v4
- JWT (jose)
- bcrypt
- Zod
- Sentry
- Docker
- Vitest
- Playwright