Automatically generate comprehensive technical documentation for Spring Boot projects with real-time monitoring
Features β’ Demo β’ Installation β’ Usage β’ Contributing β’ License
- Overview
- Features
- Demo
- Architecture
- Installation
- Usage
- Configuration
- Project Structure
- Tech Stack
- Contributing
- Roadmap
- Troubleshooting
- FAQ
- License
- Acknowledgments
- Contact
The Autonomous Spring Boot Documentation Agent is an intelligent system that eliminates the manual effort of writing and maintaining technical documentation. Using a multi-agent AI architecture, it analyzes Java Spring Boot codebases, generates comprehensive documentation, and validates accuracy through peer reviewβall while providing real-time visibility into the process.
- β° Save Time: Automate hours of documentation work
- π― Ensure Accuracy: AI agents cross-validate content against source code
- ποΈ Full Visibility: Watch the documentation process in real-time
- π Privacy First: Runs 100% locally on your machine
- π¨ Professional Output: Generates well-structured Markdown with proper formatting
-
π§ Multi-Agent Collaboration
- Writer Agent creates documentation sections
- Reviewer Agent validates against source code
- Publisher Agent assembles the final document
-
π₯οΈ Mission Control Desktop UI
- Native desktop application (Tauri + Next.js)
- Real-time agent activity feed
- Live documentation preview
- One-click download and copy
-
π Local-First Architecture
- No cloud dependencies for code analysis
- Secure local file system access
- API keys stored locally
-
π€ Intelligent Analysis
- Automatic Spring Boot project structure detection
- Entity, Service, Controller, and Repository analysis
- Dependency relationship mapping
- Code pattern recognition
-
π Comprehensive Output
- Table of contents with deep linking
- Code snippets with syntax highlighting
- Architecture diagrams (Mermaid.js)
- API endpoint documentation
- Database schema documentation
-
π Robust & Resilient
- Vector store for long-term memory
- Automatic retry logic for API failures
- Progress persistence across runs
- Graceful error handling
graph TB
subgraph "Desktop UI (Tauri + Next.js)"
UI[Mission Control Interface]
Feed[Agent Activity Feed]
Preview[Documentation Preview]
end
subgraph "Backend (FastAPI + LangGraph)"
API[REST API + WebSocket]
Orchestrator[Agent Orchestrator]
Writer[Writer Agent]
Reviewer[Reviewer Agent]
Publisher[Publisher Agent]
end
subgraph "Services"
LLM[Gemini 1.5 Pro]
Vector[ChromaDB Vector Store]
FS[File System]
end
UI -->|WebSocket| API
API --> Orchestrator
Orchestrator --> Writer
Writer --> Reviewer
Reviewer --> Publisher
Writer <-->|Queries| LLM
Reviewer <-->|Queries| LLM
Writer <-->|Memory| Vector
Orchestrator <-->|Read Files| FS
style UI fill:#2d3748,stroke:#4299e1,stroke-width:2px
style API fill:#2d3748,stroke:#48bb78,stroke-width:2px
style LLM fill:#2d3748,stroke:#ed8936,stroke-width:2px
sequenceDiagram
participant User
participant UI as Mission Control
participant Backend
participant Writer
participant Reviewer
participant Publisher
User->>UI: Select Project & Launch
UI->>Backend: start_agent event
Backend->>Backend: Discover Java files
loop For each file
Backend->>Writer: Generate documentation
Writer->>Backend: Draft content
Backend->>Reviewer: Review against source
Reviewer->>Backend: Feedback
alt Approved
Backend->>Backend: Store in memory
else Needs revision
Backend->>Writer: Revise with feedback
end
end
Backend->>Publisher: Assemble final doc
Publisher->>UI: final_result event
UI->>User: Display documentation
Before you begin, ensure you have the following installed:
| Requirement | Version | Download Link |
|---|---|---|
| Python | 3.11+ | python.org |
| Node.js | 18+ | nodejs.org |
| Rust | Latest stable | rustup.rs |
| Git | Latest | git-scm.com |
macOS:
xcode-select --installLinux (Ubuntu/Debian):
sudo apt update
sudo apt install libwebkit2gtk-4.0-dev \
build-essential \
curl \
wget \
libssl-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
librsvg2-devWindows:
- Install Microsoft Visual C++ Redistributable
- Install WebView2
For detailed Tauri setup instructions, visit the official Tauri prerequisites guide.
# 1. Clone the repository
git clone https://github.com/SOUHAIB-IA/springboot-doc-agent.git
cd springboot-doc-agent
# 2. Run the setup script
chmod +x setup.sh
./setup.sh
# 3. Configure environment variables
cp .env.example .env
# Edit .env and add your GOOGLE_API_KEY
# 4. Start the application
npm run start:allgit clone https://github.com/SOUHAIB-IA/springboot-doc-agent.git
cd springboot-doc-agent# Create virtual environment
python -m venv .venv
# Activate virtual environment
# On macOS/Linux:
source .venv/bin/activate
# On Windows:
.venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt# Navigate to frontend directory
cd springboot-doc-agent-frontend
# Install dependencies
npm install
# Return to project root
cd ..Create a .env file in the project root:
cp .env.example .envEdit .env and configure:
# Required: Google Gemini API Key
GOOGLE_API_KEY=your_gemini_api_key_here
# Optional: Server Configuration
HOST=0.0.0.0
PORT=8000
# Optional: LLM Configuration
LLM_TEMPERATURE=0.3
LLM_MAX_TOKENS=8192
# Optional: Vector Store Path
VECTOR_STORE_PATH=./data/chroma_dbGetting a Gemini API Key:
- Visit Google AI Studio
- Sign in with your Google account
- Click "Create API Key"
- Copy the key to your
.envfile
You have two options:
npm run start:allThis starts both the backend and frontend in separate processes.
Terminal 1 - Backend:
source .venv/bin/activate # Windows: .venv\Scripts\activate
python main.pyTerminal 2 - Frontend:
cd springboot-doc-agent-frontend
npm run tauri dev- Launch: The Mission Control window opens automatically
- Select Project: Click "Browse for Project..." and select your Spring Boot project root
- Launch Agent: Click "Launch Agent" to start the documentation process
- Monitor: Watch real-time agent activity in the feed
- Review: Once complete, review the documentation in the preview panel
- Export: Click "Download" or "Copy to Clipboard"
# Start with custom port
python main.py --port 8080
# Enable debug logging
python main.py --debug
# Use different LLM provider
python main.py --llm openai --api-key YOUR_KEYThe system supports multiple LLM providers. Edit config/llm_config.py:
# Google Gemini (Default)
LLM_PROVIDER = "gemini"
LLM_MODEL = "gemini-1.5-pro"
# OpenAI
# LLM_PROVIDER = "openai"
# LLM_MODEL = "gpt-4-turbo-preview"
# Groq
# LLM_PROVIDER = "groq"
# LLM_MODEL = "mixtral-8x7b-32768"Customize agent prompts in agents/prompts/:
writer_prompt.txt- Documentation writing guidelinesreviewer_prompt.txt- Review criteria and standardspublisher_prompt.txt- Final assembly instructions
Modify config/vector_store_config.py for memory settings:
VECTOR_STORE_CONFIG = {
"persist_directory": "./data/chroma_db",
"embedding_model": "sentence-transformers/all-MiniLM-L6-v2",
"collection_name": "spring_boot_docs",
"chunk_size": 1000,
"chunk_overlap": 200
}springboot-doc-agent/
βββ agents/ # Agent definitions
β βββ writer_agent.py
β βββ reviewer_agent.py
β βββ publisher_agent.py
β βββ prompts/
βββ config/ # Configuration files
β βββ llm_config.py
β βββ vector_store_config.py
βββ springboot-doc-agent-frontend/ # Frontend application
β βββ src/
β β βββ app/ # Next.js app
β β βββ components/ # React components
β β βββ lib/ # Utilities
β βββ src-tauri/ # Tauri backend
β β βββ src/
β β βββ tauri.conf.json
β βββ package.json
β βββ next.config.js
βββ tools/ # Agent tools
β βββ file_system_tools.py
β βββ memory_tools.py
βββ utils/ # Utilities
β βββ file_discovery.py
β βββ code_parser.py
βββ tests/ # Test suite
β βββ test_agents.py
β βββ test_tools.py
βββ data/ # Runtime data
β βββ chroma_db/
βββ main.py # Backend entry point
βββ requirements.txt # Python dependencies
βββ .env.example # Environment template
βββ .gitignore
βββ LICENSE
βββ README.md
βββ CONTRIBUTING.md
βββ CODE_OF_CONDUCT.md
βββ CHANGELOG.md
| Technology | Purpose | Documentation |
|---|---|---|
| Python 3.11+ | Core language | python.org |
| FastAPI | REST API & WebSocket server | fastapi.tiangolo.com |
| LangChain | LLM orchestration framework | langchain.com |
| LangGraph | Multi-agent workflow | langchain-ai.github.io/langgraph |
| ChromaDB | Vector database | trychroma.com |
| Sentence Transformers | Local embeddings | sbert.net |
| python-socketio | WebSocket communication | python-socketio.readthedocs.io |
| Technology | Purpose | Documentation |
|---|---|---|
| Next.js 14 | React framework | nextjs.org |
| React 18 | UI library | react.dev |
| TypeScript | Type safety | typescriptlang.org |
| Tauri | Desktop app framework | tauri.app |
| Tailwind CSS | Styling | tailwindcss.com |
| shadcn/ui | Component library | ui.shadcn.com |
| socket.io-client | WebSocket client | socket.io |
| Provider | Model | Use Case |
|---|---|---|
| Google Gemini | gemini-1.5-pro | Default LLM |
| OpenAI | gpt-4-turbo | Alternative LLM |
| Groq | mixtral-8x7b | High-speed inference |
We love contributions! Whether you're fixing bugs, adding features, or improving documentation, your help is welcome.
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Please read our Contributing Guide for:
- Code style and conventions
- Commit message format
- Testing requirements
- PR submission process
We're especially looking for help with:
- Support for additional LLM providers (Anthropic Claude, local models)
- Database schema visualization
- REST API endpoint testing and documentation
- Dependency analysis from
pom.xml/build.gradle - Multi-language support (Python/Django, Node.js/Express, Go)
- Automated diagram generation (class diagrams, sequence diagrams)
- Dark/light theme toggle
- Project history and comparison viewer
- Configuration editor in UI
- Progress indicators and ETAs
- Keyboard shortcuts
- Unit tests for agents
- Integration tests for workflows
- E2E tests for UI
- Performance benchmarking
- Load testing for large codebases
- Video tutorials
- Architecture decision records (ADRs)
- API reference documentation
- Troubleshooting guides
- Localization (i18n)
# Install development dependencies
pip install -r requirements-dev.txt
cd springboot-doc-agent-frontend && npm install
# Run tests
pytest tests/
npm test
# Run linters
black .
pylint agents/ tools/ utils/
npm run lint
# Run type checking
mypy agents/ tools/ utils/
npm run type-checkThis project adheres to a Code of Conduct. By participating, you're expected to uphold this code.
- Multi-agent documentation system
- Real-time UI monitoring
- Vector store integration
- Project history tracking
- Export to PDF/HTML
- Multi-LLM provider support
- Configuration UI panel
- Database schema documentation
- API endpoint testing
- Performance optimizations
- Support for Python/Django projects
- Support for Node.js/Express projects
- Automated diagram generation
- Collaborative editing
- Cloud sync option (optional)
- IDE plugins (VS Code, IntelliJ)
- CI/CD integration
- Documentation versioning
- Custom template support
- Enterprise features
See our GitHub Projects for detailed planning.
Problem: ModuleNotFoundError: No module named 'fastapi'
Solution:
source .venv/bin/activate
pip install -r requirements.txtProblem: Error: Cannot find module 'next'
Solution:
cd springboot-doc-agent-frontend
rm -rf node_modules package-lock.json
npm installProblem: Missing system dependencies
Solution:
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.0-dev \
build-essential \
curl \
wget \
libssl-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
librsvg2-devProblem: GOOGLE_API_KEY not found
Solution:
- Ensure
.envfile exists in project root - Verify the key is properly formatted:
GOOGLE_API_KEY=your_key_here - Restart the backend server
Problem: Frontend can't connect to backend
Solution:
- Verify backend is running on port 8000
- Check firewall settings
- Ensure
HOST=0.0.0.0in.env
- π Check our FAQ
- π¬ Join our Discussions
- π Open an Issue
- π§ Email: sohaib.garaaaouch55@gmail.com
Q: Does this work with other Java frameworks?
A: Currently optimized for Spring Boot, but can be adapted for other frameworks with custom prompts.
Q: Can I use this offline?
A: The app runs locally, but requires internet for LLM API calls. Local model support is planned.
Q: How much does it cost?
A: The software is free. You only pay for LLM API usage (Gemini offers a free tier).
Q: Is my code sent to the cloud?
A: Only code snippets are sent to the LLM API for analysis. You control what's shared.
Q: Can I customize the documentation format?
A: Yes! Edit the agent prompts in agents/prompts/ to change output style.
Q: What size codebases can it handle?
A: Tested with projects up to 100k lines. Performance varies with LLM API speed.
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2025 souhaib garaaouch
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
This project builds upon incredible open-source technologies:
- LangChain - LLM application framework
- Tauri - Desktop app framework
- FastAPI - Modern Python web framework
- Next.js - React framework
- ChromaDB - Vector database
- shadcn/ui - Beautiful UI components
Special thanks to:
- Google for the Gemini API
- The open-source community for countless libraries and tools
- All contributors who help improve this project
Project Maintainer: souhaib garaaouch
- π§ Email: sohaib.garaaouch55@gmail.com
- πΌ LinkedIn: souhaib garaaouch
Made with β€οΈ by the open-source community