Automated Repository Documentation Generator powered by AI
Transform your GitHub repositories into professionally documented projects with the power of AI, advanced NLP, and RAG (Retrieval-Augmented Generation) pipelines.
- π€ AI-Powered Analysis - Advanced AI models analyze your repository structure, dependencies, and architecture
- π Comprehensive Documentation - Generate README files, API docs, setup guides, and more
- β‘ Lightning Fast - Process repositories in seconds with optimized RAG pipeline
- π Secure & Private - Your code is analyzed securely without permanent storage
- π§ Smart Insights - Get architectural insights, complexity analysis, and improvement suggestions
- π Multi-Language Support - Python, JavaScript, Java, Go, Rust, and many more
- π¨ Beautiful UI - Modern, responsive interface with smooth animations
- π Analytics Dashboard - Track your documentation generation history
- Python Flask - Web framework for API endpoints
- Google Gemini AI - Advanced language model for code analysis
- RAG Pipeline - Retrieval-Augmented Generation with sentence transformers
- FAISS - Vector similarity search for semantic analysis
- SQLAlchemy - Database ORM for job tracking
- GitPython - Git repository manipulation
- React 18 - Modern UI framework with hooks
- TypeScript - Type-safe JavaScript development
- TailwindCSS - Utility-first CSS framework
- Framer Motion - Smooth animations and transitions
- Lucide React - Beautiful icon set
- Axios - HTTP client for API communication
- Sentence Transformers - Text embeddings for semantic search
- Transformers - Hugging Face model integration
- NumPy & Pandas - Data processing and analysis
- LangChain - LLM application framework
- Python 3.8+ with pip
- Node.js 14.x+ with npm/yarn
- Git for repository cloning
- API Keys (see Configuration section)
Documentation.AI/
βββ π ai_models/ # AI and ML components
βββ π database/ # Database models and configuration
βββ π frontend/ # React frontend application
βββ π scripts/ # Setup and utility scripts
βββ π tests/ # Test suite and testing utilities
βββ π utils/ # Utility functions and helpers
βββ π app.py # Main Flask application
βββ π start.sh # Quick start script (Linux/macOS)
βββ π stop.sh # Stop script (Linux/macOS)
βββ π requirements.txt # Python dependencies
βββ π .env.example # Environment configuration template
βββ π README.md # Project documentation
# Clone the repository
git clone https://github.com/Drago-03/Documentation.AI.git
cd Documentation.AI
# Start the application (handles setup automatically)
./start.sh# Clone the repository
git clone https://github.com/Drago-03/Documentation.AI.git
cd Documentation.AI
# Run setup script (one-time)
./scripts/setup.ps1
# Start the application
python app.py# Linux/macOS
./stop.sh
# Windows - Press Ctrl+C in the terminal# Create and activate virtual environment
python3 -m venv .venv
# Linux/macOS
source .venv/bin/activate
# Windows
.venv\Scripts\activate
# Install dependencies
pip install -r requirements.txtcd frontend
npm install
npm run build
cd ..# Copy environment template
cp .env.example .env
# Edit .env with your API keys (see Configuration section)# Start backend
python app.py
# In another terminal, start frontend (optional - for development)
cd frontend
npm startCreate a .env file with the following configuration:
# AI Model API Keys
GEMINI_API_KEY=your_gemini_api_key_here
NVIDIA_API_KEY=your_nvidia_api_key_here
HUGGINGFACE_TOKEN=your_huggingface_token_here
# GitHub API (optional, for higher rate limits)
GITHUB_TOKEN=your_github_token_here
# Flask Configuration
FLASK_ENV=development
FLASK_DEBUG=True
SECRET_KEY=your_secret_key_here
# Database
DATABASE_URL=sqlite:///documentation_ai.db
# Server Configuration
HOST=0.0.0.0
PORT=5002- Visit Google AI Studio
- Sign up or log in with your Google account
- Create a new API key
- Copy the key to your
.envfile
- Visit Hugging Face
- Sign up and go to Settings > Access Tokens
- Create a new token with read permissions
- Add to your
.envfile
- Go to GitHub Settings > Developer settings > Personal access tokens
- Generate new token with
public_reposcope - Add to your
.envfile for higher API rate limits
# Terminal 1 - Backend
python app.py
# Terminal 2 - Frontend (for development)
cd frontend
npm start# Build frontend
cd frontend
npm run build
cd ..
# Start backend (serves built frontend)
python app.pyVisit http://localhost:5002 to access the application.
- Home Page - Overview and features
- Analyze Page - Enter GitHub repository URL
- Results Page - View generated documentation
- History Page - Track previous analyses
POST /api/analyze
Content-Type: application/json
{
"repo_url": "https://github.com/username/repository"
}GET /api/job/{job_id}GET /api/jobsGET /api/healthDocumentation.AI/
βββ app.py # Flask application entry point
βββ requirements.txt # Python dependencies
βββ .env.example # Environment template
βββ setup.sh / setup.bat # Setup scripts
βββ README.md # This file
β
βββ ai_models/ # AI and ML components
β βββ __init__.py
β βββ github_analyzer.py # Repository analysis
β βββ documentation_generator.py # Doc generation
β βββ rag_pipeline.py # RAG implementation
β
βββ database/ # Database models
β βββ __init__.py
β βββ models.py # SQLAlchemy models
β
βββ utils/ # Utility functions
β βββ __init__.py
β βββ file_processor.py # File processing utilities
β
βββ frontend/ # React frontend
βββ package.json
βββ tailwind.config.js
βββ public/
βββ src/
βββ components/ # Reusable components
βββ pages/ # Page components
βββ App.tsx # Main app component
βββ index.tsx # Entry point
βββ index.css # Global styles
# Run Python tests
python -m pytest tests/
# Run with coverage
python -m pytest tests/ --cov=.cd frontend
# Run React tests
npm test
# Run with coverage
npm run test:coverage# Build and start services
docker-compose up --build
# Run in background
docker-compose up -d# Build backend image
docker build -t documentation-ai-backend .
# Build frontend image
cd frontend
docker build -t documentation-ai-frontend .
# Run containers
docker run -p 5002:5002 documentation-ai-backendFLASK_ENV=production
FLASK_DEBUG=False
DATABASE_URL=postgresql://user:pass@host:port/dbname# Install gunicorn
pip install gunicorn
# Start with gunicorn
gunicorn -w 4 -b 0.0.0.0:5002 app:appserver {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:5002;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
- Python: Follow PEP 8, use Black formatter
- JavaScript/TypeScript: Follow Airbnb style guide, use Prettier
- Commit Messages: Use conventional commits format
This project is licensed under the MIT License - see the LICENSE file for details.
- π§ Email: support@documentation-ai.com
- π¬ GitHub Issues: Create an issue
- π Documentation: Full docs
- π‘ Feature Requests: Request features
- Google Gemini for AI capabilities
- Hugging Face for transformer models
- React for the frontend framework
- Flask for the backend framework
- TailwindCSS for styling
- All the amazing open-source contributors
Built with β€οΈ for developers by developers
Made possible by AI and the open-source community
Made possible by AI and the open-source community