03Internal toolReadyDemo project

ServiceDesk Lite

An internal ticketing system with roles, a status workflow, and a change history.

ServiceDesk Lite is a demo internal system for handling employee tickets: roles, a status workflow, comments, and a full change history for every ticket.

Next.jsTypeScriptPostgreSQLDrizzle ORMTailwind CSS

01 / THE PROBLEM

What needed to change

Internal technical tickets often live in chats or email: it's hard to track status, who's handling what, and what's already been done — history gets lost, and access to other people's tickets isn't restricted at all.

02 / THE SOLUTION

How the solution works

ServiceDesk Lite gives employees and admins separate roles, a clear ticket status workflow, comments, and a full change history, with data access restricted at the database level (row-level security) rather than only by interface checks.

03 / KEY FEATURES

Key capabilities

Only the capabilities that support the core user journey.

  1. 01Employee and admin roles
  2. 02Ticket status workflow
  3. 03Employee registry
  4. 04Ticket comments
  5. 05Change history (activity log)
  6. 06Ticket dashboard
  7. 07Database-level data access control (RLS)

05 / ARCHITECTURE

What happens beneath the interface

A Next.js application with a role model (employee/admin), a ticket status workflow, and a change history. Data access is restricted at the PostgreSQL level (row-level security), not only by checks in the application code.

06 / VERIFICATION

A result you can verify

These figures refer to the recorded, verified version of the project.

0Lintfindings
0Typecheckerrors
572 / 572Unit tests (Vitest)passed, 49 files
SuccessfulBuild
8 / 8E2E smoke (Playwright)passed

07 / LIMITATIONS

Demo boundaries

  • —A demo implementation: no real company employees or tickets are processed.
  • —Scenarios involving the real production auth provider were verified manually, separately from the automated runs, not by the full CI matrix.
Next projectDocuMind

AI assistant

Open case ↗
DocuMind

NEXT STEP

Have a similar task?

Describe it in your own words — I'll reply with how I'd approach it.

Discuss a project
Copied