How nour-el-dandachi/gitmap works
GitMap is a web application for understanding and monitoring GitHub repositories. Users authenticate, add a repository, and receive a file map; they can also ask file-specific questions, view change notifications, and inspect defect-risk metrics. The sampled indexing service fetches and stores repository metadata, selects files for indexing, and queues embedding work. Several UI-to-API and unsampled feature connections are described only at the README level, so those edges cite the README; no unsampled implementation details are assumed.
Main entry points: MyRoutes.jsx Page routing · repo_service.py Repository indexing · models.py Repository and file records · chat_service.py File Q&A
Components 30
Web client
- Page routing
frontend/src/routes/MyRoutes.jsx - Repository screens
frontend/src/pages/my-repositories/index.jsx - Dashboard
frontend/src/pages/dashboard/index.jsx - Interactive code map
frontend/src/components/code-map/index.jsx - Notification screens
frontend/src/pages/notifications/index.jsx - Login and registration
frontend/src/pages/login/index.jsx
Identity
- Authentication endpoints
backend/users/views/auth_views.py - Authentication service
backend/users/services/auth_service.py - GitHub OAuth
backend/users/services/github_auth_service.py
Repository intelligence
- Repository endpoints
backend/repositories/views/repo_views.py - Repository indexing
backend/repositories/services/repo_service.py - Embedding task
backend/repositories/tasks.py - Content embedding
backend/repositories/services/embedding_service.py - Map generation and layout
backend/repositories/services/map_service.py - Map endpoints
backend/repositories/views/map_views.py
Insights
- File Q&A
backend/chat/services/chat_service.py - Metrics extraction task
backend/metrics/tasks.py - Code metrics extraction
backend/metrics/services/extractor.py - Defect-risk prediction
backend/ml_experiments/inference.py - Change notifications
backend/notifications/services/notification_service.py
Backend data and jobs
- User records
backend/users/models.py - Repository and file records
backend/repositories/models.py - Map positions and edges
backend/map/models.py - Chat sessions and messages
backend/chat/models.py - File metrics
backend/metrics/models.py - Notifications
backend/notifications/models.py - Background task runtime
backend/gitmap_backend/celery.py
Other components
- Repository user
- GitHub API
- OpenAI API
Connections 37
- Repository user → Page routing: uses
README.md - Page routing → Login and registration: routes to
frontend/src/routes/MyRoutes.jsx - Page routing → Dashboard: routes to
frontend/src/routes/MyRoutes.jsx - Page routing → Repository screens: routes to
frontend/src/routes/MyRoutes.jsx - Page routing → Interactive code map: routes to
frontend/src/routes/MyRoutes.jsx - Page routing → Notification screens: routes to
frontend/src/routes/MyRoutes.jsx - Login and registration → Authentication endpoints: authenticates through
README.md - Authentication endpoints → Authentication service: calls
backend/users/views/auth_views.py - Authentication service → User records: creates user
backend/users/services/auth_service.py - Authentication service → GitHub OAuth: supports OAuth
README.md - GitHub OAuth → GitHub API: requests profile
backend/users/services/github_auth_service.py - GitHub OAuth → User records: finds or creates
backend/users/services/github_auth_service.py - Repository screens → Repository endpoints: manages repositories
README.md - Repository endpoints → Repository indexing: uses
README.md - Repository indexing → GitHub API: fetches repository data
backend/repositories/services/repo_service.py - Repository indexing → Repository and file records: stores repository files
backend/repositories/services/repo_service.py - Repository indexing → Embedding task: queues embedding
backend/repositories/services/repo_service.py - Embedding task → Content embedding: runs
backend/repositories/tasks.py - Content embedding → Repository indexing: fetches file content
backend/repositories/services/embedding_service.py - Content embedding → Repository and file records: stores chunks and vectors
backend/repositories/services/embedding_service.py - Interactive code map → Map endpoints: requests map data
README.md - Map endpoints → Map generation and layout: uses
README.md - Map generation and layout → Map positions and edges: reads and writes
- Map generation and layout → Repository and file records: loads repository files
backend/repositories/services/map_service.py - Repository user → File Q&A: asks file questions
README.md - File Q&A → Chat sessions and messages: records conversation
backend/chat/services/chat_service.py - File Q&A → Repository and file records: searches file chunks
backend/chat/services/chat_service.py - File Q&A → OpenAI API: requests answer
backend/chat/services/chat_service.py - Metrics extraction task → Code metrics extraction: extracts metrics
backend/metrics/tasks.py - Metrics extraction task → Repository and file records: selects repository files
backend/metrics/tasks.py - Code metrics extraction → File metrics: persists metrics
backend/metrics/services/extractor.py - Defect-risk prediction → File metrics: uses file metrics
backend/ml_experiments/inference.py - Repository user → Notification screens: reviews changes
README.md - Notification screens → Change notifications: loads notifications
README.md - Change notifications → Notifications: manages notifications
backend/notifications/services/notification_service.py - Background task runtime → Embedding task: hosts task
backend/repositories/tasks.py - Background task runtime → Metrics extraction task: hosts task
backend/metrics/tasks.py