Todo App
Features & Capabilities
Todo App - Features & Capabilities Report
Template Version: 1.0.0 Generated: 2026-01-22 Package:
@epicdm/flowstate-app-todoApp ID:todo
Table of Contents
- Overview
- App Identity
- Feature Categories
- Capabilities
- Data Models
- User Workflows
- Integration Points
- Architecture Summary
- Quality & Compliance
Overview
Purpose
The Todo App is a lightweight personal task management application for FlowState. It provides focused todo tracking with priority levels, due dates, and completion status without the complexity of full project management.
Target Users
| User Type | Description | Primary Use Cases |
|---|---|---|
| Individual Contributors | Personal task tracking | Daily to-do lists, quick task capture |
| Personal Users | Non-work task management | Home tasks, personal reminders |
| Quick Entry Users | Minimal overhead needed | Rapid task capture without projects |
Value Proposition
- Simplicity: Focused interface without project/milestone overhead
- Speed: Quick task entry and completion
- Priority Management: Three-level priority classification
- Due Date Tracking: Calendar-based deadline management
- Offline Support: RxDB local-first architecture
App Identity
| Property | Value |
|---|---|
| ID | todo |
| Display Name | Tasks |
| Package Name | @epicdm/flowstate-app-todo |
| Version | 1.0.0 |
| Category | business |
| Icon | check-square |
| Color | #3B82F6 |
| Base Path | /todo |
| Permissions | database |
Entry Points
| Entry Point | Path | Description |
|---|---|---|
| Main Export | src/index.ts | Primary package export |
| Standalone | src/standalone.tsx | Standalone app entry |
| App Component | src/App.tsx | Main React component with routing |
| Plugin | src/plugin.ts | FlowState plugin registration |
Feature Categories
Category 1: Todo Management
Core todo CRUD operations
Feature: Todo CRUD Operations
| Property | Details |
|---|---|
| ID | todo-crud |
| Status | Scaffold Implemented |
| Priority | High |
Description: Create, view, edit, and delete personal todo items with title, description, priority, due date, and completion tracking.
User Story: As a user, I want to manage my todo list so that I can track and complete my personal tasks.
Acceptance Criteria:
- [x] Create todos with title and optional description
- [x] Set priority level (low, medium, high)
- [x] Set optional due date
- [x] Mark todos as complete/incomplete
- [ ] Edit existing todos (scaffold only)
- [ ] Delete todos (scaffold only)
- [ ] Filter by completion status (not implemented)
- [ ] Sort by priority/due date (not implemented)
Implementation:
| Component | Path | Purpose |
|---|---|---|
| TodoListPage | src/pages/TodoListPage.tsx | Todo listing |
| NewTodoPage | src/pages/NewTodoPage.tsx | Create new todo |
| TodoDetailPage | src/pages/TodoDetailPage.tsx | View/edit todo |
Routes:
/list- Todo list (default)/new- Create new todo/:id- Todo detail
Current Status: The app is in early development with scaffold pages implemented. Core functionality placeholders are in place awaiting full implementation.
Category 2: Navigation & Layout
App navigation and UI structure
Feature: Sidebar Navigation
| Property | Details |
|---|---|
| ID | sidebar-nav |
| Status | Implemented |
| Priority | High |
Description: Left sidebar navigation providing quick access to todo list and new todo creation.
User Story: As a user, I want clear navigation so that I can easily move between views.
Acceptance Criteria:
- [x] All Todos link
- [x] New Todo link
- [x] Active state highlighting
- [x] Uses shared FlowState framework sidebar
Implementation:
| Component | Path | Purpose |
|---|---|---|
| Sidebar | src/components/Sidebar.tsx | Navigation sidebar |
Feature: Header with Actions
| Property | Details |
|---|---|
| ID | header-actions |
| Status | Implemented |
| Priority | High |
Description: Top header bar with app title, New Todo action button, and user authentication display.
User Story: As a user, I want quick access to create todos and see my login status.
Acceptance Criteria:
- [x] App title display
- [x] New Todo action button
- [x] User email/phone display when authenticated
- [x] Mobile menu button support
Implementation:
| Component | Path | Purpose |
|---|---|---|
| Header | src/components/Header.tsx | App header |
Category 3: Authentication
User authentication integration
Feature: Auth-Aware Pages
| Property | Details |
|---|---|
| ID | auth-integration |
| Status | Implemented |
| Priority | High |
Description: All pages integrate with FlowState authentication to show appropriate content based on login status.
User Story: As a user, I want my todos to be private to my account.
Acceptance Criteria:
- [x] Check authentication status on page load
- [x] Show sign-in prompt when not authenticated
- [x] Display user info when authenticated
- [x] Redirect to auth with return URL
Implementation:
| Component | Path | Purpose |
|---|---|---|
| useInjectedAuth | @epicdm/flowstate-app-framework | Auth hook |
Capabilities
Core Capabilities
| Capability | Description | Implementation |
|---|---|---|
| Todo CRUD | Create, read, update, delete todos | RxDB collection with scaffold pages |
| Priority Levels | Low/medium/high classification | Enum in schema |
| Due Dates | Optional deadline tracking | ISO date string field |
| Completion Tracking | Mark done/undone | Boolean field with indexing |
| User Isolation | Per-user todo lists | userId field with indexing |
Technical Capabilities
| Capability | Status | Notes |
|---|---|---|
| CRUD Operations | Scaffold | Pages exist, functionality pending |
| Real-time Updates | Planned | RxDB reactive subscriptions |
| Offline Support | Yes | RxDB local-first architecture |
| Search & Filter | Not Implemented | To be added |
| Sorting | Not Implemented | To be added |
| Export | Not Implemented | Not planned |
Integration Capabilities
| Integration | Type | Description |
|---|---|---|
| FlowState Framework | internal | Auth, layout, navigation |
| RxDB | internal | Local data storage |
| RxDB React | internal | Reactive React bindings |
Data Models
Collections Used
| Collection | Description | Operations | Primary Hook |
|---|---|---|---|
todos | Todo item records | CRUD, Query | TBD |
TodoItem Schema
interface TodoItem {
id: string; // Primary key
userId: string; // Owner reference
title: string; // Todo title (required)
description?: string; // Optional description
completed: boolean; // Completion status
dueDate?: string; // Optional ISO date
priority: 'low' | 'medium' | 'high';
createdAt: string; // ISO datetime
updatedAt: string; // ISO datetime
}
Schema Indexes
| Index | Purpose |
|---|---|
userId | Filter by user |
completed | Filter by status |
dueDate | Sort by deadline |
priority | Sort by priority |
Entity Relationships
User (external)
|
+-- Todos (hasMany via userId)
|
+-- id (primary key)
+-- title
+-- description
+-- completed
+-- dueDate
+-- priority
+-- timestamps
Key Data Flows
User Action --> Component --> Hook --> RxDB Collection --> UI Update
|
+--> Replication --> Server (future)
User Workflows
Workflow 1: Todo Creation
Create a new todo item
Trigger: Click "New Todo" button or navigate to /new
Steps:
| Step | Action | Component | Outcome |
|---|---|---|---|
| 1 | Navigate to new todo | NewTodoPage | Form displayed |
| 2 | Enter title | Form input | Title captured |
| 3 | Set priority | Priority selector | Priority set |
| 4 | Set due date (optional) | Date picker | Due date set |
| 5 | Save todo | Submit action | Todo created |
| 6 | Navigate to list | Router | List view shown |
Success Outcome: New todo appears in list Failure Handling: Validation errors displayed
Workflow 2: Todo Completion
Mark a todo as complete
Trigger: Click todo or completion toggle
Steps:
| Step | Action | Component | Outcome |
|---|---|---|---|
| 1 | View todo list | TodoListPage | Todos displayed |
| 2 | Click todo | List item | Detail shown or toggled |
| 3 | Toggle completion | Checkbox/button | Status updated |
| 4 | Update persisted | RxDB | Change saved |
Success Outcome: Todo marked as complete Failure Handling: Rollback on error
Workflow 3: View Todo Details
View and edit a specific todo
Trigger: Click todo in list
Steps:
| Step | Action | Component | Outcome |
|---|---|---|---|
| 1 | Click todo | List item | Navigate to detail |
| 2 | View details | TodoDetailPage | Full info displayed |
| 3 | Edit fields | Form inputs | Changes captured |
| 4 | Save changes | Submit action | Updates persisted |
Success Outcome: Todo updated with new values Failure Handling: Validation errors shown
State Transitions
Todo Completion States
┌─────────────┐ ┌───────────┐
│ Incomplete │────────▶│ Complete │
└─────────────┘ └───────────┘
▲ │
│ │
└──────────────────────┘
| From State | To State | Trigger | Side Effects |
|---|---|---|---|
| Incomplete | Complete | Mark done | Update timestamp |
| Complete | Incomplete | Mark undone | Update timestamp |
Integration Points
Internal Integrations
| Integration | Package | Purpose |
|---|---|---|
| FlowState Framework | @epicdm/flowstate-app-framework | App container, auth, layout |
| RxDB | rxdb | Local database |
| RxDB React | @epicdm/flowstate-rxdb-react | Reactive subscriptions |
| Lucide React | lucide-react | Icons |
External Integrations
| Integration | Type | Configuration |
|---|---|---|
| React Router | Library | Client-side routing |
MCP Integration
| Tool | Purpose | Example Usage |
|---|---|---|
collection-query | Query todos | {"collection": "todos", "selector": {"completed": false}} |
collection-create | Create todo | {"collection": "todos", "data": {...}} |
collection-update | Update status | {"collection": "todos", "id": "...", "data": {"completed": true}} |
Architecture Summary
Directory Structure
src/
├── components/ # UI components
│ ├── Header.tsx # App header
│ └── Sidebar.tsx # Navigation sidebar
├── db/ # Database configuration
│ ├── collections.ts # RxDB collection setup
│ ├── schema.ts # Todo schema definition
│ └── types.ts # TypeScript interfaces
├── pages/ # Page components
│ ├── TodoListPage.tsx # List view
│ ├── NewTodoPage.tsx # Create view
│ └── TodoDetailPage.tsx # Detail view
├── router/ # Routing configuration
│ └── index.tsx # Route definitions
├── App.tsx # Main app component
├── plugin.ts # FlowState plugin config
├── index.ts # Package exports
└── standalone.tsx # Standalone entry
Key Architectural Patterns
| Pattern | Usage | Example |
|---|---|---|
| Plugin Architecture | FlowState micro-app | plugin.ts exports app config |
| State Management | RxDB local-first | Todo collection |
| Component Architecture | Page-based routing | Pages folder with routes |
| Routing | React Router v6 | Nested routes in App.tsx |
| Auth Integration | Injected auth context | useInjectedAuth hook |
Dependencies
| Dependency | Version | Purpose |
|---|---|---|
@epicdm/flowstate-app-framework | workspace:* | App framework |
@epicdm/flowstate-rxdb | workspace:* | Database utilities |
@epicdm/flowstate-rxdb-react | workspace:* | React bindings |
lucide-react | ^0.263.1 | Icons |
rxdb | 16.19.1 | Database |
rxjs | ^7.0.0 | Reactive extensions |
react-router-dom | ^6.0.0 | Routing |
Quality & Compliance
Test Coverage
| Test Type | Location | Coverage Target |
|---|---|---|
| Unit Tests | src/**/__tests__/ | >= 80% |
| Component Tests | src/components/__tests__/ | >= 80% |
| Page Tests | src/pages/__tests__/ | >= 80% |
Accessibility
| Requirement | Status | Notes |
|---|---|---|
| WCAG 2.1 AA | Planned | Scaffold components |
| Keyboard Navigation | Planned | To be implemented |
| Screen Reader Support | Planned | Aria labels needed |
Security Considerations
| Consideration | Implementation |
|---|---|
| User Isolation | userId field on all todos |
| Input Validation | Schema validation via RxDB |
| Auth Integration | FlowState auth injection |
Development Status
Current State
The Todo App is in early scaffold stage:
- Plugin and app structure complete
- Page scaffolds with auth integration
- Database schema defined
- Navigation and layout implemented
- Todo CRUD functionality: Placeholder pages only
Planned Features
| Feature | Priority | Status |
|---|---|---|
| Todo CRUD implementation | High | Not Started |
| List filtering | Medium | Not Started |
| Sorting options | Medium | Not Started |
| Search | Low | Not Started |
| Bulk operations | Low | Not Started |
Appendix
Related Documentation
| Document | Location | Purpose |
|---|---|---|
| FLOWSTATE.md | .flowstate/docs/FLOWSTATE.md | Development workflow |
| TDD.md | .flowstate/steering/TDD.md | Testing standards |
| QUALITY.md | .flowstate/steering/QUALITY.md | Code quality |
Version History
| Version | Date | Author | Changes |
|---|---|---|---|
| 1.0.0 | 2026-01-22 | Claude | Initial documentation |