Adaptive learning platform for students with special needs
This is a monorepo managed with pnpm workspaces and Turborepo for efficient build caching and task execution## π Documentation
- Quick Start Guide - Get started quickly
- Project Structure - Architecture overview
- TypeScript Configuration - Complete TypeScript setup guide
- TypeScript Summary - Quick reference
- Terraform Infrastructure - AWS infrastructure documentation
- Terraform Setup Guide - Step-by-step deployment
- CI/CD Pipeline - Complete CI/CD documentation
- CI/CD Quick Reference - Quick reference guide
- Secrets Setup - GitHub secrets configuration
- Turborepo Documentation
- pnpm Workspaces
- FastAPI Documentation
- React Documentation
- TypeScript Handbook## Structure
aivo-ai-platform/
βββ apps/
β βββ webapp-iep/ # IEP Management Web Application (Phase 1)
β βββ webapp-learner/ # Student Learning Web Application (Phase 2)
βββ services/
β βββ api-gateway/ # FastAPI Gateway Service
β βββ auth-service/ # Authentication Microservice
βββ packages/
β βββ ui/ # Shared React Component Library
β βββ types/ # Shared TypeScript Types
βββ infra/
βββ terraform/ # Infrastructure as Code
- Node.js >= 18.0.0
- pnpm >= 10.0.0 (specifically pnpm@10.18.2)
- Python >= 3.11 (for backend services)
- PostgreSQL >= 14.0 (primary database)
- Redis >= 7.0 (caching and sessions)
- Terraform >= 1.0.0 (for infrastructure)
# Using npm
npm install -g pnpm
# Or using PowerShell (Windows)
iwr https://get.pnpm.io/install.ps1 -useb | iex# Clone the repository
git clone <repository-url>
cd aivo-ai-platform
# Install all dependencies across workspaces
pnpm install# Run all apps and services in development mode
pnpm dev
# Run a specific workspace
pnpm --filter @aivo/webapp-iep dev
# Run multiple specific workspaces
pnpm --filter @aivo/webapp-iep --filter @aivo/api-gateway dev| Command | Description |
|---|---|
pnpm dev |
Start all apps in development mode |
pnpm build |
Build all packages and apps |
pnpm test |
Run tests across all workspaces |
pnpm lint |
Lint all workspaces |
pnpm format |
Format code with Prettier |
pnpm type-check |
TypeScript type checking |
pnpm clean |
Clean all build outputs and node_modules |
# Format: pnpm --filter <workspace-name> <command>
# Examples:
pnpm --filter @aivo/webapp-iep build
pnpm --filter @aivo/ui dev
pnpm --filter @aivo/types buildReact web application for IEP (Individualized Education Program) management. Built with:
- React 18
- TypeScript
- Vite
Student-facing learning application. Built with:
- React 18
- TypeScript
- Vite
FastAPI-based API gateway service
- Port: 8000
- Python 3.11+
- FastAPI
Authentication and authorization microservice
- Port: 8001
- Python 3.11+
- FastAPI
Shared React component library for consistent UI across applications.
Shared TypeScript type definitions for type safety across the monorepo.
Development Tools:
@turbo/gen2.5.8 - Workspace code generationturbo2.5.8 - Build system orchestrationprettier3.6.2 - Code formattingtypescript5.9.3 - TypeScript compiler
Testing:
vitest3.2.4 - Unit testing framework@vitest/ui3.2.4 - Test UI dashboard@testing-library/react16.3.0 - React testing utilities@testing-library/jest-dom6.9.1 - DOM matchersjsdom27.0.0 - DOM implementation
Linting:
eslint9.37.0 - JavaScript/TypeScript linter@typescript-eslint/eslint-plugin8.46.1 - TypeScript rules@typescript-eslint/parser8.46.1 - TypeScript parsereslint-plugin-react7.37.5 - React ruleseslint-plugin-react-hooks7.0.0 - React Hooks rules
Core Framework:
fastapi0.104.1 - Modern web frameworkuvicorn[standard]0.24.0 - ASGI serverpydantic2.10.0 - Data validationpydantic-settings2.1.0 - Settings managementpython-dotenv1.0.0 - Environment variables
Database:
sqlalchemy[asyncio]2.0.23 - ORM with async supportasyncpg0.29.0 - Async PostgreSQL driverpsycopg2-binary2.9.9 - PostgreSQL adapteralembic1.12.1 - Database migrationsredis4.6.0 - Redis client
Authentication & Security:
python-jose[cryptography]3.3.0 - JWT tokenspasslib[bcrypt]1.7.4 - Password hashingemail-validator2.1.0 - Email validationpyotp2.9.0 - 2FA/TOTP support
File Handling & Storage:
python-multipart0.0.6 - Multipart form databoto31.34.0 - AWS SDKbotocore1.34.0 - AWS coreclamd1.0.2 - ClamAV integrationaiofiles23.2.1 - Async file operations
AI & Content Generation:
openai1.10.0 - OpenAI API clienttextstat0.7.3 - Text readability analysis
Data Analysis:
scipy1.16.2 - Scientific computingnumpy2.2.6 - Numerical operations
Task Scheduling:
apscheduler3.10.4 - Job schedulingcelery[redis]5.3.4 - Distributed task queue
Monitoring & Observability:
python-json-logger2.0.7 - Structured loggingstructlog24.1.0 - Structured loggingsentry-sdk[fastapi]1.40.0 - Error trackingprometheus-client0.19.0 - Metrics collectionopentelemetry-api1.27.0 - Tracing APIopentelemetry-sdk1.27.0 - Tracing SDKopentelemetry-instrumentation-fastapi0.48b0 - FastAPI tracingopentelemetry-instrumentation-sqlalchemy0.48b0 - SQLAlchemy tracingopentelemetry-instrumentation-redis0.48b0 - Redis tracingopentelemetry-instrumentation-httpx0.48b0 - HTTP tracingopentelemetry-exporter-otlp1.27.0 - OTLP exporter
Rate Limiting:
fastapi-limiter0.1.6 - Rate limiting for FastAPIslowapi0.1.9 - Rate limiting middleware
HTTP Client:
httpx0.25.1 - Async HTTP client
Core (configured via package manager):
react19 - UI librarytypescript5.9+ - Type systemaxios- HTTP client for API calls@tanstack/react-query- Server state management@mui/material- Material-UI components@mui/icons-material- Material-UI iconsreact-router-dom- Client-side routing
Python services (api-gateway, auth-service) require separate setup:
# Navigate to service directory
cd services/api-gateway
# Create virtual environment
python -m venv venv
# Activate virtual environment
# Windows PowerShell:
.\venv\Scripts\Activate.ps1
# Unix/MacOS:
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Run service
uvicorn main:app --reload --port 8000# Add a new dependency
pip install <package-name>
# Update requirements.txt
pip freeze > requirements.txt
# Or manually add to requirements.txt with version pinning
echo "package-name==1.0.0" >> requirements.txt# Build all workspaces (Turborepo will handle dependencies)
pnpm build
# Build specific workspace
pnpm --filter @aivo/ui buildTurborepo will automatically:
- Build dependencies first (e.g.,
@aivo/typesbefore@aivo/ui) - Cache build outputs for faster subsequent builds
- Run builds in parallel where possible
# Run all tests
pnpm test
# Run tests for specific workspace
pnpm --filter @aivo/webapp-iep test# Lint all workspaces
pnpm lint
# Format all code
pnpm format
# Type check all TypeScript code
pnpm type-check# Create directory
mkdir packages/new-package
cd packages/new-package
# Initialize package
pnpm init
# Add to workspace by updating the package.json name
# Name should follow: @aivo/<package-name># Add dependency to specific workspace
pnpm --filter @aivo/webapp-iep add react-router-dom
# Add dev dependency
pnpm --filter @aivo/webapp-iep add -D @types/node
# Add workspace dependency
pnpm --filter @aivo/webapp-iep add @aivo/ui --workspaceCreate .env.local files in each app/service directory:
# apps/webapp-iep/.env.local
VITE_API_URL=http://localhost:8000
VITE_AUTH_URL=http://localhost:8001
# services/api-gateway/.env
DATABASE_URL=postgresql://user:pass@localhost:5432/aivo
JWT_SECRET=your-secret-keyNote:
.env.localfiles are gitignored. Never commit secrets!
- React 19 - UI library
- TypeScript 5.9+ - Type safety
- Vite - Build tool and dev server
- pnpm 10.18.2 - Package manager
- @tanstack/react-query - Data fetching and state management
- axios - HTTP client
- Material-UI (MUI) - Component library
- React Router - Client-side routing
- ESLint 9.37+ - Code linting
- Prettier 3.6+ - Code formatting
- Vitest 3.2+ - Testing framework
- FastAPI 0.104+ - Python web framework
- Python 3.11+ - Backend language
- PostgreSQL 14+ - Primary database
- Redis 7+ - Caching, sessions, and rate limiting
- SQLAlchemy 2.0+ - ORM with async support
- Alembic 1.12+ - Database migrations
- Pydantic 2.10+ - Data validation
- asyncpg - Async PostgreSQL driver
- Celery 5.3+ - Distributed task queue
- APScheduler 3.10+ - Job scheduling
- OpenAI API - AI content generation
- Ruff - Fast Python linter
- python-jose - JWT authentication
- passlib - Password hashing
- Sentry - Error tracking
- Prometheus - Metrics collection
- OpenTelemetry - Distributed tracing
- Snyk - Security vulnerability scanning
- Trivy - Container security scanning
- ClamAV - Antivirus scanning
- fastapi-limiter / slowapi - Rate limiting
- Terraform - Infrastructure as Code
- Docker - Containerization
- Amazon EKS - Kubernetes cluster management
- AWS S3 - File storage
- AWS RDS - Managed PostgreSQL
- AWS ElastiCache - Managed Redis
- Turborepo 2.5+ - Monorepo build system
- pnpm workspaces - Dependency management
- GitHub Actions - CI/CD pipeline
- Docker - Container images for deployment
- Kubernetes - Container orchestration
The AIVO platform uses GitHub Actions for continuous integration and deployment.
Push/PR β Lint β Test β Build β Security Scan β Deploy
Environments:
- Staging (
developbranch) - Auto-deploy to https://staging.aivo-platform.com - Production (
mainbranch) - Manual approval required β https://aivo-platform.com
# Trigger staging deployment
git push origin develop
# Trigger production deployment (requires approval)
git push origin mainPipeline Features:
- β Automated linting (ESLint, Ruff)
- β Backend tests with PostgreSQL + Redis
- β Frontend tests with 80% coverage threshold
- β Security scanning (Snyk, Trivy)
- β Docker image building and pushing to ECR
- β Kubernetes deployment with health checks
- β Slack notifications
Documentation:
IEP Management:
- Digital IEP creation and management
- Goal tracking and progress monitoring
- Compliance with IDEA requirements
- Parent/guardian collaboration tools
Transition Services (High School):
- Work-Based Learning (Prompt 96) - Employer partnerships, job shadowing, internships, work-study programs
- Self-Determination Curriculum (Prompt 97) - 11-component curriculum, person-centered planning, SMART goals, decision-making skills
- Post-secondary goal setting and tracking
- Independent living skills assessment
- Career exploration and planning
Content Generation:
- AI-powered IEP goal generation
- Reading level adaptation (Flesch-Kincaid scoring)
- Content moderation and safety checks
- Compliance with COPPA and student privacy
Progress Monitoring:
- Real-time data collection
- Visual progress charts
- Automated compliance alerts
- Parent notification system
Accessibility:
- Text-to-speech integration
- Screen reader optimization
- Keyboard navigation
- High contrast modes
- Dyslexia-friendly fonts
For detailed information about specific features, see:
- Create a feature branch:
git checkout -b feature/my-feature - Make your changes
- Run tests:
pnpm test - Run linting:
pnpm lint - Commit:
git commit -m "feat: add my feature" - Push:
git push origin feature/my-feature - Create a Pull Request
We follow conventional commits for clear versioning:
feat:- New featurefix:- Bug fixdocs:- Documentation changesstyle:- Code style changes (formatting)refactor:- Code refactoringtest:- Test updateschore:- Build process or auxiliary tool changes
Copyright Β© 2025 AIVO AI Platform. All rights reserved.
Built with β€οΈ for students with special needs