State App
Features & Capabilities
State App - Features & Capabilities Report
Template Version: 1.0.0 Generated: 2026-01-22 Package:
@epicdm/flowstate-app-stateApp ID:state
Table of Contents
Overview
Purpose
The State App is a product lifecycle state management application that provides wizard-driven data collection and dashboard visualization for eight key areas of product development. It enables teams to systematically capture and track business planning, product information, goals, design, development, deployment, support, and marketing configurations.
Target Users
| User Type | Description | Primary Use Cases |
|---|---|---|
| Product Managers | Define product strategy | Product info, goals, roadmap |
| Business Analysts | Capture business context | Business planning, mission, values |
| Development Leads | Configure dev setup | Codebases, team, time tracking |
| DevOps Engineers | Manage infrastructure | Environments, pipelines, monitoring |
| Support Teams | Configure support ops | Channels, SLAs, issue categories |
| Marketing Teams | Plan marketing strategy | Channels, conversion goals, analytics |
Value Proposition
- Comprehensive Coverage: Eight sections covering the full product lifecycle
- Guided Data Collection: Wizard-driven setup with JSON Schema validation
- Progress Visibility: Track completion across all lifecycle phases
- Dashboard Insights: Visual summaries with metrics and charts
- Persistent Storage: Data saved to localStorage for session continuity
App Identity
| Property | Value |
|---|---|
| ID | state |
| Display Name | State Management |
| Package Name | @epicdm/flowstate-app-state |
| Version | 1.0.0 |
| Category | business |
| Icon | LayoutDashboard |
| Color | #6366F1 |
| Base Path | /state |
| Permissions | None (localStorage only) |
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: Global Dashboard
Central overview of product lifecycle status
Feature: Product Lifecycle Dashboard
| Property | Details |
|---|---|
| ID | global-dashboard |
| Status | Implemented |
| Priority | High |
Description: Central dashboard providing an overview of all eight lifecycle sections with progress tracking, completion metrics, and quick navigation to incomplete sections.
User Story: As a product manager, I want to see the overall status of my product lifecycle so that I can track progress and identify incomplete areas.
Acceptance Criteria:
- [x] Display overall completion percentage
- [x] Show completed vs remaining sections count
- [x] Display summary cards for each section with key metrics
- [x] Provide "Continue Setup" navigation to next incomplete section
- [x] Visual progress bar for overall completion
Implementation:
| Component | Path | Purpose |
|---|---|---|
| GlobalDashboard | src/pages/global-dashboard/GlobalDashboard.tsx | Main dashboard page |
| SectionSummaryCard | src/pages/global-dashboard/SectionSummaryCard.tsx | Section status cards |
Routes:
/dashboard- Global dashboard (default route)
Category 2: Business Planning
Company foundation and strategy
Feature: Business Planning Wizard
| Property | Details |
|---|---|
| ID | business-planning-setup |
| Status | Implemented |
| Priority | High |
Description: Multi-step wizard for capturing business planning information including company info, business type, and core values/mission.
User Story: As a business analyst, I want to capture company information so that I can establish the business foundation for product planning.
Acceptance Criteria:
- [x] Step 1: Company Info (name, founded year, size, industry)
- [x] Step 2: Business Type (B2B, B2C, B2B2C, Marketplace)
- [x] Step 3: Core Values & Mission Statement
- [x] Progress indicator showing current step
- [x] Data persistence across steps
Implementation:
| Component | Path | Purpose |
|---|---|---|
| BusinessPlanningSetup | src/pages/business-planning/Setup.tsx | Setup page |
| BusinessPlanningDashboard | src/pages/business-planning/Dashboard.tsx | Dashboard page |
| businessPlanningSchema | src/schemas/business-planning.schema.ts | Wizard schema |
Routes:
/business-planning/setup- Wizard setup/business-planning/dashboard- Dashboard view
Category 3: Product Information
Product details and requirements
Feature: Product Info Wizard
| Property | Details |
|---|---|
| ID | product-info-setup |
| Status | Implemented |
| Priority | High |
Description: Wizard for capturing product details including name, description, requirements, and tech stack.
User Story: As a product manager, I want to define product information so that the team understands what we're building.
Acceptance Criteria:
- [x] Capture product name and description
- [x] Define requirements list with completion tracking
- [x] Specify technology stack
- [x] View requirements completion metrics
Implementation:
| Component | Path | Purpose |
|---|---|---|
| ProductInfoSetup | src/pages/product-info/Setup.tsx | Setup page |
| ProductInfoDashboard | src/pages/product-info/Dashboard.tsx | Dashboard page |
| productInfoSchema | src/schemas/product-info.schema.ts | Wizard schema |
Routes:
/product-info/setup- Wizard setup/product-info/dashboard- Dashboard view
Category 4: Goals & Objectives
Targets and key metrics
Feature: Product Goals Wizard
| Property | Details |
|---|---|
| ID | product-goals-setup |
| Status | Implemented |
| Priority | High |
Description: Wizard for defining product goals, sales targets (monthly/quarterly/annual), and custom metrics with targets.
User Story: As a product manager, I want to set goals and metrics so that I can measure product success.
Acceptance Criteria:
- [x] Define multiple goals with targets and current values
- [x] Set sales targets at different time intervals
- [x] Define custom metrics with units and targets
- [x] View goal progress on dashboard
Implementation:
| Component | Path | Purpose |
|---|---|---|
| ProductGoalsSetup | src/pages/product-goals/Setup.tsx | Setup page |
| ProductGoalsDashboard | src/pages/product-goals/Dashboard.tsx | Dashboard page |
| productGoalsSchema | src/schemas/product-goals.schema.ts | Wizard schema |
Routes:
/product-goals/setup- Wizard setup/product-goals/dashboard- Dashboard view
Category 5: Design & Roadmap
Features and milestones
Feature: Product Design Wizard
| Property | Details |
|---|---|
| ID | product-design-setup |
| Status | Implemented |
| Priority | High |
Description: Wizard for defining product features (with priority and status) and milestones (with due dates).
User Story: As a product manager, I want to define features and milestones so that I can plan the product roadmap.
Acceptance Criteria:
- [x] Define features with name, priority, and status
- [x] Create milestones with names and due dates
- [x] Track feature completion status
- [x] View milestone timeline on dashboard
Implementation:
| Component | Path | Purpose |
|---|---|---|
| ProductDesignSetup | src/pages/product-design/Setup.tsx | Setup page |
| ProductDesignDashboard | src/pages/product-design/Dashboard.tsx | Dashboard page |
| productDesignSchema | src/schemas/product-design.schema.ts | Wizard schema |
Routes:
/product-design/setup- Wizard setup/product-design/dashboard- Dashboard view
Category 6: Development
Codebases and team configuration
Feature: Product Development Wizard
| Property | Details |
|---|---|
| ID | product-development-setup |
| Status | Implemented |
| Priority | High |
Description: Wizard for configuring codebases (with repository URLs), team members (with roles), and time tracking settings.
User Story: As a development lead, I want to configure the development setup so that the team can organize their work.
Acceptance Criteria:
- [x] Define codebases with names and repository URLs
- [x] Add team members with roles
- [x] Configure time tracking (enabled, track by codebase/task/both)
- [x] View team and codebase metrics on dashboard
Implementation:
| Component | Path | Purpose |
|---|---|---|
| ProductDevelopmentSetup | src/pages/product-development/Setup.tsx | Setup page |
| ProductDevelopmentDashboard | src/pages/product-development/Dashboard.tsx | Dashboard page |
| productDevelopmentSchema | src/schemas/product-development.schema.ts | Wizard schema |
Routes:
/product-development/setup- Wizard setup/product-development/dashboard- Dashboard view
Category 7: Deployment
Environments and pipelines
Feature: Product Deployment Wizard
| Property | Details |
|---|---|
| ID | product-deployment-setup |
| Status | Implemented |
| Priority | High |
Description: Wizard for configuring deployment environments (with URLs), CI/CD pipelines, and monitoring tools.
User Story: As a DevOps engineer, I want to configure deployment settings so that I can manage infrastructure.
Acceptance Criteria:
- [x] Define environments with names and URLs
- [x] Create pipelines linked to codebases
- [x] Configure monitoring (enabled, tools list)
- [x] View environment and pipeline metrics on dashboard
Implementation:
| Component | Path | Purpose |
|---|---|---|
| ProductDeploymentSetup | src/pages/product-deployment/Setup.tsx | Setup page |
| ProductDeploymentDashboard | src/pages/product-deployment/Dashboard.tsx | Dashboard page |
| productDeploymentSchema | src/schemas/product-deployment.schema.ts | Wizard schema |
Routes:
/product-deployment/setup- Wizard setup/product-deployment/dashboard- Dashboard view
Category 8: Support
Customer support configuration
Feature: Product Support Wizard
| Property | Details |
|---|---|
| ID | product-support-setup |
| Status | Implemented |
| Priority | High |
Description: Wizard for configuring support channels, issue categories, and SLA response times by severity.
User Story: As a support team lead, I want to configure support settings so that I can manage customer service.
Acceptance Criteria:
- [x] Define support channels
- [x] Create issue categories
- [x] Set SLA times for critical/high/medium/low severity
- [x] View SLA metrics on dashboard
Implementation:
| Component | Path | Purpose |
|---|---|---|
| ProductSupportSetup | src/pages/product-support/Setup.tsx | Setup page |
| ProductSupportDashboard | src/pages/product-support/Dashboard.tsx | Dashboard page |
| productSupportSchema | src/schemas/product-support.schema.ts | Wizard schema |
Routes:
/product-support/setup- Wizard setup/product-support/dashboard- Dashboard view
Category 9: Marketing
Marketing channels and conversion goals
Feature: Product Marketing Wizard
| Property | Details |
|---|---|
| ID | product-marketing-setup |
| Status | Implemented |
| Priority | High |
Description: Wizard for configuring marketing channels (with types), conversion goals (with target rates), and analytics settings.
User Story: As a marketing team member, I want to configure marketing settings so that I can plan campaigns.
Acceptance Criteria:
- [x] Define channels with types (social, email, paid, organic)
- [x] Create conversion goals with target rates
- [x] Configure analytics provider and tracking ID
- [x] View marketing metrics on dashboard
Implementation:
| Component | Path | Purpose |
|---|---|---|
| ProductMarketingSetup | src/pages/product-marketing/Setup.tsx | Setup page |
| ProductMarketingDashboard | src/pages/product-marketing/Dashboard.tsx | Dashboard page |
| productMarketingSchema | src/schemas/product-marketing.schema.ts | Wizard schema |
Routes:
/product-marketing/setup- Wizard setup/product-marketing/dashboard- Dashboard view
Category 10: Schema-Driven Wizards
Reusable wizard component system
Feature: SchemaWizard Component
| Property | Details |
|---|---|
| ID | schema-wizard |
| Status | Implemented |
| Priority | High |
Description: A reusable multi-step wizard component that renders forms from JSON Schema definitions with progress tracking and localStorage persistence.
User Story: As a developer, I want a reusable wizard component so that I can quickly create data collection flows.
Acceptance Criteria:
- [x] Render forms from JSON Schema definitions
- [x] Support multi-step navigation
- [x] Display progress indicator
- [x] Persist step data to localStorage
- [x] Custom widgets (text, textarea, select, checkbox, number, email, URL)
- [x] Custom templates (field, object, array, error list)
Implementation:
| Component | Path | Purpose |
|---|---|---|
| SchemaWizard | src/components/wizard/SchemaWizard.tsx | Main wizard component |
| WizardProgress | src/components/wizard/WizardProgress.tsx | Progress indicator |
| WizardNavigation | src/components/wizard/WizardNavigation.tsx | Navigation buttons |
| rjsf-widgets | src/components/wizard/rjsf-widgets.tsx | Custom form widgets |
| rjsf-templates | src/components/wizard/rjsf-templates.tsx | Custom form templates |
Category 11: Dashboard Components
Reusable dashboard visualization components
Feature: Dashboard Components
| Property | Details |
|---|---|
| ID | dashboard-components |
| Status | Implemented |
| Priority | Medium |
Description: Reusable dashboard components including layout, header, grid, and metric cards with trend indicators.
User Story: As a developer, I want reusable dashboard components so that I can quickly build section dashboards.
Acceptance Criteria:
- [x] DashboardLayout with section name
- [x] DashboardHeader with completion status and setup button
- [x] DashboardGrid for responsive card layout
- [x] MetricCard with title, value, subtitle, trend, and icon
Implementation:
| Component | Path | Purpose |
|---|---|---|
| DashboardLayout | src/components/dashboard/DashboardLayout.tsx | Layout wrapper |
| DashboardHeader | src/components/dashboard/DashboardHeader.tsx | Header section |
| DashboardGrid | src/components/dashboard/DashboardGrid.tsx | Grid layout |
| MetricCard | src/components/dashboard/MetricCard.tsx | Metric display |
Category 12: Chart Components
Data visualization with Recharts
Feature: Chart Components
| Property | Details |
|---|---|
| ID | chart-components |
| Status | Implemented |
| Priority | Medium |
Description: Reusable chart components built on Recharts for visualizing time series, comparisons, and distributions.
User Story: As a user, I want visual charts so that I can understand my data at a glance.
Acceptance Criteria:
- [x] Line chart for time series data
- [x] Bar chart for comparisons
- [x] Pie chart for distributions
Implementation:
| Component | Path | Purpose |
|---|---|---|
| LineChartComponent | src/components/charts/LineChartComponent.tsx | Time series |
| BarChartComponent | src/components/charts/BarChartComponent.tsx | Comparisons |
| PieChartComponent | src/components/charts/PieChartComponent.tsx | Distributions |
Capabilities
Core Capabilities
| Capability | Description | Implementation |
|---|---|---|
| Wizard Forms | JSON Schema-driven multi-step forms | @rjsf/core with custom widgets |
| Local Persistence | Data saved to browser localStorage | useSectionData hook |
| Progress Tracking | Section completion tracking | completedAt timestamp |
| Dashboard Visualization | Metric cards and charts | Recharts + custom components |
Technical Capabilities
| Capability | Status | Notes |
|---|---|---|
| Schema Validation | Yes | JSON Schema via @rjsf/validator-ajv8 |
| Multi-step Forms | Yes | WizardProgress + WizardNavigation |
| Local Storage | Yes | useLocalStorage hook |
| Charts | Yes | Recharts (line, bar, pie) |
| Routing | Yes | React Router v6 |
| Offline Support | Yes | All data in localStorage |
| RxDB Integration | Partial | Collections defined but using localStorage |
Integration Capabilities
| Integration | Type | Description |
|---|---|---|
| FlowState Framework | internal | App container, layout, navigation |
| RxDB | internal | Collection schema defined (not actively used) |
Data Models
Section Data Types
| Type | Description | Key Fields |
|---|---|---|
BusinessPlanningData | Company info | companyName, businessType, coreValues, missionStatement |
ProductInfoData | Product details | productName, description, requirements, techStack |
ProductGoalsData | Goals and targets | goals, salesTargets, metrics |
ProductDesignData | Features/milestones | features, milestones |
ProductDevelopmentData | Dev setup | codebases, team, timeTracking |
ProductDeploymentData | Infrastructure | environments, pipelines, monitoring |
ProductSupportData | Support config | channels, issueCategories, sla |
ProductMarketingData | Marketing | channels, conversionGoals, analytics |
Storage Structure
localStorage
├── state-business-planning # BusinessPlanningData
├── state-business-planning-wizard # Wizard state (transient)
├── state-product-info # ProductInfoData
├── state-product-info-wizard # Wizard state (transient)
├── state-product-goals # ProductGoalsData
├── state-product-design # ProductDesignData
├── state-product-development # ProductDevelopmentData
├── state-product-deployment # ProductDeploymentData
├── state-product-support # ProductSupportData
└── state-product-marketing # ProductMarketingData
Key Data Flows
User Action --> Wizard Step --> onChange --> useSectionData --> localStorage
|
v
Dashboard --> useSectionData --> localStorage --> Render Metrics
User Workflows
Workflow 1: Complete Business Planning Section
Set up company foundation
Trigger: Navigate to Business Planning from sidebar or Global Dashboard
Steps:
| Step | Action | Component | Outcome |
|---|---|---|---|
| 1 | Click "Business Planning" | Sidebar | Navigate to dashboard |
| 2 | Click "Setup" button | DashboardHeader | Navigate to wizard |
| 3 | Enter Company Info | SchemaWizard Step 1 | Data captured |
| 4 | Select Business Type | SchemaWizard Step 2 | Type selected |
| 5 | Enter Core Values & Mission | SchemaWizard Step 3 | Values saved |
| 6 | Click "Complete" | WizardNavigation | Section marked complete |
| 7 | View dashboard | BusinessPlanningDashboard | Metrics displayed |
Success Outcome: Section marked complete with checkmark in sidebar Failure Handling: Validation errors shown, wizard state preserved
Workflow 2: Track Overall Progress
Monitor product lifecycle completion
Trigger: Navigate to Global Dashboard
Steps:
| Step | Action | Component | Outcome |
|---|---|---|---|
| 1 | Click "Dashboard" | Sidebar | Navigate to global dashboard |
| 2 | View progress bar | GlobalDashboard | See overall % |
| 3 | Review section cards | SectionSummaryCard | See metrics per section |
| 4 | Click "Continue Setup" | GlobalDashboard | Navigate to next incomplete |
Success Outcome: Clear view of overall progress Failure Handling: N/A (read-only view)
Workflow 3: Edit Existing Section
Modify previously completed section
Trigger: Navigate to section dashboard
Steps:
| Step | Action | Component | Outcome |
|---|---|---|---|
| 1 | Click section in sidebar | Sidebar | Navigate to dashboard |
| 2 | Click "Edit" or "Setup" | DashboardHeader | Navigate to wizard |
| 3 | Modify data in steps | SchemaWizard | Data updated |
| 4 | Click "Complete" | WizardNavigation | Data saved |
Success Outcome: Section data updated Failure Handling: Previous data preserved if wizard abandoned
Architecture Summary
Directory Structure
src/
├── components/ # UI components
│ ├── charts/ # Recharts wrappers (3 files)
│ ├── dashboard/ # Dashboard components (5 files)
│ ├── layout/ # Layout components (3 files)
│ └── wizard/ # Wizard system (6 files)
├── hooks/ # Custom React hooks (3 files)
│ ├── useLocalStorage.ts
│ ├── useSectionData.ts
│ └── index.ts
├── schemas/ # JSON Schema definitions (9 files)
│ ├── business-planning.schema.ts
│ ├── product-info.schema.ts
│ ├── product-goals.schema.ts
│ ├── product-design.schema.ts
│ ├── product-development.schema.ts
│ ├── product-deployment.schema.ts
│ ├── product-support.schema.ts
│ ├── product-marketing.schema.ts
│ └── index.ts
├── pages/ # Page components (10 directories)
│ ├── global-dashboard/
│ ├── business-planning/
│ ├── product-info/
│ ├── product-goals/
│ ├── product-design/
│ ├── product-development/
│ ├── product-deployment/
│ ├── product-support/
│ └── product-marketing/
├── types/ # TypeScript definitions
├── db/ # RxDB configuration (optional)
├── utils/ # Utility functions
├── App.tsx # Main app with routing
├── plugin.ts # FlowState plugin
├── standalone.tsx # Standalone entry
└── index.ts # Package export
Key Architectural Patterns
| Pattern | Usage | Example |
|---|---|---|
| Schema-Driven Forms | JSON Schema defines form structure | businessPlanningSchema |
| Local State | localStorage for persistence | useSectionData hook |
| Section Pattern | Setup + Dashboard per section | /section/setup, /section/dashboard |
| Component Composition | Reusable dashboard/wizard parts | MetricCard, SchemaWizard |
Hooks Overview
| Hook | Purpose | Returns |
|---|---|---|
useLocalStorage | Persist state to localStorage | [value, setValue] |
useSectionData | Manage section data with completion | { data, updateData, isComplete } |
Schema Overview
| Schema | Steps | Key Fields |
|---|---|---|
businessPlanningSchema | 3 | Company Info, Business Type, Core Values |
productInfoSchema | 2+ | Product Name, Requirements, Tech Stack |
productGoalsSchema | 3 | Goals, Sales Targets, Metrics |
productDesignSchema | 2 | Features, Milestones |
productDevelopmentSchema | 3 | Codebases, Team, Time Tracking |
productDeploymentSchema | 3 | Environments, Pipelines, Monitoring |
productSupportSchema | 3 | Channels, Categories, SLA |
productMarketingSchema | 3 | Channels, Goals, Analytics |
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 |
Dependencies
| Package | Version | Purpose |
|---|---|---|
| @rjsf/core | ^5.20.0 | JSON Schema forms |
| @rjsf/validator-ajv8 | ^5.20.0 | Schema validation |
| recharts | ^2.10.0 | Chart visualization |
| lucide-react | ^0.263.1 | Icons |
| react-router-dom | ^6.0.0 | Routing |
Version History
| Version | Date | Author | Changes |
|---|---|---|---|
| 1.0.0 | 2026-01-22 | Claude | Initial documentation |