Files
nick-tracker/docs/features.md
2026-01-11 07:51:30 +00:00

9.7 KiB

Features

1. GTD Inbox Capture

ID: gtd_inbox_capture

Multi-source task capture system that ingests tasks from manual web form, REST API, email (IMAP/Microsoft Graph), and ConnectWise Manage sync into an unprocessed inbox for later GTD clarification

User Story

As a user, I want to capture tasks from multiple sources into a single inbox, so that I can process them later using GTD methodology without losing any input

Acceptance Criteria

  • Manual tasks can be submitted via web form quick-add and appear in inbox
  • REST API endpoint accepts task capture from external tools and creates inbox items
  • IMAP or Microsoft Graph email monitor converts incoming emails to inbox items
  • ConnectWise Manage sync creates inbox items for new service/project tickets and zero-ticket projects
  • All inbox items retain source metadata (timestamp, origin, attachments) until processed

2. GTD Processing Workflow

ID: gtd_processing_workflow

Interactive inbox processing interface that guides users through GTD clarification: converting raw inbox items into Next Actions with context tags, Projects, Waiting For items, Someday/Maybe, Reference Material, Tickler items, or Trash

User Story

As a user, I want to process inbox items using GTD decision tree, so that each item becomes actionable or is appropriately filed

Acceptance Criteria

  • Inbox view displays unprocessed items with processing workflow controls
  • User can clarify items into: Next Action (@context), Project, Waiting For, Someday/Maybe, Reference, Tickler, or Trash
  • Next Actions require context label assignment (@desk, @phone, @errand, @homelab, @anywhere)
  • Waiting For items accept optional follow-up date
  • Tickler items accept future date and automatically surface to inbox on that date
  • Processed items disappear from inbox and appear in appropriate GTD list

3. ConnectWise Manage Integration

ID: connectwise_integration

Read-only sync from ConnectWise Manage that imports service tickets, project tickets, and projects assigned to user. Projects with zero tickets surface as planning tasks. ConnectWise priority/SLA displayed for reference only; user assigns manual priority

User Story

As a ConnectWise user, I want my assigned tickets and projects to flow into my GTD system automatically, so that I can manage work context alongside personal tasks

Acceptance Criteria

  • ConnectWise API integration syncs assigned service tickets as inbox items
  • ConnectWise project tickets sync as inbox items with project association
  • ConnectWise projects with zero tickets create planning task inbox items
  • ConnectWise priority and SLA data displayed on task for reference but does not affect scheduling
  • User can manually assign priority to all ConnectWise-sourced tasks
  • Sync runs on configurable schedule and detects ticket status changes

4. Intelligent Calendar Scheduling

ID: intelligent_calendar_scheduling

Automatic scheduling engine that pulls from CalDAV calendars (Nextcloud, Google Calendar, Outlook via Microsoft Graph) and places actionable tasks into available time slots, respecting working hours, context constraints, deadlines, and manual priority. Supports drag-drop manual override and task locking

User Story

As a user, I want the system to automatically schedule my next actions into my calendar based on context and availability, so that I have a realistic daily plan without manual time blocking

Acceptance Criteria

  • Engine reads existing events from CalDAV/Google/Outlook calendars
  • Tasks scheduled only during user-defined working hours per day-of-week
  • Work-context tasks (@desk, @phone) constrained to work hours; personal tasks schedulable anytime
  • Scheduling batches tasks by context (consecutive @phone calls, grouped deep work)
  • Manual priority rankings respected; deadlines enforced
  • When calendar conflicts arise from new meetings, displaced tasks automatically reschedule
  • Users can drag-drop tasks to override placement and lock tasks to fixed slots
  • Weekly Review block auto-scheduled at recurring time

5. Interactive Calendar Week View

ID: calendar_week_view

React SPA with interactive week-view calendar displaying scheduled tasks and calendar events. Supports drag-and-drop task rescheduling, manual time adjustments, and real-time updates when scheduling changes occur

User Story

As a user, I want a visual week view of my scheduled tasks and events with drag-and-drop editing, so that I can see and adjust my plan at a glance

