How jaharcla/studyai works
StudyAI is a local, single-user study workspace for AI tutoring, course materials, interactive scientific canvases, and structured learning activities. The visible workflow centers on a learner using the workspace to study a lesson, work with documents or canvas content, and practice activities; the README also identifies Ollama as required for AI tutoring. The graph preserves these product areas and key internal layers. Some server routes and orchestration were not sampled, so unsupported client-to-server connections are omitted.
Main entry points: App.tsx Workspace UI · model.ts Canvas Model · CanvasStudio.tsx Canvas Studio · service.ts Activity Service
Components 24
Study Workspace
- Workspace UI
src/App.tsx - Study Panel
src/learning/StudyPanel.tsx - API Client
src/api.ts
Scientific Canvas
- Canvas Studio
src/canvas/CanvasStudio.tsx - Canvas Model
src/canvas/model.ts - Scene Geometry
src/canvas/scene.ts - Math Workspace
src/canvas/math-workspace.ts - Canvas Actions
src/canvas/ai/canvas-actions.ts
Course Documents
- Document Library
src/components/document-intelligence/DocumentLibrary.tsx - Document Viewer
src/components/document-intelligence/DocumentViewer.tsx - Document API
src/components/document-intelligence/api.ts
Learning Activities
- Activity Library
src/learning/ActivityLibrary.tsx - Activity Task
src/learning/ActivityTaskPanel.tsx - Activity Contracts
src/learning/activities/contracts.ts
Server Intelligence
- Canvas Persistence
server/canvas-persistence/service.ts - Canvas Analysis
server/canvas-analysis/contract.ts - Canvas Intelligence
server/canvas-intelligence/service.ts - Document Service
server/document-intelligence/service.ts - Text Extraction
server/document-intelligence/extract.ts - Document Retrieval
server/document-intelligence/retrieval-tool.ts - Activity Service
server/learning/activities/service.ts - Learning Service
server/learning/service.ts
Other components
- Learner
- Ollama
Connections 25
- Learner → Workspace UI: uses
- Workspace UI → Study Panel: opens
src/App.tsx - Workspace UI → Activity Library: opens
src/App.tsx - Workspace UI → Canvas Studio: renders
src/App.tsx - Workspace UI → Document API: imports
src/App.tsx - Activity Library → API Client: uses
src/learning/ActivityLibrary.tsx - Activity Library → Activity Contracts: uses
src/learning/ActivityLibrary.tsx - Activity Task → API Client: uses
src/learning/ActivityTaskPanel.tsx - Activity Task → Activity Contracts: uses
src/learning/ActivityTaskPanel.tsx - Canvas Studio → Scene Geometry: resolves scenes
src/canvas/CanvasStudio.tsx - Canvas Studio → Canvas Actions: applies proposals
src/canvas/CanvasStudio.tsx - Canvas Studio → Canvas Model: uses
src/canvas/CanvasStudio.tsx - Scene Geometry → Canvas Model: uses
src/canvas/scene.ts - Math Workspace → Canvas Model: uses
src/canvas/math-workspace.ts - Canvas Persistence → Canvas Model: parses
server/canvas-persistence/service.ts - Canvas Intelligence → Canvas Analysis: supplies analysis
server/canvas-analysis/producer.ts - Canvas Intelligence → Ollama: requests inference
- Document Library → Document API: fetches data
src/components/document-intelligence/DocumentLibrary.tsx - Document Viewer → Document API: fetches data
src/components/document-intelligence/DocumentViewer.tsx - Document Service → Text Extraction: extracts text
server/document-intelligence/service.ts - Document Retrieval → Document Service: retrieves from
server/document-intelligence/retrieval-tool.ts - Activity Service → Activity Contracts: validates
server/learning/activities/service.ts - Activity Service → Canvas Persistence: saves canvas
server/learning/activities/service.ts - Activity Service → Learning Service: uses
server/learning/activities/service.ts - Learning Service → Canvas Model: parses canvas
server/learning/service.ts