Skip to content

An all-in-one tutoring platform for educators to manage student groups, create assignments with a visual builder, and automate grading with AI-powered feedback

License

Notifications You must be signed in to change notification settings

HSE-Project-Lab/stopro-tutors-platform

Repository files navigation

🎓 СТОПРО — EdTech Platform

Платформа для подготовки к профильной математике ЕГЭ/ОГЭ с AI-ассистентом

Java Spring Boot React TypeScript Python FastAPI PostgreSQL Redis Docker License: GPL v3

🇷🇺 Русский🇬🇧 English


🇷🇺 Русский

О проекте

СТОПРО — это EdTech-платформа с микросервисной архитектурой для подготовки школьников к профильной математике ЕГЭ/ОГЭ. Платформа объединяет личные кабинеты учеников и преподавателей, систему задач, домашние задания и AI-ассистента, способного распознавать рукописные решения, находить ошибки и давать персональные рекомендации.

Возможности

Модуль Описание
Кабинет ученика Дашборд с прогрессом, статистика по темам, еженедельные графики
Кабинет учителя Управление группами, назначение ДЗ, аналитика по ученикам
Банк задач Задачи по темам ЕГЭ (№1–19), три уровня сложности
Домашние задания Создание, назначение группам, отслеживание дедлайнов
AI-ассистент OCR рукописных решений, анализ ошибок, рекомендации
Аналитика Прогресс по темам, графики успеваемости, слабые/сильные стороны

Архитектура

┌──────────────┐     ┌──────────────────┐     ┌─────────────────┐
│   Frontend   │────▶│     Backend      │────▶│   AI Service    │
│  React + TS  │     │  Spring Boot 3.4 │     │    FastAPI      │
│  Tailwind    │     │  Java 21         │     │    Python 3.11  │
│  Port: 3000  │     │  Port: 8080      │     │    Port: 8000   │
└──────────────┘     └────────┬─────────┘     └────────┬────────┘
                              │                        │
                     ┌────────▼─────────┐     ┌────────▼────────┐
                     │   PostgreSQL 16  │     │   Redis 7       │
                     │   База данных    │     │   Celery Broker │
                     │   Port: 5432     │     │   Port: 6379    │
                     └──────────────────┘     └─────────────────┘

Технологический стек

Frontend
  • React 19 — UI-библиотека
  • TypeScript 5.9 — типизация
  • Vite 7 — сборщик
  • Tailwind CSS 4 — стилизация
  • Zustand — управление состоянием
  • React Query — серверное состояние и кеширование
  • Recharts — графики и визуализация
  • Axios — HTTP-клиент
  • Nginx — продакшн-сервер
Backend
  • Java 21 — язык
  • Spring Boot 3.4 — фреймворк
  • Spring Security + JWT — аутентификация и авторизация
  • Spring Data JPA + Hibernate — ORM
  • PostgreSQL 16 — реляционная БД
  • Flyway — миграции БД
  • MapStruct — маппинг DTO
  • Lombok — генерация boilerplate
  • SpringDoc OpenAPI — документация API
  • Spring Cache + Redis — кеширование
AI Service
  • Python 3.11 — язык
  • FastAPI — веб-фреймворк
  • Celery — очередь асинхронных задач
  • Redis — брокер сообщений
  • OCR — распознавание рукописного текста
  • SymPy — анализ математических ошибок
  • LLM — генерация рекомендаций

Быстрый старт

Требования

  • Docker и Docker Compose
  • Node.js 20+ (для локальной разработки фронтенда)
  • Java 21+ (для локальной разработки бэкенда)
  • Python 3.11+ (для локальной разработки AI-сервиса)

Запуск через Docker Compose

# Клонировать репозиторий
git clone https://github.com/mirotvoretts/tutors-platform.git
cd tutors-platform

# Собрать и запустить все сервисы
make build
make start

# Или одной командой
docker-compose up -d --build

Локальная разработка фронтенда

npm install
npm run dev
# → http://localhost:5173

Полезные команды (Makefile)

Команда Описание
make build Собрать все сервисы
make start Запустить сервисы
make stop Остановить сервисы
make restart Перезапустить сервисы
make rebuild Пересобрать и запустить
make logs Логи всех сервисов
make status Статус контейнеров
make clean Удалить всё (контейнеры, образы, тома)

Порты сервисов

Сервис Порт URL
Frontend 3000 http://localhost:3000
Backend API 8080 http://localhost:8080/api/v1
AI Service 8000 http://localhost:8000/docs
PostgreSQL 5432
Redis 6379

Структура проекта