Acceptance Criteria

  • Week view renders all scheduled tasks and synced calendar events
  • Tasks draggable to different time slots and days
  • Drag-drop updates trigger rescheduling of dependent tasks
  • Tasks visually color-coded by context (@desk, @phone, etc.)
  • Locked tasks display lock indicator and resist auto-rescheduling
  • Real-time updates via WebSocket when scheduler makes changes
  • Click-to-edit task details and priority in modal

6. Weekly Review Interface

ID: weekly_review_interface

Dedicated GTD Weekly Review interface with auto-scheduled recurring review block. Shows all active projects, next actions per project, unprocessed inbox count, waiting-for items, and someday/maybe list for systematic review

User Story

As a GTD practitioner, I want a comprehensive weekly review interface, so that I can maintain clarity on all commitments and keep my system current

Acceptance Criteria

  • Weekly Review block auto-scheduled at user-configured recurring time
  • Review interface displays all active projects with status
  • Next actions grouped by project with completion status
  • Unprocessed inbox item count prominently displayed
  • Waiting For items listed with follow-up dates
  • Someday/Maybe list accessible for potential activation
  • Review completion checkbox updates last-review timestamp

7. GTD Contexts and Life Domains

ID: gtd_contexts_and_domains

Context label system (@desk, @phone, @errand, @homelab, @anywhere) and domain organization covering Work (ConnectWise tasks), Homelab (Proxmox, networking, 3D printing, NAS), Daily Routines (meals, exercise, supplements), House (maintenance, errands, cleaning), and Professional Development (Azure certification)

User Story

As a user, I want to organize tasks by context and life domain, so that I can work efficiently based on my current situation and maintain balance across life areas

Acceptance Criteria

  • Tasks taggable with context labels (@desk, @phone, @errand, @homelab, @anywhere)
  • Tasks assignable to domains: Work, Homelab, Daily Routines, House, Professional Development
  • Filtering views by context show only relevant tasks
  • Scheduling engine respects context constraints (work contexts during work hours)
  • Domain views aggregate tasks and projects per life area
  • Context-based batching groups similar tasks in schedule

8. Waiting For and Tickler System

ID: waiting_for_and_tickler

Waiting For list tracks items delegated or awaiting external input with optional follow-up dates. Tickler/Deferred items stored with future activation dates and automatically surface to inbox on specified date

User Story

As a user, I want to track delegated tasks and future reminders, so that I follow up appropriately and activate tasks at the right time

Acceptance Criteria

  • Waiting For list displays all items awaiting external action
  • Waiting For items accept optional follow-up date
  • Items with follow-up dates highlighted when date arrives
  • Tickler items stored with future date and hidden until activation
  • Scheduled job checks daily for Tickler items reaching activation date
  • Activated Tickler items automatically appear in inbox for processing

9. GTD Project Management

ID: project_management

Project hierarchy supporting multi-step outcomes with next actions, reference material attachments, notes, and project status tracking. ConnectWise projects with zero tickets surface as planning tasks requiring work breakdown

User Story

As a user, I want to manage projects with next actions and reference materials, so that I maintain forward motion on multi-step goals

Acceptance Criteria

  • Projects created with name, description, desired outcome, and domain
  • Each project can have multiple next actions with completion tracking
  • Reference material (files, links, notes) attachable to projects
  • Project status tracked (active, on-hold, completed)
  • Projects without next actions flagged in Weekly Review
  • ConnectWise projects with zero tickets create planning task to define work breakdown
  • Project completion requires all next actions completed

10. Notifications and Rescheduling Alerts

ID: notifications_and_rescheduling

Real-time notification system via WebSocket, email, and optional webhook when automatic rescheduling occurs due to calendar conflicts, when Waiting For follow-ups are due, or when Tickler items activate

User Story

As a user, I want to be notified when my schedule changes automatically, so that I stay aware of my updated commitments

Acceptance Criteria

  • WebSocket push notifications to active browser sessions when tasks reschedule
  • Email notifications sent for rescheduling events if user preferences allow
  • Webhook endpoint configurable for external notification integrations
  • Notification includes displaced task, original time, new time, and reason
  • Waiting For follow-up notifications sent when follow-up date arrives
  • Tickler activation notifications sent when item surfaces to inbox
  • Notification preferences configurable per notification type