Turn idea into impact faster — Understand any codebase in 2 minutes, not 2 weeks.
RepoSense is an AI-powered repository onboarding tool that analyzes GitHub repositories and generates comprehensive onboarding reports using IBM Bob. Built for the IBM Bob Hackathon.
Developers waste weeks understanding new codebases:
- Reading scattered documentation
- Tracing data flows manually
- Finding the right files to start with
- Understanding architecture patterns
RepoSense solves this in 2 minutes.
RepoSense leverages all IBM Bob modes for comprehensive analysis:
- Plan Mode — Analyzes repository architecture and creates structured onboarding plans
- Ask Mode — Answers questions about the codebase with full context
- Code Mode — Generates actual code fixes and improvements
- Orchestrator Mode — Chains all modes together for complete task automation
- Project Overview — What it does, tech stack, complexity rating
- Architecture Analysis — Design patterns, data flow, folder structure
- Key Files Guide — Ordered list of files to read first with explanations
- Onboarding Steps — Step-by-step checklist generated by Bob
- Gotchas & Warnings — Common pitfalls and important notes
- Interactive Q&A — Ask Bob anything about the codebase
- Code Kickstarter — Bob finds an issue, writes the fix, explains it
- Export — Download your full onboarding guide as Markdown
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ React │─────▶│ FastAPI │─────▶│ IBM Bob │
│ Frontend │ │ Backend │ │ API │
└─────────────┘ └──────────────┘ └─────────────┘
│
▼
┌──────────────┐
│ GitHub API │
└──────────────┘
Frontend:
- React 18 with Hooks
- Tailwind CSS for styling
- Vite for build tooling
Backend:
- Python 3.11+
- FastAPI for REST API
- httpx for async HTTP
- Pydantic for validation
AI Integration:
- IBM Bob API (all 4 modes)
- Custom prompt engineering
- Context-aware responses
- Node.js 18+ and npm
- Python 3.11+
- IBM Bob API key (or use mock mode)
cd reposense/backend
# Install dependencies
pip install -r requirements.txt
# Configure environment
cp .env.example .env
# Edit .env and add your IBM_BOB_API_KEY
# Or set IBM_BOB_API_KEY=mock for development
# Run server
python server.pyBackend runs on http://localhost:8000
cd reposense/frontend
# Install dependencies
npm install
# Configure environment
cp .env.example .env
# Edit .env if needed (default: http://localhost:8000)
# Run development server
npm run devFrontend runs on http://localhost:5173
For development and testing without IBM Bob API access:
Backend:
# In backend/.env
IBM_BOB_API_KEY=mockFrontend:
# In frontend/.env
VITE_MOCK_MODE=false # Keep false, backend handles mockingMock mode returns realistic sample data for expressjs/express repository.
- Open the app at
http://localhost:5173 - Paste a GitHub URL (e.g.,
https://github.com/expressjs/express) - Click "Analyze repo" - Bob reads the entire codebase
- Explore the report:
- Overview tab: Architecture, key files, onboarding steps
- Coding tab: Bob finds an issue and writes the fix
- Chat tab: Ask Bob questions about the code
- Export as Markdown
https://github.com/expressjs/express- Node.js web frameworkhttps://github.com/facebook/react- React libraryhttps://github.com/fastapi/fastapi- Python web framework
Analyzes a GitHub repository and returns complete onboarding report.
Request:
{
"github_url": "https://github.com/owner/repo"
}Response:
{
"project_name": "express",
"what_it_does": "Fast, unopinionated web framework for Node.js",
"architecture_type": "MVC",
"tech_stack": [...],
"key_files": [...],
"onboarding_steps": [...],
"gotchas": [...],
"bob_modes_used": ["Plan", "Ask"]
}Ask questions about the repository.
Request:
{
"github_url": "https://github.com/owner/repo",
"question": "How does routing work?",
"history": []
}Generate code for a task (Orchestrator mode).
Request:
{
"github_url": "https://github.com/owner/repo"
}Export onboarding report as Markdown.
Health check endpoint.
RepoSense demonstrates complete IBM Bob integration across all modes:
# Used for repository analysis
response = bob_client.analyze(repo_context)
# Returns: architecture, tech stack, onboarding plan# Used for Q&A and explanations
response = bob_client.ask(repo_context, question, history)
# Returns: contextual answers with file references# Used for code generation
response = bob_client.generate_code(repo_context, plan)
# Returns: actual code with diffs# Chains all modes together
response = bob_client.orchestrate(repo_context)
# Pipeline: find_issue → plan → code → explain- Full Bob Utilization - Uses all 4 modes, not just one
- Real Context - Sends actual repository structure to Bob
- No Hallucinations - Bob only references real files
- Production Ready - Error handling, retries, timeouts
- Extensible - Easy to add more Bob-powered features
Theme: "Turn idea into impact faster"
RepoSense embodies this by:
- ✅ Reducing onboarding time from weeks to minutes
- ✅ Accelerating contribution with AI-generated code
- ✅ Lowering barriers for new contributors
- ✅ Increasing impact by helping developers start faster
reposense/
├── backend/
│ ├── server.py # FastAPI application
│ ├── github_parser.py # GitHub API integration
│ ├── bob_client.py # IBM Bob API client
│ ├── prompts.py # Prompt engineering
│ └── requirements.txt # Python dependencies
├── frontend/
│ ├── src/
│ │ ├── App.jsx # Main React component
│ │ └── services/
│ │ └── api.js # API client
│ ├── package.json # Node dependencies
│ └── vite.config.js # Vite configuration
└── README.md
# Backend tests
cd backend
pytest
# Frontend tests
cd frontend
npm test# Backend
cd backend
pip install -r requirements.txt
# Frontend
cd frontend
npm run build
# Output in frontend/dist/# Set environment variables
IBM_BOB_API_KEY=your_key
PORT=8000
ALLOWED_ORIGINS=https://your-frontend.vercel.app# Set environment variables
VITE_API_URL=https://your-backend.railway.app| Variable | Description | Required |
|---|---|---|
IBM_BOB_API_KEY |
IBM Bob API key (or "mock") | Yes |
IBM_BOB_BASE_URL |
Bob API base URL | No |
PORT |
Server port | No (default: 8000) |
ALLOWED_ORIGINS |
CORS origins | No |
| Variable | Description | Required |
|---|---|---|
VITE_API_URL |
Backend API URL | No (default: localhost:8000) |
VITE_MOCK_MODE |
Enable mock mode | No (default: false) |
This is a hackathon project, but contributions are welcome!
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
MIT License - see LICENSE file for details
- Ranveer Kumar | Team Apocalypto
- Built for the IBM Bob Hackathon
- IBM Bob - For the amazing AI capabilities
- GitHub - For the public API
- FastAPI - For the excellent Python framework
- React - For the frontend framework
For questions or issues, open a GitHub issue.
Made with ❤️ and IBM Bob