How ganesh714/arc works
Arqulat Arc is a collaborative diagramming workspace. Users create or open projects and diagram files, edit diagrams on a canvas, and save versioned work; they can also collaborate live, use AI-assisted design, and import or export diagrams. The frontend and Spring backend divide editing/UI from project, file, AI, and collaboration services. The tree and README establish major capabilities; sampled code confirms file version handling, JWT checks, export rendering, and AI provider fallback, but not every frontend-to-API call.
Main entry points: App.tsx App shell · FileService.java File and version service · Dashboard.tsx Project dashboard · Canvas.tsx Diagram canvas
Components 29
Workspace frontend
- App shell
frontend/src/App.tsx - Project dashboard
frontend/src/features/dashboard/Dashboard.tsx - Diagram state
frontend/src/context/DiagramContext.tsx - Diagram canvas
frontend/src/features/diagram/components/Canvas.tsx - Session state
frontend/src/context/AuthContext.tsx - Collaboration client
frontend/src/context/CollaborationContext.tsx - Diagram import
frontend/src/components/ui/ImportModal.tsx - Diagram export
frontend/src/utils/exportEngine.ts - SVG export
frontend/src/utils/svgExportEngine.ts
Projects and files
- Project API
backend/src/main/java/com/arqulat/loom_backend/controller/ProjectController.java - Project service
backend/src/main/java/com/arqulat/loom_backend/service/ProjectService.java - Diagram file API
backend/src/main/java/com/arqulat/loom_backend/controller/FileController.java - File and version service
backend/src/main/java/com/arqulat/loom_backend/service/FileService.java - Project repository
backend/src/main/java/com/arqulat/loom_backend/repository/ProjectRepository.java - File repositories
backend/src/main/java/com/arqulat/loom_backend/repository/DiagramFileRepository.java - Version repository
backend/src/main/java/com/arqulat/loom_backend/repository/DiagramFileVersionRepository.java - Persistent data
backend/src/main/java/com/arqulat/loom_backend/model/DiagramFile.java
Live collaboration
- Collaboration endpoint
backend/src/main/java/com/arqulat/loom_backend/controller/CollaborationController.java - WebSocket broker
backend/src/main/java/com/arqulat/loom_backend/config/WebSocketConfig.java
AI design
- AI endpoint
backend/src/main/java/com/arqulat/loom_backend/controller/AIController.java - AI service
backend/src/main/java/com/arqulat/loom_backend/service/AIService.java - Provider fallback
backend/src/main/java/com/arqulat/loom_backend/service/ai/AIFallbackRingManager.java - Agent orchestration
backend/src/main/java/com/arqulat/loom_backend/service/ai/AgentOrchestrator.java - AI providers
backend/src/main/java/com/arqulat/loom_backend/service/ai/providers/AIProvider.java
Backend platform
- JWT validation
backend/src/main/java/com/arqulat/loom_backend/security/JwtService.java - Redis blacklist
- Token blacklist data
Other components
- Workspace user
- AI provider services
Connections 35
- Workspace user → App shell: uses workspace
- App shell → Session state: loads session
- App shell → Project dashboard: opens dashboard
- App shell → Diagram canvas: opens editor
- Diagram canvas → Diagram state: reads and updates
- Workspace user → Project dashboard: organizes projects
- Project dashboard → Project API: manages projects
- Project API → Project service: delegates
- Project service → Project repository: reads and writes
- Workspace user → Diagram canvas: edits diagram
- Workspace user → Diagram import: imports diagram
- Workspace user → Diagram export: exports diagram
- Diagram export → SVG export: uses SVG renderer
- Diagram export → Diagram canvas: renders shapes
- Project dashboard → Diagram file API: manages files
- Diagram file API → File and version service: delegates
- File and version service → Project service: checks ownership
- File and version service → File repositories: reads and writes
- File and version service → Version repository: reads and writes versions
- File repositories → Persistent data: persists files
- Version repository → Persistent data: persists snapshots
- Workspace user → Collaboration client: joins collaboration
- Collaboration client → Collaboration endpoint: sends shared actions
- Collaboration endpoint → WebSocket broker: dispatches messages
- WebSocket broker → Collaboration client: broadcasts updates
- Workspace user → AI endpoint: requests AI design
- AI endpoint → AI service: delegates generation
- AI service → Provider fallback: selects provider
- Provider fallback → AI providers: tries providers
- AI providers → AI provider services: requests generation
- AI endpoint → Agent orchestration: starts agent run
- Agent orchestration → Provider fallback: requests agent passes
- Session state → JWT validation: authenticates requests
- JWT validation → Redis blacklist: checks blacklist
- JWT validation → Token blacklist data: falls back to blacklist