Thanks for your interest in contributing to DocuBot.
DocuBot is an open-source AI-powered documentation generator built with a FastAPI backend, a React frontend, and a multi-agent LangGraph workflow. It uses specialized micro-agents to analyze codebases and generate comprehensive README documentation. We welcome improvements across the codebase, documentation, bug reports, design feedback, and workflow enhancements.
Before you start, read the relevant section below. It helps keep contributions focused, reviewable, and aligned with the current project setup.
Before you dive in, make sure you have these installed:
```bash
python --version
node --version
npm --version
docker --version docker compose version
git --version ```
New to contributing?
- Open an issue or pick an existing one to work on.
- Sync your branch from `dev`.
- Follow the local setup guide below.
- Run the app locally and verify your change before opening a PR.
- Start with the main project docs in `README.md`, `api/.env.example`, and the inline documentation in agent files.
- If something is unclear, open a GitHub issue with your question and the context you already checked.
- Search existing issues first.
- If the bug is new, open a GitHub issue.
- Include your environment, what happened, what you expected, and exact steps to reproduce.
- Add screenshots, logs, request details, or response payloads if relevant.
- Open a GitHub issue describing the feature.
- Explain the problem, who it helps, and how it fits DocuBot.
- If the change is large, get alignment in the issue before writing code.
- Python 3.11+
- Node.js 18+ and npm
- Git
- Docker with Docker Compose v2
- One LLM provider:
- An OpenAI-compatible API key (OpenAI, Groq, OpenRouter), or
- Enterprise inference endpoint (GenAI Gateway, APISIX), or
- Ollama installed locally on the host machine
```bash git clone https://github.com/your-org/DocuBot.git cd DocuBot ```
Create an `.env` file in the `api/` directory from the example:
```bash cp api/.env.example api/.env ```
At minimum, configure your LLM provider. Example for OpenAI:
```env LLM_PROVIDER=openai LLM_API_KEY=sk-... LLM_BASE_URL=https://api.openai.com/v1 LLM_MODEL=gpt-4o-mini ```
Example for local Ollama:
```env LLM_PROVIDER=ollama LLM_API_KEY=not-needed LLM_BASE_URL=http://localhost:11434/v1 LLM_MODEL=qwen3:4b ```
```bash cd api python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate pip install -r requirements.txt cd .. ```
```bash cd ui npm install cd .. ```
```bash cd api source .venv/bin/activate python server.py ```
The backend runs at `http://localhost:5001\`.
Open a second terminal:
```bash cd ui npm run dev ```
The Vite dev server runs at `http://localhost:3000\`.
- Frontend: `http://localhost:3000\`
- Backend health check: `http://localhost:5001/health\`
- API docs: `http://localhost:5001/docs\`
From the repository root:
```bash cp api/.env.example api/.env
docker compose up --build ```
This starts:
- Frontend on `http://localhost:3000\`
- Backend on `http://localhost:5001\`
- If ports `3000`, `5001`, or `5173` are already in use, stop the conflicting process before starting DocuBot.
- If LLM requests fail, confirm your `.env` values are correct for the selected provider.
- If you use Ollama with Docker, make sure Ollama is running on the host and reachable from the container.
- If Docker fails to build, rebuild with `docker compose up --build`.
- If Python packages fail to install, confirm you are using a supported Python version (3.11+).
- Open or choose an issue.
- Create a feature branch from `dev`.
- Keep the change focused on a single problem.
- Run the app locally and verify the affected workflow.
- Update docs when behavior, setup, configuration, or architecture changes.
- Open a pull request back from your feature branch into `dev`.
Documentation updates are welcome. Relevant files currently live in:
- `README.md`
- `api/.env.example`
- Agent docstrings in `api/agents/`
- Configuration in `api/config.py`
Follow the checklist below before opening your PR. Your pull request should:
- Stay focused on one issue or topic.
- Explain what changed and why.
- Include manual verification steps.
- Include screenshots or short recordings for UI changes.
- Reference the related GitHub issue when applicable.
Note: pull requests should target the `dev` branch.
- Follow the existing project structure and patterns before introducing new abstractions.
- Keep frontend changes consistent with the React + Vite + Tailwind setup already in use.
- Keep backend changes consistent with the FastAPI + LangGraph agent structure in `api`.
- Avoid unrelated refactors in the same pull request.
- Do not commit secrets, API keys, cloned repositories (tmp/repos), local `.env` files, or generated artifacts.
- Prefer clear, small commits and descriptive pull request summaries.
- Update documentation when contributor setup, behavior, environment variables, or agent prompts change.
Before submitting your pull request, confirm the following:
- You tested the affected flow locally.
- The application still starts successfully in the environment you changed.
- You removed debug code, stray logs, and commented-out experiments.
- You documented any new setup steps, environment variables, or behavior changes.
- You kept the pull request scoped to one issue or topic.
- You added screenshots for UI changes when relevant.
- You did not commit secrets, API keys, or cloned test repositories (tmp/repos folder).
- You are opening the pull request against `dev`.
If one or more of these are missing, the pull request may be sent back for changes before review.
- Base new work from `dev`.
- Open pull requests against `dev`.
- Use descriptive branch names such as `fix/mermaid-diagram-validation` or `docs/update-contributing-guide`.
- Rebase or merge the latest `dev` before opening your PR if your branch has drifted.
Thanks for contributing to DocuBot. Whether you're fixing a bug, improving the docs, adding a new agent, or refining the workflow, your work helps make the project more useful and easier to maintain.