Task Management System
Collaborative Task Tracking with Status Workflow and Audit Logging

PROJECT OVERVIEW
A full-stack task management application that enables teams to create, assign, track, and complete tasks with status workflows, priority levels, and complete audit history. The system supports role-based task creation, approval workflows, and real-time task reassignment across team members.
PROBLEM
Teams managing tasks across email, spreadsheets, and informal channels lack centralized tracking, accountability, and visibility into task lifecycles. This system provides a structured workflow with approval gates, role-based permissions, and immutable audit logs to ensure transparency and prevent task loss or duplication.
CORE FEATURES
- Task creation with auto-assignment and approval by creator
- Multi-status workflow: Pending → In Progress → Completed or Rejected
- Real-time task reassignment with audit trail and status reset
- Urgency levels (1-5) with color-coded visual indicators
- Filterable task list by assignee, creator, status, and urgency
- Infinite scroll pagination with lazy loading
- Complete task history with timestamped updates and user attribution
STATUS WORKFLOW
- Status 1 (Pending): Task awaiting acceptance or assignment
- Status 2 (Approved): Creator auto-approves on creation; only approvable once
- Status 3 (In Progress): Task actively being worked on
- Status 5 (Completed): Task finished; locked from further status changes
- Status 6 (Rejected): Task cancelled; tracks who rejected and when
- Each status change is logged with actor name, timestamp, and reason
TASK PROPERTIES & UPDATES
- Name, description, notes editable with debounced save (500ms)
- Due date picker with local timezone conversion
- Urgency selector (1-5) with dynamic color coding
- Assignment tracking: assigned_to, assigned_by, assigned_date
- Approval tracking: approved_by, approved_date (single approval max)
- Rejection tracking: rejected_by, rejected_date
- Completion tracking: completed_by, completed_date
ACCESS CONTROL & FILTERING
- Users see only their assigned tasks by default
- Filtering by assignee, requester, creator, status, urgency
- Task creators can reassign tasks to other team members
- Status changes scoped to role (managers approve, assignees complete)
- Reassignment resets status to Pending and clears assignment history
DATA PERSISTENCE & AUDIT
- MySQL-backed task storage with relational task_updates table
- Atomic updates with prepared statements to prevent SQL injection
- Immutable task_updates log capturing property changes, actor, timestamp
- Soft audit trails: no hard deletes; all changes reversible via UI
- Date conversion from ISO to local timezone on frontend
TECHNICAL ARCHITECTURE
Angular, TypeScript, ngModel binding
Node.js, Express, REST APIs
MySQL (task, task_updates, task_statuses, task_urgencies)
JWT tokens (Bearer header or cookie), role-based filtering
Multi-statement SQL with LEFT JOINs for account denormalization
Node.js backend with MySQL database