🏆 The Professional Tool for Unlocking Codebase Narratives - RepoVision provides a high-performance, non-blocking analysis framework for turning Git history into actionable project management intelligence.
RepoVision was engineered to overcome the inherent challenges of analyzing and understanding complex Git repositories. Unlike traditional, slow tools, this platform uses an asynchronous job system and modern web technologies to deliver comprehensive, highly-filterable metrics with smooth performance. The architecture leverages Svelte 5 Runes for frontend reactivity and a modular data pipeline.
RepoVision's backend is architected to handle heavy Git operations without freezing the server, ensuring maximum throughput and responsiveness for all users.
child_process.execSync (synchronous) for commands like git clone halts the entire Node.js single thread during long I/O operations (cloning, logging).src/lib/server/git-parser.ts use asynchronous child_process.exec. This pattern frees the Node.js event loop to process concurrent user requests while Git runs in a background subprocess./api/analyze immediately returns a unique jobId (HTTP 202 - Accepted), freeing the client to proceed without waiting./api/status/[jobId] using asynchronous GET requests. This endpoint retrieves the current progress and stage from the in-memory jobStore/+server.ts, RepoVision/src/lib/server/jobs.ts]..cache directory with a 24-hour Time-To-Live (TTL), guaranteeing instantaneous reloading for repeat visitors.The src/lib/stores/analytics.ts module houses a comprehensive suite of metrics designed for project health assessment.
toFixed(2) to ensure a clean, professional display with a maximum of two decimal places, avoiding messy, overly long numbers in the UI.The AdvancedSearch component (backed by src/lib/stores/filters.ts) provides precise tools for dissecting the commit history.
feat for new features, fix for bug patches, refactor, etc.).additions + deletions). Users can set both a minimum and maximum line count.ThemeSwitcher, SettingsPanel, AccessibilityPanel) are configured using local $state in their respective components, ensuring reliable click-and-toggle functionality across all routes after moving the Header to the root layout.RepoVision is built on a modern, high-performance stack:
| Component | File Path | Role and Key Technologies |
|---|---|---|
| Global Layout | src/routes/+layout.svelte |
Defines structural elements (Header, Footer, <main>), manages global event binding. |
| Server Git Core | src/lib/server/git-parser.ts |
Asynchronous Git Operations (exec), controls cloning and raw data extraction. |
| API Analysis | src/routes/api/analyze/+server.ts |
Initiates jobs and handles cache lookups/misses. |
| API Status | src/routes/api/status/[jobId]/+server.ts |
Endpoint for client polling, retrieves status from jobStore/+server.ts]. |
| Analytics Store | src/lib/stores/analytics.ts |
Centralized data processing: Bus Factor, Code Quality calculation. |
| Filtering Store | src/lib/stores/filters.ts |
Manages global filter state and implements all commit/contributor filtering logic. |
| Graphing Logic | src/lib/d3-graph.ts |
Uses Dagre for layered graph layout calculation, optimizing node positioning for visualization. |
| Design Tokens | tailwind.config.js & src/app.css |
Implements HSL color variables for dynamic theming (e.g., Ocean, Sunset, Midnight) and Tailwind utility mapping. |
| Dependencies | package.json |
Core dependencies include svelte, sveltejs/kit, typescript, dagre, d3.js (implicit via dagre), and development tools like prettier. |
You need Node.js (18 or later) and Git installed on your system.
# 1. Clone the repository
git clone [repo-url] RepoVision
cd RepoVision
# 2. Install dependencies
npm install
# 3. Run the development server
npm run dev
# Access the application at: http://localhost:5173/