How akhil80git/scangithubrepo works
This web IDE takes a user from GitHub account/repository discovery through tree browsing and file loading into an editable workspace, with optional Gemini-assisted repository documentation and chat/code generation. src/App.tsx coordinates application state and invokes the API client; the Express server proxies GitHub and Gemini, while the client can fall back to direct external APIs. UI component interactions and several server details are inferred only from the README and partial excerpts, so uncertain wiring is omitted.
Main entry points: App.tsx App coordinator · apiClient.ts API client · server.ts Express API · CodeWorkspace.tsx Code and docs
Components 14
Repository exploration
- Repository browser
src/components/RepoSidebar.tsx - File tree
src/components/FileTreeSidebar.tsx - Ignore matcher
src/utils/gitignore.ts
Code workspace
- App coordinator
src/App.tsx - Code and docs
src/components/CodeWorkspace.tsx - Browser storage
AI assistant
- Chat and studio
src/components/ChatPanel.tsx - Token tracker
src/components/TokenSidebar.tsx - Payload estimates
src/utils/tokenCalc.ts
API and integrations
- API client
src/services/apiClient.ts - Express API
server.ts - GitHub API
- Gemini model
Other components
- User
Connections 21
- User → Repository browser: selects repository
- User → File tree: browses files
- User → Code and docs: edits and scans
- User → Chat and studio: prompts assistant
- Repository browser → App coordinator: repository selection
- File tree → App coordinator: file selection
- Code and docs → App coordinator: workspace actions
- Chat and studio → App coordinator: chat and code actions
- App coordinator → API client: requests repositories, tree, files
- API client → Express API: proxies API requests
- API client → GitHub API: direct API fallback
- Express API → GitHub API: fetches repo data
- API client → Ignore matcher: parses ignore rules
- Express API → Gemini model: streams model generation
- API client → Gemini model: direct stream fallback
- App coordinator → Browser storage: stores username
- App coordinator → Payload estimates: estimates prompt usage
- Token tracker → Payload estimates: calculates message sizes
- App coordinator → Code and docs: provides active file and docs
- App coordinator → Chat and studio: provides messages and file context
- App coordinator → Token tracker: provides conversation usage