Project Manager
An AI-native, file-based project management tool designed for developers who want to keep their project planning close to their code.
Overview
Project Manager is built on a simple but powerful philosophy: every epic and story is a JSON file in your repository. This approach gives you:
- ✅ Full version control - Track changes to requirements over time with Git
- ✅ Type safety - TypeScript types and Zod validation for all data
- ✅ AI integration - Use Cursor AI to expand epics, generate stories, and refine acceptance criteria
- ✅ Developer-friendly - No separate PM tool; everything lives with your code
- ✅ Simple architecture - Clean UI on top of JSON files, no database needed
Features
📁 File-Based Storage
All project data is stored as JSON files in a hierarchical /pm directory:
/pm
/[project-name]/
/project.json # Project metadata
/[epic-name]/
/epic.json # Epic metadata
/STORY-*.json # Story files
This hierarchical structure makes it easy to:
- Navigate related items (project → epics → stories)
- Organize by feature/module
- Bulk operations on epics or projects
- Clean separation of concerns
🤖 AI-Powered
- Epic Expansion: Break down epics into multiple stories with AI
- Story Generation: Generate acceptance criteria and technical details
- File Path Suggestions: AI suggests relevant files for each story
- Smart Refinement: Iteratively improve stories with AI assistance
💼 Project Management
- Projects: Top-level containers for organizing work
- Epics: High-level features or initiatives
- Stories: Individual units of work with:
- Title, summary, and detailed description
- Acceptance criteria (list)
- Status tracking (todo, in progress, blocked, done, archived)
- Priority levels (low, medium, high, critical)
- Story point estimates
- Assignees and due dates
- Links to code files
- Tags for organization
📊 Analytics & Metrics
The application includes a comprehensive analytics dashboard that provides real-time insights:
Key Metrics
- Completion: Overall project progress with visual progress bars
- Velocity: Story points completed in the last 2 weeks
- Burn Rate: Average story points completed per day
- Critical Items: Count of high-priority pending work
Status Distribution
- Visual breakdown of stories by status (To Do, In Progress, Blocked, Done)
- Color-coded progress bars for quick insights
- Percentage calculations for each status
Epic Progress Tracking
- Completion percentage for each epic
- Story count and total points per epic
- Color-coded progress indicators (green=complete, blue=50%+, yellow=<50%)
Risk Analysis
- Top 5 Stories at Risk: Identifies stories needing attention based on:
- Blocked status (+50 risk points)
- Critical priority (+30 points)
- High priority (+20 points)
- Overdue status (+40 points)
- Age > 30 days (+10 points)
Additional Metrics
- Total epics count
- Average story age (in days)
- Team size (contributors)
- Average stories per epic
Quick Start
Prerequisites
- Node.js 18+ and npm 9+
- Git
Installation
- Clone the repository
git clone <your-repo-url>
cd ProjectManager
- Install dependencies
- Run the development server
- Open your browser
Navigate to http://localhost:3004
First-Time Setup
The application will create the /pm directory structure on first run with sample data to help you get started.
Usage
Accessing Analytics
From Header Navigation:
- Click “Analytics” in the header
- Select a project tab to view its metrics
From Project Page:
- Open any project
- Click the analytics icon (bar chart) next to the project title
The analytics dashboard provides real-time insights including:
- Key performance metrics (completion, velocity, burn rate)
- Status distribution charts
- Epic progress overview
- Top 5 stories at risk
- Additional project metrics
Creating a Project
- Navigate to the Projects page
- Click “New Project”
- Fill in project details (name, description)
- Save to create
/pm/{project-name}/project.json
Creating an Epic
- Open a project
- Click “New Epic”
- Provide epic title and description
- Optionally use AI to generate stories from the epic description
- Save to create
/pm/{project-name}/{epic-name}/epic.json
Creating Stories
Manual Creation:
- Open an epic
- Click “New Story”
- Fill in story details, acceptance criteria, etc.
- Save to create
/pm/{project-name}/{epic-name}/STORY-{id}.json
AI-Powered Creation:
- Open an epic
- Click “Generate Stories with AI”
- Provide context or let AI analyze the epic description
- Review and edit generated stories
- Save all stories at once
Editing Stories
- Click on any story to open the editor
- Edit metadata in the left panel
- Edit description and acceptance criteria in the center panel
- Changes are saved immediately to the JSON file
- Commit changes to Git like any other code change
Architecture
Tech Stack
- Frontend: Next.js 14.2 (App Router), React 18, TypeScript 5
- Styling: Tailwind CSS 3.4 with custom design tokens
- Forms: React Hook Form + Zod validation
- Animations: Framer Motion
- Icons: Lucide React
File Structure
ProjectManager/
├── src/
│ ├── app/ # Pages and API routes
│ ├── components/ # Reusable UI components
│ ├── lib/ # Utilities and data layer
│ └── theme/ # Design tokens
├── scripts/ # Automation scripts
├── pm/ # Project management data
│ └── [project-name]/ # Hierarchical structure
│ ├── project.json
│ └── [epic-name]/
│ ├── epic.json
│ └── STORY-*.json
└── CLAUDE.md # AI assistant context
Data Flow
- UI components call API routes (
/api/projects, /api/epics, /api/stories)
- API routes use
pmRepository to read/write JSON files
- All data validated with Zod schemas
- JSON files committed to Git for version control
Development
Available Scripts
# Development
npm run dev # Start dev server (port 3004)
# Build
npm run build # Production build
npm run start # Start production server
# Quality
npm run lint # Run ESLint
npm run type-check # TypeScript type checking
# Automation
npm run update-claude # Update CLAUDE.md files
npm run setup-git-hook # Setup git hooks for CLAUDE.md
Project Structure
See CLAUDE.md for detailed documentation of the application architecture, including:
- Component organization
- API route patterns
- Data model schemas
- Common development patterns
AI Integration with Cursor
This project is designed to work seamlessly with Cursor AI:
- CLAUDE.md Files: Each directory has a
CLAUDE.md file that provides context to AI assistants
- Structured Data: JSON files can be read and understood by AI
- Type Definitions: TypeScript types help AI generate valid code
- Clear Patterns: Consistent patterns make it easy for AI to extend functionality
Example AI Prompts:
- “Generate 5 stories for the user authentication epic”
- “Add acceptance criteria to STORY-123”
- “Suggest file paths for implementing this story”
- “Break down this epic into technical tasks”
Configuration
Environment Variables
Copy env.example to .env.local:
cp env.example .env.local
Currently minimal configuration is needed. Future additions may include:
- AI API keys (for automated story generation)
- Git integration settings
- Custom storage paths
Customization
Theme Colors: Edit tailwind.config.js
Data Location: Modify PM_DATA_DIR in src/lib/pm-repository.ts
Status Options: Update project JSON defaultStatuses array
Priority Levels: Update project JSON defaultPriorities array
Roadmap
Phase 1: Core Functionality ✅
Phase 2: Enhanced Features ✅
Phase 3: AI Integration
Phase 4: Advanced Features
Contributing
Contributions are welcome! Since this is a file-based system:
- Fork the repository
- Create your feature branch
- Make changes (code + JSON files)
- Commit both code and data files
- Push and create a Pull Request
License
MIT License - see LICENSE file for details
Support
For questions, issues, or suggestions:
- Open an issue on GitHub
- Check the
/docs directory for additional documentation
- Review
CLAUDE.md files for technical details
Built with ❤️ for developers who want their project management to live with their code.