[Insert a 1-sentence catchy pitch, e.g., Next-Generation Automated Documentation Powered by AI]
AutoDoc-AI is a startup concept and minimum viable product (MVP) developed to streamline and automate [mention what it documents, e.g., medical records, coding documentation, business reports].
This project was developed as part of the Engineering Entrepreneurs and IPR curriculum to explore not just technical implementation, but product-market fit, business viability, and intellectual property considerations.
The Problem: [Describe the pain point in 1-2 sentences. E.g., Professionals spend 30% of their time formatting and generating routine documents, leading to lost productivity and human error.]
The Solution: AutoDoc-AI leverages artificial intelligence to [explain how it solves the problem, e.g., instantly generate perfectly formatted reports from raw data inputs], saving time and standardizing outputs.
- 🤖 AI-Powered Generation: [Briefly describe the core AI feature].
- ⚡ Rapid Prototyping: UI and core logic accelerated using Lovable.ai.
- 📊 Export & Integration: [Mention if it exports to PDF, Word, etc.].
- 🔒 IPR Compliant: Designed with data privacy and intellectual property standards in mind.
- Frontend/UI Generation: Lovable.ai
- Framework: [e.g., React, Next.js, or HTML/CSS]
- AI/Backend: [e.g., OpenAI API, Node.js]
To maintain a professional standard, this repository contains both the technical prototype and our startup documentation:
📦 AutoDoc-AI
┣ 📂 src # Source code generated via Lovable.ai
┣ 📂 docs # Project reports, business plans, and IPR research
┣ 📂 presentation # Pitch deck and presentation materials
┣ 📂 assets # Screenshots, logos, and UI diagrams
┗ 📜 README.md # Project overview
# AutoDoc AI: Code to Clarity
website for AI Documentation Genarater Tool (AotoDoc AI) a 100million startup idea web site must be premium+,pro, world class multipurpose and other would class suggestions this is just my suggestion or i try to make with limited knowledge {MAKE MY PROJECT FULLLY FUCTIONAL BACKEND AND FRIENDED, READY TO LOUNGE,PREMUM+,PRO+ C:\Users\MOHAMMED MUNEEB PT\OneDrive\Desktop\Works & Mattirals\html\AutoDoc AI(__pycache__,code_analyzer,venv ) CODES IN AUTODOC AI :# ai_engine.py from langchain_openai import ChatOpenAI from langchain_core.prompts import ChatPromptTemplate from langchain_core.messages import SystemMessage class CodeGraphAnalyzer: def __init__(self, repo_path): # <-- Fixed # celery_app.py from celery import Celery celery_app = Celery( "autodoc_ai", broker="redis://localhost:6379/0", backend="redis://localhost:6379/0" ) celery_app.conf.task_routes = { "tasks.analyze_repo_task": {"queue": "celery"}, } # Import tasks so Celery registers them <-- This must be commented! import tasks self.repo_path = repo_path def generate_readme(self) -> str: prompt = ChatPromptTemplate.from_messages([ ("system", "You are a Senior Software Architect. Use the provided Code AST metadata to write a world-class README.md."), ("user", "Project Structure: {context}\n\nProvide: 1. Overview 2. Architecture 3. API Reference 4. Mermaid.js Flowchart") ]) chain = prompt | self.llm response = chain.invoke({"context": self.code_context}) return response.content # analyzer.py import ast import os class CodeGraphAnalyzer: def __init__(self, repo_path): # <-- Fixed self.repo_path = repo_path def get_full_analysis(self): analysis = [] for root, _, files in os.walk(self.repo_path): for file in files: if file.endswith(".py"): analysis.append(self._parse_file(os.path.join(root, file))) return analysis def _parse_file(self, path): with open(path, "r") as f: tree = ast.parse(f.read()) return { "filename": os.path.basename(path), "classes": [n.name for n in tree.body if isinstance(n, ast.ClassDef)], "functions": [ {"name": n.name, "args": [a.arg for a in n.args.args]} for n in tree.body if isinstance(n, ast.FunctionDef) ], "imports": [n.names[0].name for n in tree.body if isinstance(n, ast.Import)] } # doc_generator.py class CodeGraphAnalyzer: def __init__(self, repo_path): # <-- Fixed self.repo_path = repo_path def generate_readme(self): # For now, just return a simple string return "# Auto-generated README\n\n" + str(self.code_data) <--index.html-->
AutoDocAI
Demo Architecture Pricing
Connect GitHub
AutoDoc AI Core v2.0 is Live
Ship software.
We'll write the docs.
The world's first AI-native documentation engine. Connect your repository and generate READMEs, API references, and system architecture diagrams instantly.
Generate Docs
~/projects/autodoc $ autodoc analyze init
Built with enterprise-grade infrastructure
How AutoDoc AI Works
A robust, scalable pipeline transforming raw code into structured knowledge.
1. Repo Ingestion
2. AST Parsing
3. Vector Embeddings
4. RAG + LLM
5. Docs Output
Simple, transparent pricing
Start for free, upgrade when you need scale.
Hobby
$0/mo
1 GitHub Repository
Basic README Generation
Community Support
Get Started
MOST POPULAR
Pro
$15/mo
Unlimited Private Repos
Full API & Arch Docs
CI/CD Webhook Sync
Priority Email Support
Upgrade to Pro
Enterprise
Custom
SOC2 Compliance
Private VPC Deployment
Custom Fine-Tuned Models
Dedicated Success Manager
Contact Sales
AutoDocAI
Automating software documentation for modern engineering teams worldwide.
Product
Features Integrations Pricing Changelog
Resources
Documentation API Reference Blog Community
Company
About Careers Privacy Policy Terms of Service
© 2026 AutoDoc AI. Developed by Mohammed Muneeb PT.
# main.py from fastapi import FastAPI from fastapi import WebSocket, WebSocketDisconnect from pydantic import BaseModel from celery.result import AsyncResult from celery_app import celery_app from tasks import analyze_repo_task import uuid app = FastAPI() class AnalyzeRequest(BaseModel): repo_url: str @app.post("/analyze") def analyze(request: AnalyzeRequest): task_id = str(uuid.uuid4()) # Sending both repo_url and task_id to the Celery worker analyze_repo_task.delay(request.repo_url, task_id) return { "task_id": task_id, "status": "Accepted", "message": "Analysis started." } @app.get("/status/{task_id}") def get_task_status(task_id: str): task_result = AsyncResult(task_id, app=celery_app) return { "task_id": task_id, "status": task_result.status, "result": task_result.result } # Keep your existing /analyze and /status endpoints @app.websocket("/ws/{task_id}") async def websocket_endpoint(websocket: WebSocket, task_id: str): await websocket.accept() try: # In a full setup, you would listen to a Redis channel here # For now, let's send a confirmation await websocket.send_text(f"[*] Connection established for Task: {task_id}") # Here you would implement logic to stream logs from Redis # while the Celery task is running. except WebSocketDisconnect: print(f"Client disconnected from task {task_id}") REQUIREMENT.TXT annotated-doc==0.0.4 annotated-types==0.7.0 anyio==4.12.1 fastapi==0.135.1 gitdb==4.0.12 GitPython==3.1.46 idna==3.11 pydantic==2.12.5 pydantic_core==2.41.5 smmap==5.0.3 starlette==0.52.1 typing-inspection==0.4.2 typing_extensions==4.15.0 unicorn==2.1.4 fastapi>=0.100.0 uvicorn>=0.23.0 celery>=5.3.0 redis>=5.0.0 pydantic>=2.0.0 GitPython>=3.1.0 langchain-openai>=0.0.8 langchain-core>=0.1.23 # schemas.py from pydantic import BaseModel class RepoRequest(BaseModel): repo_url: str class TaskStatus(BaseModel): task_id: str status: str message: str # tasks.py import os import shutil import git import redis from celery_app import celery_app from analyzer import CodeGraphAnalyzer # <-- Fixed import path from doc_generator import DocGenerator @celery_app.task(name="analyze_repo_task") def analyze_repo_task(repo_url: str, task_id: str): # <-- Accept task_id from FastAPI """ Analyze a repository and generate README documentation. """ local_path = os.path.join("./temp", task_id) os.makedirs(local_path, exist_ok=True) try: git.Repo.clone_from(repo_url, local_path) analyzer = CodeGraphAnalyzer(local_path) code_data = analyzer.get_full_analysis() # Make sure DocGenerator's __init__ matches what you pass here generator = DocGenerator(code_data) readme_content = generator.generate_readme() os.makedirs("./output", exist_ok=True) output_file = os.path.join("./output", f"{task_id}.md") with open(output_file, "w", encoding="utf-8") as f: f.write(readme_content) return { "task_id": task_id, "output_file": output_file, "message": "Analysis completed successfully" } finally: if os.path.exists(local_path): shutil.rmtree(local_path) r = redis.Redis(host='localhost', port=6379, db=1) @celery_app.task(bind=True) def analyze_repo_task(self, repo_url: str, task_id: str): r.rpush(task_id, "Cloning repository...") # ... do cloning r.rpush(task_id, "Building AST...") # ... do analysis r.rpush(task_id, "Generating README...") # ... final step C:\Users\MOHAMMED MUNEEB PT\OneDrive\Desktop\Works & Mattirals\html\AutoDoc AI\code_analyzer __init__.py EMPTY # code_graph_analyzer.py class CodeGraphAnalyzer: def __init__(self, repo_path): self.repo_path = repo_path def get_full_analysis(self): # your logic here return {"files": [], "functions": [], "classes": []} }
This project was built with [Lovable](https://lovable.dev).
**Live app**: https://autodoc-ai.lovable.app
## Build with Lovable
Continue developing this project in the [Lovable editor](https://lovable.dev/projects/53c0d838-3711-4647-99d6-cc0f6677f500).
- **Ship faster**: describe what you want to build and Lovable handles the code.
- **Stay in sync**: every change made in Lovable is committed straight to this repository.
- **Full ownership**: this code is yours. Push to `main` on GitHub and your changes sync back into Lovable, ready for your next prompt.
## Development
Prefer working locally? You need Node.js and npm — [install with nvm](https://github.com/nvm-sh/nvm#installing-and-updating).
```sh
git clone <this-repository-url>
cd <repository-name>
npm i
npm run dev