MaoSchool — это современная образовательная платформа для изучения языков, программирования и подготовки к ЕГЭ. Проект объединяет интерактивные уроки, тесты с мгновенной проверкой, флеш-карточки для запоминания и систему отслеживания прогресса в единой экосистеме.
🎬 Видео демонстрации будет добавлено скоро
MaoSchool создан с целью сделать качественное образование доступным и увлекательным. В эпоху, когда знания устаревают быстро, важно иметь платформу, которая помогает учиться эффективно и с удовольствием.
MaoSchool объединяет всё необходимое для современного ученика:
- Изучать новые предметы через структурированные курсы с юнитами и уроками
- Закреплять знания с помощью тестов с мгновенной проверкой и развёрнутыми решениями
- Запоминать надолго благодаря флеш-карточкам с алгоритмом интервального повторения
- Готовиться к ЕГЭ с материалами, адаптированными под требования экзамена
- Учиться в своём темпе с возможностью возвращаться к сложным темам
| Модуль | Описание | Ключевые возможности |
|---|---|---|
| Курсы | Структурированные учебные программы | Юниты с уроками, прогресс-бары, бейджи "Пройдено", навигация "Следующий урок" |
| Уроки | Интерактивный учебный контент | Текст с HTML-форматированием, оценка времени, счётчик просмотров, реакции |
| Тесты | Проверка знаний после каждого урока | Мгновенная проверка, подсказки, развёрнутые решения, проходной балл 75% |
| Флеш-карточки | Запоминание терминов и концепций | Переворот карточки, навигация ← →, интервальное повторение (в разработке) |
Next.js 14.x (App Router) + React 18 + TypeScript
- ├── UI: Tailwind CSS + Lucide Icons
- ├── State: React Hooks + localStorage (token, user)
- ├── HTTP: fetch API с интерцепторами для авторизации
- ├── Routing: файловая маршрутизация App Router
- └── Components: модульные клиентские компоненты
FastAPI 0.115+ + SQLAlchemy 2.0 (async) + PostgreSQL
- ├── Auth: python-jose (JWT) + Passlib (bcrypt)
- ├── Security: httpOnly cookies + CORS middleware
- ├── Database: asyncpg + Alembic миграции
- ├── Validation: Pydantic V2 схемы
- └── API: RESTful эндпоинты с документацией OpenAPI
maoschool/
├── backend/ # FastAPI бэкенд
│ ├── routers/ # API эндпоинты (auth, courses, tests, flashcards)
│ ├── models.py # SQLAlchemy модели (User, EgeLesson, TestResult...)
│ ├── schemas.py # Pydantic схемы для валидации
│ ├── crud.py # CRUD операции с БД
│ ├── dependencies.py # Зависимости (get_db, get_current_user)
│ ├── config.py # Настройки окружения
│ ├── database.py # Подключение к PostgreSQL
│ ├── main.py # Точка входа FastAPI
│ ├── alembic/ # Миграции базы данных
│ ├── requirements.txt
│ └── .env.example
│
├── frontend/ # Next.js фронтенд
│ ├── app/
│ │ ├── courses/ # Страницы курсов ([slug], [slug]/[lesson])
│ │ ├── articles/ # Страницы статей
│ │ ├── tests/ # Интерфейс прохождения тестов
│ │ ├── layout.tsx # Корневой layout с хедером
│ │ └── globals.css # Глобальные стили Tailwind
│ ├── components/ # Переиспользуемые UI компоненты
│ │ ├── FlashcardSession.tsx # Модальное окно флеш-карточек
│ │ ├── LessonReactions.tsx # Лайки и комментарии
│ │ └── ...
│ ├── lib/ # Утилиты (apiFetch, format-date, test-return)
│ ├── store/ # Управление состоянием (Zustand)
│ ├── public/ # Статические файлы (изображения, иконки)
│ ├── package.json
│ └── next.config.js
│
└── README.md
Node.js 18+ и pnpm/npm
Python 3.12+ и PostgreSQL 15+git clone https://github.com/anyamao/maoschool.git
cd maoschoolcd backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
# Создайте .env файл:
cp .env.example .env
# Заполните DATABASE_URL, SECRET_KEY и другие переменные
# Запуск сервера разработки
uvicorn app.main:app --reload --host 127.0.0.1 --port 8010🎯 Бэкенд запустится на
http://localhost:8010
📚 Документация API:http://localhost:8010/docs
cd ../frontend
pnpm install # или npm install
# Создайте .env.local:
cp .env.example .env.local
# Укажите NEXT_PUBLIC_API_URL=http://localhost:8010
# Запуск дев-сервера
pnpm dev # или npm run dev🌐 Приложение будет доступно на
http://localhost:3010
- ✅ Откройте
http://localhost:3010в браузере - ✅ Зарегистрируйте нового пользователя или войдите
- ✅ Перейдите в раздел "Курсы" → выберите урок → пройдите тест
- ✅ Убедитесь, что прогресс сохраняется и отображается
Мы приветствуем любой вклад в развитие MaoSchool!
- 🐛 Сообщайте об ошибках через Issues
- 💡 Предлагайте новые функции через обсуждение в Issues или напрямую через Pull Request
- ✏️ Улучшайте документацию — даже мелкие правки в README помогают новичкам
- 🎨 Делитесь дизайном — если у вас есть идеи по улучшению UI, создавайте макеты
- Форкните репозиторий
- Создайте ветку для вашей фичи:
git checkout -b feature/amazing-feature - Внесите изменения и закоммитьте:
git commit -m 'Add: amazing feature' - Отправьте в свой форк:
git push origin feature/amazing-feature - Откройте Pull Request с описанием изменений
- 📱 Мобильное приложение на React Native
- 🔔 Push-уведомления о новых уроках и повторении карточек
- 🌐 Мультиязычность (EN/RU/ES)
- 📊 Расширенная аналитика для преподавателей
- 🤝 Социальные функции: друзья, совместные курсы, лидерборды
Этот проект распространяется под лицензией MIT. Подробности в файле LICENSE.
MIT License
Copyright (c) 2026 MaoSchool
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
