Skip to content

Architecture

High-Level 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

  1. User publishes content
  2. Server triggers content accessibility service, which invokes Azure AI Agent
  3. AI evaluates and generates alt text, captions, transcripts
  4. Results stored in database
  5. 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