An intelligent Program Increment (PI) planning application that leverages AI to help teams efficiently plan and manage their sprints, epics, and user stories.
- Create, edit, and delete epics with detailed information
- Track epic history and revert to previous versions
- AI-powered epic refinement and generation from requirements
- Priority levels: Critical, High, Medium (default), Low
- T-shirt sizing: XS, S, M, L, XL, XXL
- Status tracking and acceptance criteria management
- AI-powered dependency analysis of backlog issues
- Automatic sprint scheduling based on:
- Epic priority (Critical → High → Medium → Low)
- Technical dependencies between issues
- Configurable team velocity (default: 85 story points)
- Sprint length (default: 2 weeks)
- Team size (default: 5 developers)
- Automatic creation of additional sprints when needed
- Import: JSON, CSV, or TXT files for Requirements, Epics, and Sprints
- Export: Complete project data in JSON format for Jira integration
- Real-time data validation and error handling
- Firebase Firestore integration for persistent storage
- Google Gemini AI for intelligent content generation
- Epic creation from requirements
- Content refinement and enhancement
- Dependency analysis for optimal scheduling
- Node.js (v16 or higher)
- npm or yarn package manager
- Google Gemini API key
- Firebase project (optional, for cloud storage)
-
Clone the repository
git clone <repository-url> cd pi-planner
-
Install dependencies
npm install
-
Environment Configuration
- Copy
env.templateto.env
cp env.template .env
- Edit
.envand add your API keys:
VITE_GEMINI_API_KEY=your_gemini_api_key_here VITE_FIREBASE_API_KEY=your_firebase_api_key VITE_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com VITE_FIREBASE_PROJECT_ID=your_project_id VITE_FIREBASE_STORAGE_BUCKET=your_project.appspot.com VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id VITE_FIREBASE_APP_ID=your_app_id
- Copy
-
Get Google Gemini API Key
- Visit Google AI Studio
- Create a new API key
- Add it to your
.envfile
-
Firebase Setup (Optional)
- Create a Firebase project at Firebase Console
- Enable Firestore Database
- Get your config values and add to
.env
-
Start the development server
npm run dev
-
Open in browser
- Navigate to
http://localhost:5173
- Navigate to
-
Add Requirements
- Click "Add Requirement" in the Requirements column
- Enter your project requirements or user stories
- Use the "Generate Epic" button to convert requirements to epics using AI
-
Manage Epics
- Create: Generated from requirements or added manually
- Edit: Click the pencil icon to modify epic details
- Delete: Click the trash icon (confirms before deletion)
- Refine: Use AI to enhance epic content
- History: View and revert to previous versions
-
Issue Management
- Add issues to epics using the "Add Issue" button
- Issues start in the backlog (unscheduled)
- Drag and drop issues between sprints
-
Configure Settings
- Click "Auto Schedule" in the Sprints section
- Set your team parameters:
- Sprint length (weeks)
- Team velocity (story points per sprint)
- Number of developers
-
AI Analysis
- The system analyzes all backlog issues
- Identifies technical dependencies using AI
- Creates an optimal scheduling plan
-
Automatic Scheduling
- Issues are scheduled by epic priority (Critical first)
- Respects technical dependencies
- Creates new sprints automatically if needed
- Distributes work based on team velocity
- Click "Import" button in any section header
- Supported formats:
- JSON: Complete data structure
- CSV/TXT: Delimited data with headers
- Data is validated before import
- Click "Export Data" above the Sprints section
- Downloads complete project data as JSON
- Use for Jira integration or backup
- Can be re-imported later to resume work
| Priority | Color | Scheduling Order |
|---|---|---|
| Critical | Bold Red | 1st |
| High | Red | 2nd |
| Medium | Yellow | 3rd (Default) |
| Low | Green | 4th |
| Size | Story Points | Typical Use |
|---|---|---|
| XS | 1-2 | Bug fixes, minor updates |
| S | 3-5 | Small features |
| M | 8-13 | Standard features |
| L | 21-34 | Large features |
| XL | 55-89 | Major initiatives |
| XXL | 144+ | Epic-level work |
- Frontend: React 18 + Vite
- Styling: Tailwind CSS
- Database: Firebase Firestore
- Authentication: Firebase Anonymous Auth
- AI: Google Gemini API
- Icons: Lucide React
pi-planner/
├── src/
│ ├── components/
│ │ ├── EpicCard.jsx # Epic display and editing
│ │ ├── IssueCard.jsx # Issue display component
│ │ └── SprintLane.jsx # Sprint column component
│ ├── config/
│ │ └── firebase.js # Firebase configuration
│ ├── App.jsx # Main application component
│ ├── main.jsx # React entry point
│ └── index.css # Global styles
├── public/ # Static assets
├── .env # Environment variables
├── package.json # Dependencies and scripts
└── README.md # This file
-
API Key Errors
- Ensure
.envfile exists and contains valid API keys - Restart development server after adding keys
- Ensure
-
Firebase Connection Issues
- Check Firebase project configuration
- Verify Firestore rules allow read/write access
-
AI Generation Failures
- Check Gemini API key validity
- Ensure stable internet connection
- Monitor API quotas and limits
- "An API Key must be set": Add
VITE_GEMINI_API_KEYto.env - "Service Unavailable": Gemini API temporary issue, try again
- "Invalid JSON response": AI response parsing error, retry operation
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For issues and questions:
- Check the troubleshooting section above
- Review console logs for detailed error messages
- Ensure all dependencies are properly installed
- Verify environment variables are correctly configured
Happy Planning! 🎯