Projects

Personal Operating System

Back to Projects
Beta

Support System

DevDesk API

DevDesk API provides the backend primitives for a support-ticket product: inquiry creation, triage, assignment, and status reporting.

Status

Beta

Stack

Node.js, Express, MongoDB

Throughput / Users

120+

Performance

92/100

System Architecture & Problem Statement

Core Problem Solved: Teams need a predictable way to convert inbound messages into trackable work without losing context.

Architecture Layers:

1Express API with route-level validation and controller separation.
2MongoDB models for tickets, users, notes, and assignment events.
3JWT middleware for authenticated staff operations.
4Postman collection for repeatable API testing.

Key Product Features

Ticket creation with priority and category
Staff assignment workflow
Threaded notes and status history
Filtered queues by project type and urgency

Database Entity Schema & Relationships

Tickets

Collection/Table
subjectattr
priorityattr
statusattr
projectTypeattr

Contains many notes

Notes

Collection/Table
ticketIdattr
authorIdattr
bodyattr
createdAtattr

Belongs to tickets

Agents

Collection/Table
nameattr
emailattr
roleattr
availabilityattr

Assigned to tickets

API Specifications & Endpoints

POST/api/tickets

Create a new inquiry ticket.

GET/api/tickets?status=open

Fetch a filtered support queue.

PUT/api/tickets/:id/assign

Assign an agent and append an audit event.

Interactive Visual Screenshots & Previews

Ticket Queue Console
LIVE SIMULATION
REST API EXPLORERSTATUS 200 OK

POST /api/v1/resource/dispatch

{
  "status": "success",
  "executionTime": "14ms",
  "payload": { "assignedAgent": "Nurul-Bot-01" }
}

Operational queue organized by priority, type, and owner.

API Endpoint Explorer
LIVE SIMULATION
REST API EXPLORERSTATUS 200 OK

POST /api/v1/resource/dispatch

{
  "status": "success",
  "executionTime": "14ms",
  "payload": { "assignedAgent": "Nurul-Bot-01" }
}

Endpoint explorer with request and response examples.

🚀 Quick Start & Process to Run

STEP-BY-STEP REPRODUCIBLE SETUP

Prerequisites

  • Node.js 18+
  • MongoDB

Required Environment Variables (.env)

PORT=5000

MONGO_URI=mongodb://localhost:27017/devdesk

JWT_SECRET=devdesksecret

Execution Steps:

1

1. Clone Repository

Download API project codebase.

$ git clone https://github.com/Dev-Nurul08/devdesk-api.git && cd devdesk-api
2

2. Install Packages

Install Express, Mongoose, JsonWebToken, and Cors.

$ npm install
3

3. Start API Server

Start Node.js server on http://localhost:5000.

$ npm start

Engineering Challenges & Solutions

Challenge #1: Keeping ticket state consistent across notes, assignment, and status updates.
Challenge #2: Making error responses useful for frontend integration.

Key Lessons & Principles

Takeaway #1: API contracts become product UX when other developers depend on them.
Takeaway #2: Validation belongs close to the route boundary.