tutors-platform/
├── src/                  # Frontend (React + TypeScript)
│   ├── components/       # UI-компоненты
│   ├── pages/            # Страницы приложения
│   ├── store/            # Zustand-сторы
│   ├── types/            # TypeScript-типы
│   └── lib/              # Утилиты и конфиг
├── backend/              # Backend (Java Spring Boot)
│   └── src/main/java/    # Исходный код
├── ai-service/           # AI-микросервис (Python FastAPI)
│   └── app/              # Приложение и роутеры
├── frontend/             # Dockerfile и nginx.conf
├── docs/                 # Документация
├── docker-compose.yml    # Оркестрация сервисов
├── Makefile              # Команды управления
└── vite.config.ts        # Конфигурация Vite

🇬🇧 English

About

STOPRO is a microservice-based EdTech platform designed for preparing students for advanced math exams (Russian EGE/OGE). It combines student and teacher dashboards, a task bank, homework management, and an AI assistant capable of recognizing handwritten solutions, detecting errors, and providing personalized recommendations.

Features

Module Description
Student Dashboard Progress overview, topic statistics, weekly charts
Teacher Dashboard Group management, homework assignment, student analytics
Task Bank Tasks by EGE topics (#1–19), three difficulty levels
Homework Create, assign to groups, track deadlines
AI Assistant OCR for handwritten solutions, error analysis, recommendations
Analytics Topic progress, performance graphs, strengths & weaknesses

Architecture

┌──────────────┐     ┌──────────────────┐     ┌─────────────────┐
│   Frontend   │────▶│     Backend      │────▶│   AI Service    │
│  React + TS  │     │  Spring Boot 3.4 │     │    FastAPI      │
│  Tailwind    │     │  Java 21         │     │    Python 3.11  │
│  Port: 3000  │     │  Port: 8080      │     │    Port: 8000   │
└──────────────┘     └────────┬─────────┘     └────────┬────────┘
                              │                        │
                     ┌────────▼─────────┐     ┌────────▼────────┐
                     │   PostgreSQL 16  │     │   Redis 7       │
                     │   Database       │     │   Celery Broker │
                     │   Port: 5432     │     │   Port: 6379    │
                     └──────────────────┘     └─────────────────┘

🛠️ Tech Stack

Frontend
  • React 19 — UI library
  • TypeScript 5.9 — type safety
  • Vite 7 — build tool
  • Tailwind CSS 4 — styling
  • Zustand — state management
  • React Query — server state & caching
  • Recharts — charts & visualization
  • Axios — HTTP client
  • Nginx — production server
Backend
  • Java 21 — language
  • Spring Boot 3.4 — framework
  • Spring Security + JWT — authentication & authorization
  • Spring Data JPA + Hibernate — ORM
  • PostgreSQL 16 — relational database
  • Flyway — database migrations
  • MapStruct — DTO mapping
  • Lombok — boilerplate reduction
  • SpringDoc OpenAPI — API documentation
  • Spring Cache + Redis — caching
AI Service
  • Python 3.11 — language
  • FastAPI — web framework
  • Celery — async task queue
  • Redis — message broker
  • OCR — handwriting recognition
  • SymPy — mathematical error analysis
  • LLM — recommendation generation

🚀 Quick Start

Prerequisites

Run with Docker Compose

# Clone the repository
git clone https://github.com/mirotvoretts/tutors-platform.git
cd tutors-platform

# Build and start all services
make build
make start

# Or in a single command
docker-compose up -d --build

Local frontend development

npm install
npm run dev
# → http://localhost:5173

Useful commands (Makefile)

Command Description
make build Build all services
make start Start services
make stop Stop services
make restart Restart services
make rebuild Rebuild and start
make logs Follow all service logs
make status Container status
make clean Remove everything (containers, images, volumes)

Service Ports

Service Port URL
Frontend 3000 http://localhost:3000
Backend API 8080 http://localhost:8080/api/v1
AI Service 8000 http://localhost:8000/docs
PostgreSQL 5432
Redis 6379

Project Structure

tutors-platform/
├── src/                  # Frontend (React + TypeScript)
│   ├── components/       # UI components
│   ├── pages/            # Application pages
│   ├── store/            # Zustand stores
│   ├── types/            # TypeScript types
│   └── lib/              # Utilities & config
├── backend/              # Backend (Java Spring Boot)
│   └── src/main/java/    # Source code
├── ai-service/           # AI microservice (Python FastAPI)
│   └── app/              # Application & routers
├── frontend/             # Dockerfile & nginx.conf
├── docs/                 # Documentation
├── docker-compose.yml    # Service orchestration
├── Makefile              # Management commands
└── vite.config.ts        # Vite configuration

License / Лицензия

This project is licensed under the GNU General Public License v3.0.

Проект распространяется под лицензией GNU General Public License v3.0.

About

An all-in-one tutoring platform for educators to manage student groups, create assignments with a visual builder, and automate grading with AI-powered feedback

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published