✅ TaskTracker App
Project management system for testing role-based access control (RBAC), time tracking, attachments, and notifications
Overview
The TaskTracker App simulates a real task management platform with roles, permissions, time tracking, and file attachments. Perfect for testing complex permission systems and workflow automation.
What You Can Test
- Tasks: Create, update, track tasks with priority and status
- RBAC: Test 6 different role permissions (Guest to Admin)
- Time Tracking: Start/stop timers, manual time logs
- Attachments: Upload files (base64 or URL, 5MB limit)
- Labels & Environments: Custom tagging system
- Notifications: In-app alerts for task updates
Role-Based Access Control
TaskTracker includes 6 roles with different permission levels:
Available Roles
User - Can create and edit own tasks
QA - Create tasks, reports, validate bugs
Developer - Full task lifecycle management
Project Manager - Advanced controls, can delete tasks
Admin - Full permissions, system management
Requirements & Fields
Task Fields
title- string, required, max 200 charsdescription- text, optionalpriority- string (low, medium, high, critical)status- string (backlog, todo, in_progress, review, done, blocked)task_type- string (bug, story, task, epic)estimate_hours- decimal, optionaldue_date- date, optionalis_draft- boolean, default false
Time Log Fields
task_id- UUID, requiredduration_minutes- integer, requirednotes- text, optionalstarted_at- timestampended_at- timestamp
Attachment Fields
task_id- UUID, requiredfilename- string, requiredmime_type- string (image/png, application/pdf, etc.)file_size- integer, max 5MB (5242880 bytes)url- string, or base64 data
Test Case Examples
TC-001: Create Task as Different Roles
Objective: Verify task creation varies by role
Steps:
- Switch to Guest role, attempt to create task
- Verify response status 403 (forbidden)
- Switch to User role, create task
- Verify response status 201 (success)
Expected: Guest cannot create, User can
TC-002: RBAC - Delete Task Permission
Objective: Verify only PM/Admin can delete tasks
Steps:
- Create task as User
- Switch to Developer role, attempt delete
- Verify response status 403
- Switch to Project Manager role, delete task
- Verify response status 200 (success)
Expected: Only PM/Admin can delete
TC-003: Task Status Transitions
Objective: Verify task can move through workflow
Steps:
- Create task with status = todo
- Update to status = in_progress
- Update to status = review
- Update to status = done
- Verify each transition succeeds
Expected: All valid status transitions work
TC-004: Time Tracking Accuracy
Objective: Verify timer tracks time correctly
Steps:
- Create task
- Start timer, note start time
- Wait 5 minutes
- Stop timer, note end time
- Verify duration_minutes = 5 (±1 minute tolerance)
Expected: Time logged accurately
TC-005: Attachment Upload Size Limit
Objective: Verify 5MB file size limit enforced
Steps:
- Attempt to upload 6MB file
- Verify response status 400
- Verify error message indicates file too large
- Upload 4MB file (valid)
- Verify response status 201
Expected: Files over 5MB rejected
TC-006: Filter Tasks by Multiple Labels
Objective: Verify multi-label filtering works
Steps:
- Create labels: "bug", "urgent", "qa"
- Create Task A with labels: bug, urgent
- Create Task B with labels: bug, qa
- Filter by labels: bug, urgent
- Verify only Task A appears
Expected: Filter returns tasks matching all labels
TC-007: Notification on Task Update
Objective: Verify notifications created on updates
Steps:
- Create task
- Get notification count (should be 1 - task created)
- Update task status
- Get notification count (should be 2)
- Verify second notification shows update details
Expected: Notifications generated for task changes
TC-008: Draft Mode Workflow
Objective: Verify draft tasks work as expected
Steps:
- Create task with is_draft = true
- Get all tasks (default filter)
- Verify draft task doesn't appear in list
- Get tasks with include_drafts = true
- Verify draft task appears
- Update is_draft = false (publish)
- Verify task now appears in default list
Expected: Drafts hidden until published