✅ 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

Guest - Read-only access, cannot modify anything
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 chars
  • description - text, optional
  • priority - string (low, medium, high, critical)
  • status - string (backlog, todo, in_progress, review, done, blocked)
  • task_type - string (bug, story, task, epic)
  • estimate_hours - decimal, optional
  • due_date - date, optional
  • is_draft - boolean, default false

Time Log Fields

  • task_id - UUID, required
  • duration_minutes - integer, required
  • notes - text, optional
  • started_at - timestamp
  • ended_at - timestamp

Attachment Fields

  • task_id - UUID, required
  • filename - string, required
  • mime_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