GLOTECH
HOMEPROJECTSRESUME
ENFR
BACK_TO_PROJECTS
TASK_TRACKER

PROJECTLIST

A deliberately minimal Jira: projects, a three-column board, and nothing you did not ask for

PROJECTLIST
PROJECT_PREVIEW

OVERVIEW

ProjectList is a task tracker built against a strict constraint - stay small. Tasks move across To Do, In Progress and Done on a kanban board, by drag-and-drop or by arrow buttons, because HTML5 drag events are unreliable on touch screens and a board you cannot use on a phone is not finished. Each task carries at most one flag - minor, important or blocked - rendered as the card's left edge so a board reads at a glance. Finished work is archived off the board in one click and kept on a separate history page with filters, search and restore. Two design choices are deliberate departures from the sibling project: tasks are keyed by MongoDB's native ObjectId rather than a hand-rolled counter, avoiding a read-then-write race on insert, and updates are PATCH with explicit undefined checks rather than a document replace, because replacing a document against a non-nullable boolean is how a silent data-loss bug gets written.

TECH_STACK

Angular 19TypeScript 5.7Express 5Mongoose 8MongoDB AtlasNode.js 20PM2NginxLet's Encrypt

KEY_FEATURES

[01]
Three-column kanban board with drag-and-drop plus arrow-button fallback that stays usable on touch screens
[02]
Per-task flags (minor, important, blocked) shown as a coloured card edge and badge
[03]
Projects as first-class records, so an empty project can exist before it has any tasks
[04]
One-click bulk archive of the Done column, keeping finished work out of the way but not deleted
[05]
Separate history page covering every task ever created, with filters, search, restore and permanent delete
[06]
Board state held in URL query parameters, so a filtered view is shareable and survives a refresh
[07]
Optimistic updates that revert and surface an inline error when a request fails
[08]
Two-step confirmation before any destructive action, showing how many tasks a project delete would take
[09]
Schema migration script converting the original boolean field to a three-state status, idempotent and with a dry-run mode
[10]
25 unit tests covering status transitions, optimistic reverts, flags, drag-drop and the archive flow

PERFORMANCE_METRICS

25 passing
Unit Tests
projects + tasks
Collections
loopback only
Binding