A modern, full-stack software project management studio with an integrated NVIDIA AI Agent that automatically analyzes specifications, generates software architecture execution plans, enforces sequential task completion dependencies, and adapts based on user feedback.
-
Clean, Minimal & Modern UI:
- Designed with an ultra-clean white canvas, subtle borders, single indigo accent (
#4f46e5), and Google Fonts Inter. - Powered by Lucide Icons.
- Designed with an ultra-clean white canvas, subtle borders, single indigo accent (
-
AI Project Type & Archetype Detection:
- Automatically classifies project type (Mobile App, Full-Stack Web, AI/ML System, API Backend, DevOps Infrastructure, etc.) from project name and description.
- Allows inline manual editing at any time.
-
Split-View Planning Page:
- LEFT: Markdown/Text execution plan editor with character counters, unsaved state tracking, and View/Edit mode toggling.
- RIGHT: Interactive NVIDIA AI Agent chat with one-click "Generate Plan", "Ask Questions", and Auto-Sync to Editor.
-
Sequential Task Execution with Dependency Enforcement:
- Strictly ordered tasks (
$1^{\text{st}}, 2^{\text{nd}}, 3^{\text{rd}}\dots$ ). - Prerequisite validation: Tasks are locked if prior dependencies are incomplete.
- Reorder tasks with Up / Down buttons, recalculating dependencies and order numbers.
- Manual task creation and deletion.
- Strictly ordered tasks (
-
PDF Specification Upload:
- Drag-and-drop PRDs, technical specs, or architecture documents (
.pdf). - Automatically extracts text using
pypdfand merges it into the AI agent prompt context.
- Drag-and-drop PRDs, technical specs, or architecture documents (
-
AI Persistent Learning & Feedback Loop:
- Users can rate or provide feedback on AI responses, which are stored in
user_feedbackto adapt future generations.
- Users can rate or provide feedback on AI responses, which are stored in
-
In-App Notification Center:
- Real-time activity alerts (plan synced, task completed, PDF parsed, reminders) with unread count badges and popover history.
-
Robust Multi-Database Engine:
- Full MySQL compatibility with
schema.sql(configured via phpMyAdmin or local MySQL server). - Zero-configuration automatic SQLite fallback (
ai_project_manager.db) if MySQL is unavailable.
- Full MySQL compatibility with
ai_project_manager/
├── backend/
│ ├── .env # Local environment variables
│ ├── .env.example # Template environment file
│ ├── requirements.txt # Python dependencies
│ ├── schema.sql # MySQL schema for phpMyAdmin
│ ├── database.py # DB engine with MySQL + SQLite fallback
│ ├── models.py # SQLAlchemy models (Project, Task, UserFeedback, Notification)
│ ├── schemas.py # Pydantic request/response schemas
│ ├── ai_agent.py # NVIDIAAgent with exact prompts & fallback engine
│ ├── main.py # REST API endpoints & dependency enforcement
│ └── test_api.py # Automated test suite
├── frontend/
│ ├── index.html # App entry point with Inter font
│ ├── package.json # Node dependencies
│ ├── vite.config.ts # Vite build configuration
│ └── src/
│ ├── types.ts # Project, Task, AIResponse, Notification, Feedback interfaces
│ ├── api.ts # Typed HTTP client
│ ├── context/
│ │ └── ProjectContext.tsx # Central reactive state & notifications
│ ├── components/
│ │ ├── Sidebar.tsx # Project navigation & active status indicator
│ │ ├── Navbar.tsx # Archetype badge & notification bell
│ │ ├── AIAgent.tsx # Reusable AI Agent Chat (bubbles, auto-sync, feedback)
│ │ ├── PDFUpload.tsx # PDF specification uploader
│ │ └── NotificationCenter.tsx # Notification popover drawer
│ ├── pages/
│ │ ├── ProjectCreatePage.tsx # Name, description, auto type detection
│ │ ├── PlanningPage.tsx # Split-view architecture editor & chat
│ │ └── TaskAssignmentPage.tsx # Sequential tasks & dependency enforcement
│ ├── index.css # Minimal styling tokens
│ ├── App.tsx # Top-level application layout & toast alerts
│ └── main.tsx
└── README.md
-
Open a terminal in
backend/:cd backend -
Install Python dependencies:
python -m pip install -r requirements.txt
-
Configure
.env:DB_HOST=localhost DB_PORT=3306 DB_NAME=ai_project_manager DB_USER=root DB_PASSWORD= NVIDIA_API_KEY=your_nvidia_api_key_here
(Note: If MySQL is not running, the backend will automatically use a local SQLite file
ai_project_manager.dbwithout crashing). -
Run automated backend tests:
python -m pytest -v test_api.py
-
Start the FastAPI server:
python -m uvicorn main:app --reload --port 8000
API will be live at
http://127.0.0.1:8000. Interactive Swagger docs athttp://127.0.0.1:8000/docs.
- Open a terminal in
frontend/:cd frontend - Install dependencies:
npm install
- Start the Vite development server:
npm run dev
- Open your browser at
http://127.0.0.1:5173.
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/health |
Service health status |
GET |
/api/projects |
List all projects |
POST |
/api/projects |
Create new project (with auto AI archetype detection) |
GET |
/api/projects/{id} |
Get project details |
PUT |
/api/projects/{id}/plan |
Save updated execution plan |
PUT |
/api/projects/{id}/type |
Manually update project archetype |
POST |
/api/projects/{id}/upload-pdf |
Upload and parse project PDF document |
GET |
/api/projects/{id}/progress |
Calculate completion statistics |
GET |
/api/projects/{id}/tasks |
Get sequential task list |
POST |
/api/projects/{id}/tasks |
Create manual sequential task |
PUT |
/api/tasks/{id}/toggle |
Toggle task (strictly enforces prior dependency completion) |
PUT |
/api/tasks/{id}/reorder |
Move task up/down in sequential order |
DELETE |
/api/tasks/{id} |
Delete task and re-sequence orders |
POST |
/api/projects/{id}/ai/questions |
Ask 3–5 clarifying questions |
POST |
/api/projects/{id}/ai/plan |
Generate full 8-section architecture plan |
POST |
/api/projects/{id}/ai/tasks |
Extract ordered sequential tasks from plan |
POST |
/api/projects/{id}/ai/improvements |
Suggest improvements based on progress |
POST |
/api/projects/{id}/feedback |
Record user feedback to reinforce AI context |
GET |
/api/projects/{id}/notifications |
Fetch activity notifications |
POST |
/api/notifications/{id}/read |
Mark notification as read |