MongoDB

Designing a Ticketing System like Jira

Build a project management and issue tracking system — covering hierarchical tickets, workflows, assignments, search, and notification patterns.

S

srikanthtelkalapally888@gmail.com

Designing a Ticketing System

A ticketing system tracks work items (bugs, features, tasks) through defined workflows.

Data Model

projects(id, name, key, owner_id, settings)

issues(
  id, project_id, type,        -- Bug, Story, Task, Epic
  title, description,
  status,                       -- Todo, In Progress, Done
  priority,                     -- Critical, High, Medium, Low
  assignee_id, reporter_id,
  parent_id,                    -- Epic → Story → Subtask
  sprint_id, created_at
)

comments(id, issue_id, author_id, body, created_at)
attachments(id, issue_id, file_url, size)
workflow_transitions(from_status, to_status, role_required)

Issue Hierarchy

Epic
  └── Story
       ├── Subtask 1
       └── Subtask 2
Bug
Task

Workflow Engine

State machine governs allowed transitions:

Todo → In Progress (any assignee)
In Progress → In Review (assignee)
In Review → Done (reviewer)
In Review → In Progress (reviewer, if changes needed)
Done → Reopened (any)

Search

Jira Query Language (JQL) style search:

project = BACKEND AND
assignee = currentUser() AND
status != Done AND
priority IN (High, Critical)
ORDER BY created DESC

Implement with Elasticsearch for full-text + filters.

Notifications

Trigger events:

  • Issue assigned to you
  • Comment on your issue
  • Issue status changed
  • Mentioned in comment (@username)

Fan-out via Kafka to notification service.

Sprint Board

Active Sprint:
Todo | In Progress | In Review | Done
[T1] |    [T3]     |   [T5]    | [T2]
[T4] |             |           | [T6]

Burndown chart: Story points remaining vs time.

Permissions

Org Admin   → All projects
Project Admin → Project settings
Member      → Create/edit issues
Viewer      → Read only

Conclusion

Ticketing systems are fundamentally workflow engines on top of flexible data models, with search, notifications, and reporting as core services.

Share this article