IF1EIGHT0STY
srctrack_core.trace

/**
* TrackING — project tracker, dialog & tables core
* @author Roshan Aryan Majhi · ticket-dialog owner
*/

Every ticket.
Tracked, not lost.

TrackING runs projects as workspaces → projects → tickets, with boards, tables, checklists, comments and color-coded groups throughout. I own the ticket-details dialog and the tables program — 266 commits on a ten-person team.

// design_system

System first, screens second.

design_system.fig

color/tokens

primary

#774EA7

paper

#F8F8F8

t-blue

#0A66B2

t-green

#2F9E44

t-orange

#E8890C

ink

#404040

type/scale

Aa

Rubik / Lato

Heading 20

Body 14 · tracker-calm

mono 11 · keys & dates

radius/0.5rem

sm
md
lg
full

cards md · chips 4px

components/ui

SaveCancelDoing
Filter tickets…/
Tokens → components, no hard-coded hex
pages.stat
10
routed pages
routed pages
modules.stat
421
source files
source modules
ticket.json
{
  "key": "TRK-102",
  "status": "doing",
  "checklist": "5/8",
  "assignee": "roshan"
}
One ticket
tickets.demo
To Do2
TRK-104RM
Pagination on all tables
0/6
TRK-105UG
Sidebar logo states
1/2
Doing2
TRK-102RM
Ticket dialog rework
5/8
TRK-103KT
Group colors from table
2/4
Done2
TRK-101RM
Login error toast copy
3/3
TRK-106RM
Status column alignment
4/4
Boards for feel, tables for truth
ticket.dialog
TRK-102Doing3/5

Ticket dialog rework

The dialog I reworked — try the boxes
filters.bar
rework…
alldoingmine
RMKTUGassignee
Filtered everywhere
groups.color
FrontendFR
DesignDE
QAQA
DevOpsDE
Colors are data
auth.toast

Invalid credentials

400 · verbatim from api

token refreshed silentlyjwt

login · forgot · reset flows

Server said it best
commits.log
266 commits · dialog & tables
package.json
react18.3.1
react-router-dom7.1.2
zustand5.0.3
axios1.7.9
react-hook-form7.54.2
zod3.24.1

+54 more in package.json

The stack

// why_it_exists

Chat threads forget. Tickets don't.

Work lived in chat threads and memory — statuses guessed, checklists mental, and every standup reconstructed the week from vibes.

TrackING gives work a paper trail. Workspaces, projects, tickets — each with proof: checklists with progress, comments with history, groups with colors, and tables that filter down to the exact truth.

// feature_modules

What ships inside.

tickets_engine

Tickets with keys, assignees, due dates, tags and priorities flowing through workspace → project → board → table, with add-ticket sheets and delete confirmations.

keysboard + table

ticket_dialog

The reworked detail dialog: click-to-edit title, live checklist progress, word counts, comments that never overflow, and notify + save pinned where thumbs expect them.

dialog UXchecklists

boards_tables

Every list ships board and table views with pagination on all tables, row-hover states, SN alignment and expanding rows that never jump.

paginationstable rows

filters_search

Search, status, assignee and tag filters on every page — including a member-safe fallback when the assignee endpoint forbids listing users.

per-page filterssafe fallbacks

groups_tags

User groups and tags carry their own colors — editable from the table, with defaults, chips and readable short names everywhere they render.

color as datachips

comments_activity

Justified threads with show-more logs, blank-page guards and no nested-button errors — activity you can actually follow.

threadslogs

members_assignees

Workspace members, roles and admin-only gates, with avatars, assignment pickers and forbidden-safe fetching.

rbacavatars

auth_errors

Login, forgot and reset password flows that surface the backend's own error messages in toasts — plus a token-refresh loop fix.

toastsjwt refresh

// engineering_decisions

Worth noting.

  • +Dialog over page ticket detail opens as a dialog so triage never loses the board behind it.
  • +Colors are data groups and tags store colors server-side — the table edits what every chip renders.
  • +Filters on every page search, status and assignee filters are a rule, not a feature — pagination included.
  • +Backend errors verbatim auth toasts quote the server message instead of inventing friendlier lies.
  • +Prefetch, then prove ticket dialog data prefetches on hover intent, with cache guards against stale panes.

// my_role

What I built.

Ticket-dialog owner and tables-program driver — reworks, filters, pagination and colors across every surface.

266
commits
421
source files
~10
person team

$ticket_dialog_rework

  • Full dialog redesign: white canvas, inline title editing, live checklists
  • Comment threads fixed: overflow, alignment, show-more blank pages
  • Prefetch + cache guards ending stale dialog data
  • Editor cleanup: stray buttons removed, word count relocated

$tables_everywhere

  • Pagination rolled out to every table in the app
  • Task-list limits and filter-dropdown refactors
  • Row-hover states, SN alignment, expanding-height fixes
  • Add-ticket error states that close cleanly

$colors_identity

  • Default colors for user groups and tags
  • Color editing straight from the table
  • Sidebar logo states and confirmation modal polish

$auth_errors

  • Backend error messages surfaced in login / forgot / reset toasts
  • Token-refresh loop fixed with loading-state guards

// in_one_line

Tracking without the spreadsheet — every ticket, checklist and comment one dialog away.
React 18TypeScriptReact RouterRHF + ZodZustandAxiosTailwind 4Vite 6ESLintDocker