How priyansh-tyagi/codemap works
CodeMap turns a local directory or public GitHub snapshot into a persisted dependency model, then serves graph, risk, cycle, and impact data to an interactive browser UI. The documented JS/TS and Python parsing/resolution pipelines merge into one graph; analysis and storage follow. The README documents CLI/CI checks, but those are delivery integrations rather than the central interactive product workflow. Some API, analysis, and home-page wiring is inferred only where the README or sampled callers document it; unsampled implementation details are not expanded.
Main entry points: builder.py Dependency builder · ProjectPage.jsx Project workspace · projects.py Project API · api.js API client
Components 32
Inputs and API
- Analysis input
frontend/src/pages/HomePage.jsx - FastAPI app
backend/app/main.py - Project API
backend/app/api/projects.py - File API
backend/app/api/files.py - Graph API
backend/app/api/graph.py
Repository analysis
- GitHub snapshot
backend/app/analyzer/github_fetcher.py - Repository scanner
backend/app/analyzer/scanner.py - Dependency builder
backend/app/graph/builder.py - JS parser bridge
backend/app/analyzer/parser_bridge.py - Babel parser
backend/parser/parse.js - Import classifier
backend/app/analyzer/classifier.py - JS resolver
backend/app/analyzer/resolver.py - Python parser
backend/app/analyzer/python_parser.py - Python resolver
backend/app/analyzer/python_resolver.py - Architecture classifier
backend/app/analyzer/architecture.py
Graph insights
- Analysis coordinator
backend/app/graph/analysis.py - Cycle detection
backend/app/graph/cycles.py - Change impact
backend/app/graph/impact.py - Graph metrics
backend/app/graph/metrics.py - Risk scoring
backend/app/graph/risk.py
Project persistence
- Project store
backend/app/services/store.py
Interactive interface
- API client
frontend/src/services/api.js - Project workspace
frontend/src/pages/ProjectPage.jsx - Dependency graph
frontend/src/components/GraphView.jsx - Graph filters
frontend/src/components/FilterPanel.jsx - File tree
frontend/src/components/FileTree.jsx - File details
frontend/src/components/DetailsPanel.jsx - Import details
frontend/src/components/ImportsPanel.jsx - Impact panel
frontend/src/components/ImpactPanel.jsx
Other components
- Repository user
- Local repository
- GitHub
Connections 38
- Repository user → Analysis input: submits source
- Local repository → Analysis input: provides path
- Analysis input → API client: requests analysis
- API client → Project API: REST request
- FastAPI app → Project API: mounts router
- FastAPI app → File API: mounts router
- FastAPI app → Graph API: mounts router
- Project API → GitHub snapshot: fetches snapshot
- GitHub snapshot → GitHub: downloads archive
- Project API → Dependency builder: builds graph
- Dependency builder → Repository scanner: scans files
- Dependency builder → JS parser bridge: parses JS/TS
- JS parser bridge → Babel parser: runs subprocess
- Dependency builder → Python parser: parses Python
- Dependency builder → Import classifier: classifies imports
- Dependency builder → JS resolver: resolves imports
- Dependency builder → Python resolver: resolves imports
- Dependency builder → Architecture classifier: classifies files
- Project API → Project store: saves project
- Project store → Analysis coordinator: analyzes graph
- Analysis coordinator → Cycle detection: detects cycles
- Analysis coordinator → Change impact: computes impact
- Analysis coordinator → Graph metrics: computes metrics
- Analysis coordinator → Risk scoring: scores risk
- API client → Project workspace: loads project
- Project workspace → API client: requests graph
- API client → Project API: fetches project data
- API client → Graph API: requests insights
- File API → Project store: reads project
- Graph API → Project store: reads analysis
- Project API → Project store: reads project
- Project workspace → Dependency graph: renders graph
- Project workspace → Graph filters: sets filters
- Project workspace → File tree: shows files
- Project workspace → File details: shows selection
- Project workspace → Import details: shows dependencies
- Project workspace → Impact panel: shows impact
- Graph filters → Dependency graph: narrows display