The Future of Product Management
Blend the structured efficiency of Jira with the elegant UX of Notion, powered by AI to help you build better products, faster.
Features β’ Quick Start β’ Documentation β’ Architecture
- π Backlog Management - Organize and prioritize user stories with drag-and-drop
- π― Sprint Planning - Create and manage sprints with velocity tracking
- π Kanban Board - Visual workflow management with customizable columns
- π Real-time Analytics - Track team performance and project metrics
- π₯ Team Collaboration - Multi-user support with role-based permissions
- π€ AI Copilot - Intelligent assistant for story generation and planning
- β¨ Smart Story Generation - Auto-generate user stories with acceptance criteria
- π‘ AI Insights - Data-driven recommendations for sprint planning
- π¨ Intelligent Prioritization - AI-suggested story prioritization
- π Repository Connection - Connect GitHub repos to projects
- π Real-time Metrics - Track commits, PRs, and code activity
- π¨βπ» Developer Insights - Monitor team contributions and velocity
- π Auto-sync - Automatic data synchronization with GitHub
- π¨ Beautiful Interface - Clean, modern design with smooth animations
- π Dark/Light Mode - Customizable themes with system preference support
- π± Responsive Design - Works seamlessly on desktop and mobile
- β‘ Fast Performance - Optimized for speed and efficiency
- Node.js 18+ and npm
- MongoDB 4.4+ (local or Atlas)
- GitHub OAuth App (for GitHub integration)
- OpenAI API Key (for AI features)
-
Clone the repository
git clone https://github.com/yourusername/prodigypm.git cd prodigypm -
Install dependencies
# Install backend dependencies cd server npm install # Install frontend dependencies cd ../client npm install
-
Configure environment variables
Backend (
server/.env):# Server NODE_ENV=development PORT=5000 # Database MONGODB_URI=mongodb://localhost:27017/prodigypm # Authentication JWT_SECRET=your-super-secret-jwt-key-change-this JWT_EXPIRATION=24h ENCRYPTION_KEY=your-32-character-encryption-key # GitHub OAuth GITHUB_CLIENT_ID=your-github-client-id GITHUB_CLIENT_SECRET=your-github-client-secret GITHUB_CALLBACK_URL=http://localhost:5000/api/auth/github/callback # OpenAI OPENAI_API_KEY=your-openai-api-key OPENAI_MODEL=gpt-4o # Frontend FRONTEND_URL=http://localhost:3000
Frontend (
client/.env):VITE_API_URL=http://localhost:5000/api
-
Start the application
# Terminal 1 - Start backend cd server npm run dev # Terminal 2 - Start frontend cd client npm run dev
-
Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
prodigypm/
βββ client/ # React frontend
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components
β β βββ views/ # View components (Dashboard, Backlog, etc.)
β β βββ contexts/ # React contexts
β β βββ services/ # API services
β β βββ utils/ # Utility functions
β β βββ types/ # TypeScript types
β βββ package.json
β
βββ server/ # Node.js backend
β βββ src/
β β βββ models/ # MongoDB models
β β βββ routes/ # API routes
β β βββ services/ # Business logic
β β βββ repositories/ # Data access layer
β β βββ middleware/ # Express middleware
β β βββ utils/ # Utility functions
β β βββ config/ # Configuration files
β βββ package.json
β
βββ docs/ # Documentation
Frontend:
- React 18 with TypeScript
- Vite for build tooling
- TailwindCSS for styling
- Framer Motion for animations
- React Router for navigation
- Recharts for data visualization
Backend:
- Node.js with Express
- TypeScript
- MongoDB with Mongoose
- Passport.js for authentication
- OpenAI API for AI features
- GitHub API for integrations
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β API Layer β
β ββββββββββββ¬βββββββββββ¬βββββββββββ¬βββββββββββββββββββ β
β β Auth β Projects β Issues β GitHub/AI β β
β β Routes β Routes β Routes β Routes β β
β ββββββββββββ΄βββββββββββ΄βββββββββββ΄βββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Service Layer β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Business Logic, Validation, External APIs β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Repository Layer β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Data Access, MongoDB Operations β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β MongoDB Database β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Pages β
β ββββββββββββ¬βββββββββββ¬βββββββββββ¬βββββββββββββββββββ β
β β Home β Projects β Project β Settings β β
β ββββββββββββ΄βββββββββββ΄βββββββββββ΄βββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Views β
β ββββββββββββ¬βββββββββββ¬βββββββββββ¬βββββββββββββββββββ β
β βDashboard β Backlog β Board β Insights β β
β ββββββββββββ΄βββββββββββ΄βββββββββββ΄βββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Components β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Reusable UI Components, Modals, Forms β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Contexts & Services β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β State Management, API Calls β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- JWT-based authentication
- Secure password hashing with bcrypt
- Token refresh mechanism
- Session management
- OAuth 2.0 flow for GitHub integration
- Secure token storage with encryption
- Automatic token refresh
- Scope-based permissions
- AES-256-GCM encryption for sensitive data
- Environment variable protection
- CORS configuration
- Rate limiting on API endpoints
-
Create GitHub OAuth App
- Go to GitHub Settings β Developer settings β OAuth Apps
- Create new OAuth App
- Set Authorization callback URL:
http://localhost:5000/api/auth/github/callback - Copy Client ID and Client Secret
-
Configure Environment
- Add credentials to
server/.env - Restart backend server
- Add credentials to
-
Connect Repository
- Navigate to a project
- Click "Connect GitHub" in top bar
- Authenticate with GitHub
- Select repository from dropdown
- Click "Connect"
- Real-time commit tracking
- Pull request monitoring
- Issue synchronization
- Developer activity metrics
- Code contribution insights
- Natural language story generation
- Acceptance criteria suggestions
- Sprint planning assistance
- Priority recommendations
- Get OpenAI API key from https://platform.openai.com
- Add to
server/.env:OPENAI_API_KEY=your-key-here OPENAI_MODEL=gpt-4o
- Restart backend server
- Click AI Copilot button in top bar
- Type natural language requests
- Review and apply AI suggestions
- Customize generated content
POST /api/auth/signup - Create new user account
POST /api/auth/login - Login with credentials
GET /api/auth/me - Get current user
GET /api/auth/github - Initiate GitHub OAuth
GET /api/auth/github/callback - GitHub OAuth callback
GET /api/projects - Get all user projects
POST /api/projects - Create new project
GET /api/projects/:id - Get project by ID
PUT /api/projects/:id - Update project
DELETE /api/projects/:id - Delete project
POST /api/projects/:id/members - Add team member
DELETE /api/projects/:id/members/:userId - Remove member
GET /api/issues - Get all issues
POST /api/issues - Create new issue
GET /api/issues/:id - Get issue by ID
PUT /api/issues/:id - Update issue
DELETE /api/issues/:id - Delete issue
GET /api/projects/:projectId/github/available-repos - Get user's GitHub repos
GET /api/projects/:projectId/github/repos - Get connected repos
POST /api/projects/:projectId/github/repos/connect - Connect repository
DELETE /api/projects/:projectId/github/repos/:id - Disconnect repository
POST /api/projects/:projectId/github/repos/:id/sync - Sync repository data
GET /api/projects/:projectId/github/repos/:id/data - Get repository data
# Backend tests
cd server
npm test
# Frontend tests
cd client
npm test
# E2E tests
npm run test:e2e# Generate coverage report
npm run test:coverage# Build frontend
cd client
npm run build
# Build backend
cd server
npm run buildEnsure all production environment variables are set:
- Use strong JWT secrets
- Configure production MongoDB URI
- Set production frontend URL
- Use production API keys
Recommended:
- Frontend: Vercel, Netlify, or AWS S3 + CloudFront
- Backend: Railway, Render, or AWS EC2
- Database: MongoDB Atlas
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow TypeScript best practices
- Write meaningful commit messages
- Add tests for new features
- Update documentation
- Follow existing code style
This project is licensed under the MIT License - see the LICENSE file for details.
- Jira - Inspiration for project management features
- Notion - Inspiration for UI/UX design
- Linear - Inspiration for modern workflow
- OpenAI - AI capabilities
- GitHub - Version control integration
- Documentation: docs/
- Issues: GitHub Issues
- Email: support@prodigypm.com
- Mobile app (React Native)
- Advanced AI features
- Slack integration
- Custom workflows
- Time tracking
- Resource management
- Advanced reporting
- API webhooks
- Jira import/export
- GitLab integration
- Custom fields
- Automation rules