Architecture¶

This document provides an overview of the IncLearn system architecture.
High-Level Architecture¶
IncLearn follows a modern web application architecture:
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Web UI │────▶│ Server │────▶│ Database │
│ (Next.js) │ │ (FastAPI) │ │ (CosmosDB) │
└─────────────┘ └─────────────┘ └─────────────┘
│
▼
┌─────────────┐
│ Azure AI │
│ Services │
└─────────────┘
Components¶
Web Frontend¶
- Framework: Next.js (React)
- Language: TypeScript
- Styling: Material UI
- State Management: Jotai
Backend Server¶
- Framework: FastAPI
- Language: Python 3.13+
- ORM: SQLAlchemy
- Authentication: OAuth2 / JWT
Database¶
- Type: Azure CosmosDB for PostgreSQL
- Purpose: Store users, courses, organizations, teams
AI Services¶
- Azure AI Foundry - Content evaluation
- Azure Cognitive Services - Captioning, transcription
- Azure AI Agent - Content processing and accessibility evaluation
Key Features¶
Accessibility Automation¶
- User publishes content
- Server triggers content accessibility service, which invokes Azure AI Agent
- AI evaluates and generates alt text, captions, transcripts
- Results stored in database
- Accessibility report stored in database with metadata
Content Management¶
- Course structure: Organization → Course → Module → Chapter
- Rich content types with metadata
User Management¶
- Role-based access control (RBAC)
- Organization and team hierarchy
- Learner profiles with preferences
API¶
The backend exposes a RESTful API with OpenAPI documentation.
See API for details.
Security¶
- JWT-based authentication
- Role-based access control
- Input validation
- SQL injection prevention
- XSS protection
Scalability¶
- Stateless backend
- Database connection pooling
- CDN for static assets
- AI services scale automatically