How sahastrawin/ai-research-studio works
AI Research & Learning Studio is a browser-based research and learning product backed by a single Express application. Users authenticate, choose a learning tool, submit source material or a question, and receive generated or streamed results; summaries and conversations can be retained for later browsing. The frontend initializes feature modules and calls the API, whose routes dispatch to controllers, services, providers, and models. The README documents additional generators and capabilities beyond the sampled implementation; their paths are shown where supported by the tree, but unsampled internal wiring is kept conservative.
Main entry points: models Data models · app.js Studio UI · index.js API routes · summarizeController.js Summary controller
Components 25
Browser app
- Studio UI
public/js/app.js - View router
public/js/core/router.js - Learning modules
public/js/modules - API client
public/js/utils/api.js - SSE reader
public/js/utils/sse.js
HTTP application
- Express app
server/src/app.js - API routes
server/src/routes/index.js - AI routes
server/src/routes/aiRoutes.js - AI controller
server/src/controllers/aiController.js - Summary routes
server/src/routes/summarizeRoutes.js - Summary controller
server/src/controllers/summarizeController.js - Generator routes
server/src/routes/generatorRoutes.js - Generator controllers
server/src/controllers/generatorControllers.js - Coding controller
server/src/controllers/codingController.js - Auth endpoints
server/src/controllers/authController.js
Feature services
- AI service
server/src/services/aiService.js - Summarizer
server/src/services/summarizerService.js - Coding assistant
server/src/services/codingAssistantService.js - Learning generators
server/src/services
Providers and sources
- Content extraction
server/src/services - Provider registry
server/src/providers/providerRegistry.js - AI providers
server/src/providers
Persistence
- Data models
server/src/models - SQLite database
server/src/config/db.js
Other components
- Learner
Connections 29
- Learner → Studio UI: uses
- Studio UI → View router: initializes
- Studio UI → Learning modules: initializes
- Studio UI → API client: requests
- Learning modules → API client: calls API
- Learning modules → SSE reader: reads streams
- API client → Express app: HTTP requests
- SSE reader → Express app: reads stream
- Express app → API routes: mounts
- API routes → AI routes: dispatches
- API routes → Summary routes: dispatches
- API routes → Generator routes: dispatches
- AI routes → AI controller: dispatches
- Summary routes → Summary controller: dispatches
- Generator routes → Generator controllers: dispatches
- AI controller → AI service: calls
- AI controller → Data models: persists chat
- AI service → Provider registry: selects provider
- Provider registry → AI providers: dispatches
- Summary controller → Content extraction: extracts input
- Summary controller → Summarizer: summarizes text
- Summary controller → Data models: saves artifact
- Generator controllers → Learning generators: generates content
- Generator controllers → Data models: saves results
- Coding controller → Coding assistant: requests help
- Coding controller → Data models: persists thread
- Coding assistant → Provider registry: uses provider
- Auth endpoints → Data models: reads and writes
- Data models → SQLite database: reads and writes