An AI-powered project planning assistant that helps developers analyze project requirements, recommend technology stacks, and generate comprehensive project documentation using intelligent AI agents.
BuildPilot uses a multi-agent system powered by CrewAI:
- Project Planner Agent: A senior software architect that analyzes requirements and creates comprehensive project plans
- Documentation Agent: A technical writing specialist that generates clear, professional documentation
- Python 3.12+
- Django: Web framework for the REST API
- Django REST Framework: API development toolkit
- CrewAI: Multi-agent AI framework
- LangChain: AI application development framework
- OpenAI API: GPT-4 language model integration
- python-dotenv: Environment variable management
- React: Modern web interface
- Markdown Preview: Real-time markdown rendering
- File Export: PDF, TXT, and MD download options
- Responsive Design: Mobile-friendly interface
- Python 3.12 or higher
- OpenAI API key
- Git
-
Clone the repository
git clone <repository-url> cd "AI Agent Project"
-
Set up Python virtual environment
cd backend python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Configure environment variables
cp .env.example .env # Edit .env and add your OpenAI API key and Django secret key # OPENAI_API_KEY=your_api_key_here # DJANGO_SECRET_KEY=your_django_secret_key_here
cd backend
python main.pycd backend
source .venv/bin/activate # Make sure virtual environment is activated
python manage.py runserver # Start the Django development serverThe API server will be available at http://localhost:8000
BuildPilot provides a REST API for integration with other applications:
- Endpoint:
GET /api/health/ - Description: Check if the API server is running
- Response:
{ "status": "healthy", "message": "BuildPilot AI backend is running" }
- Endpoint:
POST /api/generate-plan/ - Description: Generate a comprehensive project plan using AI
- Request Body:
{ "project_name": "My Awesome App", "project_description": "A web application for task management with user authentication and real-time updates." } - Response:
{ "message": "success", "plan": "# My Awesome App\n\n## Project Overview\n..." }
Using cURL:
# Health check
curl http://localhost:8000/api/health/
# Generate project plan
curl -X POST http://localhost:8000/api/generate-plan/ \
-H "Content-Type: application/json" \
-d '{
"project_name": "E-commerce Platform",
"project_description": "A full-stack e-commerce solution with product catalog, shopping cart, payment processing, and admin dashboard."
}'Using Python requests:
import requests
# Generate project plan
response = requests.post('http://localhost:8000/api/generate-plan/', json={
'project_name': 'Social Media App',
'project_description': 'A social networking platform with user profiles, posts, messaging, and content feeds.'
})
if response.status_code == 200:
data = response.json()
print("Plan generated successfully!")
print(data['plan'])
else:
print("Error:", response.json())BuildPilot/
├── README.md
├── backend/
│ ├── .env # Environment variables (create from .env.example)
│ ├── .env.example # Environment variables template
│ ├── db.sqlite3 # SQLite database (created after migrations)
│ ├── manage.py # Django management script
│ ├── run_server.py # Custom server runner script
│ ├── agents.py # AI agent definitions
│ ├── main.py # CLI application entry point
│ ├── requirements.txt # Python dependencies
│ ├── tasks.py # Task definitions for agents
│ ├── generated_plans/ # Directory for generated project plans (removed)
│ ├── buildpilot_api/ # Django project directory
│ │ ├── __init__.py
│ │ ├── settings.py # Django settings
│ │ ├── urls.py # Main URL routing
│ │ ├── wsgi.py # WSGI configuration
│ │ └── asgi.py # ASGI configuration
│ └── project_api/ # Django app for API endpoints
│ ├── __init__.py
│ ├── admin.py # Django admin configuration
│ ├── ai_service.py # AI service wrapper for Django
│ ├── apps.py # App configuration
│ ├── models.py # Database models (empty for now)
│ ├── tests.py # Unit tests
│ ├── urls.py # API URL patterns
│ └── views.py # API view functions
└── frontend/ # Frontend web interface
├── pages/
│ ├── index.js # Home page with contact information
│ ├── about.js # About page explaining the program
│ └── generator.js # Main interface for project plan generation
├── components/
│ ├── ProjectForm.js # Form for project input
│ ├── LoadingSpinner.js # Loading animation during generation
│ ├── MarkdownPreview.js # Markdown preview component
│ └── ExportOptions.js # PDF/TXT/MD download options
└── styles/ # CSS styling files
Create a .env file in the backend directory with the following variables:
# OpenAI API Configuration
OPENAI_API_KEY=your_openai_api_key_here
# Django Configuration
DJANGO_SECRET_KEY=your_django_secret_key_hereHow to get these keys:
-
OpenAI API Key:
- Sign up at OpenAI
- Go to API Keys section and create a new key
-
Django Secret Key:
python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"
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 some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.