Case Study

Ticketing System

Full Stack Developer · Doer Services PLC

  • Express.js
  • Hapi.js
  • Node.js
  • Angular
  • REST API
  • TOR & SRS Documentation

Overview

A centralized enterprise customer support and issue tracking platform built to streamline internal and customer-facing incident management. The platform features automated ticket triage, priority-based SLA escalation timers, role-based departmental routing, canned responses, activity audit logs, and performance analytics to ensure prompt resolution of support requests.

Problem

Support requests arrived wherever the customer happened to send them, so nothing had a clear owner and no one could say which issues were overdue. Without that, the only escalation route is whoever complains loudest.

My role

Full stack developer — conducted requirements analysis (SRS), designed standardized JSON REST APIs, and implemented core ticketing workflows.

Architecture

Node.js services with Express.js and Hapi.js frameworks, normalized RESTful JSON APIs, MySQL/MongoDB persistence, and an Angular user interface.

Ticketing triage, routing and escalation flow An Angular interface calls normalised JSON REST APIs served by Node.js with Express and Hapi. Incoming requests are triaged and routed to a department, an SLA timer tracks each ticket as it is reassigned or put on hold, and tickets and their activity logs are stored in MySQL and MongoDB. Angular Interface Node.js · Express & Hapi Triage & Routing by department SLA Timers escalation Canned Replies and analytics MySQL tickets MongoDB activity log starts audits
Solid lines carry a request and wait for a reply. Dashed lines hand work off and do not.

Key challenge

An SLA timer is a harder thing than it looks: it has to pause and resume as a ticket is reassigned, reopened or waiting on the customer, or it reports breaches that did not happen and the whole measure stops being trusted. Routing rules have to stay predictable as departments change, and several clients consume the same tickets — which is why the JSON API shape was normalised deliberately rather than grown per endpoint.

Result

Tickets are triaged and routed by department with priority-based escalation, canned responses for the repetitive cases, and an activity log that shows what happened to a request and when.