Skip to content

Bishal-Bhandari/Code-Smell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

145 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ AI Code Reviewer SaaS Platform

An AI-powered SaaS platform that automates Pull Request (PR) reviews using static code analysis + LLM-based insights, built with a production-grade architecture.


πŸ’‘ Features

  • βœ… Static Code Analysis (AST + Complexity)
  • πŸ€– AI Code Review (LLM suggestions)
  • πŸ”„ GitHub PR Integration (auto comments)
  • πŸ“Š Dashboard for PR analytics
  • πŸ” JWT Authentication & API Keys
  • πŸ“ˆ Usage Limits (Free / Pro tiers)
  • ⚑ Async Processing with Celery

🧱 Tech Stack

Backend

  • FastAPI
  • Celery + Redis
  • MongoDB

Frontend

  • Next.js
  • Tailwind CSS

AI & Analysis

  • OpenAI API
  • Radon (Cyclomatic Complexity)
  • Python AST

DevOps

  • Docker & Docker Compose
  • Ngrok (Webhook testing)

πŸ“ Project Structure


backend/
β”œβ”€β”€ analysis_engine/
β”œβ”€β”€ auth/
β”œβ”€β”€ celery_apps/
β”œβ”€β”€ config/
β”œβ”€β”€ db_services/
β”œβ”€β”€ github_service/
β”œβ”€β”€ schemas/
└── main.py

frontend/
docker-compose.yml


βš™οΈ Setup Instructions


πŸ”Ή 1. Clone Repository

git clone https://github.com/YOUR_USERNAME/ai-code-reviewer.git
cd ai-code-reviewer

πŸ”Ή 2. Backend Setup

Create Virtual Environment

cd backend
python -m venv .venv
source .venv/bin/activate   # Linux/Mac
.venv\Scripts\activate      # Windows

Install Dependencies

pip install -r requirements.txt

If no requirements file:

pip install fastapi uvicorn pymongo python-dotenv celery redis passlib[bcrypt] python-jose requests PyGithub radon openai

πŸ”Ή 3. Environment Variables

Create .env inside backend/:

OPENAI_API_KEY=your_openai_key
GITHUB_TOKEN=your_github_token
SECRET_KEY=your_secret_key

πŸ”Ή 4. Run Services (Docker)

From project root:

docker compose up -d

This starts:

  • MongoDB
  • Redis

πŸ”Ή 5. Run Backend

cd backend
uvicorn main:app --reload

Access API:

http://127.0.0.1:8000/docs

πŸ”Ή 6. Run Celery Worker

Open new terminal:

cd backend
celery -A celery_apps.celery_app worker --loglevel=info

πŸ”Ή 7. Frontend Setup

cd frontend
npm install
npm run dev

Access frontend:

http://localhost:3000

🌐 GitHub Webhook Setup (Ngrok)


πŸ”Ή 1. Start Ngrok

ngrok http 8000

Copy URL like:

https://abcd1234.ngrok-free.app

πŸ”Ή 2. Add Webhook in GitHub

Go to:

Repo β†’ Settings β†’ Webhooks β†’ Add Webhook

Set:

Payload URL:
https://YOUR_NGROK_URL/webhook/github

Content type:
application/json

Events:
Pull Request (opened)

πŸ”Ή 3. Secret (Optional)

Match this in backend:

GITHUB_SECRET = "webhook_secret"

πŸ”„ System Flow

GitHub PR Created
        ↓
Webhook Triggered
        ↓
FastAPI Receives Event
        ↓
Celery Task Queued (Redis)
        ↓
Fetch PR Files
        ↓
Static Analysis (AST + Radon)
        ↓
AI Review (LLM)
        ↓
Store Results (MongoDB)
        ↓
Post Comment to GitHub PR
        ↓
Display in Dashboard

🧠 Flow Diagram (Architecture)

          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          β”‚   GitHub PR   β”‚
          β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                 β”‚ Webhook
                 β–Ό
        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚   FastAPI API    β”‚
        β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚
               β–Ό
        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚   Celery      β”‚
        β”‚   Worker      β”‚
        β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
   β–Ό           β–Ό            β–Ό
Static     AI Review     GitHub API
Analysis   (LLM)         (Comments)
   β”‚           β”‚            β”‚
   β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
          β–Ό
     MongoDB
          β–Ό
     Dashboard (Next.js)

πŸ§ͺ Testing

API Testing

  • Swagger UI β†’ /docs

Auth Testing

  • Signup β†’ Login β†’ Use JWT

Webhook Testing

  • Use Ngrok
  • Create PR β†’ see logs + comments

🧩 Key Endpoints

Endpoint Description
POST /auth/signup Register user
POST /auth/login Login
POST /auth/register-repo Add repo
GET /dashboard/my-prs User PRs
GET /dashboard/analytics Usage stats
POST /webhook/github GitHub webhook

πŸš€ Future Improvements

  • Multi-tenant support
  • CI/CD pipeline
  • Kubernetes deployment
  • Advanced ML risk scoring
  • Team collaboration features

πŸ‘¨β€πŸ’» Author

Bishal Bhandari


⭐ If you like this project

Give it a star ⭐ and share feedback!

About

AI Code Review & Technical Debt Analyzer

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors