Современная система управления обучением с красивым интерфейсом и мощным функционалом
Автор: onevu (@onevu) | GitHub
- Что это такое?
- Скриншоты
- Быстрый старт
- Ключевые возможности
- Техническая часть
- Установка
- Запуск
- Структура проекта
- API
School Startup - это полноценная платформа для онлайн-обучения, которая объединяет:
✨ Структурированные курсы - модули разбиты на шаги с интерактивными уроками
✨ Видео-контент - встроенный видеоплеер прямо в уроках
✨ Отслеживание прогресса - система фиксирует ваш прогресс в реальном времени
✨ Проекты и задания - выполняйте практические работы
✨ Админ-панель - полное управление контентом без кода
| Кто | Что может делать |
|---|---|
| 👨🎓 Студенты | Учиться в своем темпе, отслеживать прогресс, выполнять задания |
| 👨🏫 Учителя | Создавать и редактировать курсы, видеть прогресс учеников |
| 🏢 Организации | Запустить собственную платформу обучения за минуты |
| Вход в систему | Регистрация |
|---|---|
![]() |
![]() |
Красивый каталог всех доступных курсов. Студент выбирает интересующий курс и начинает обучение.
Уроки содержат текст, изображения и видео. Прогресс отслеживается автоматически.
Админ может видеть всю статистику: количество пользователей, курсов, реализаций, модулей.
Просмотр, редактирование и одобрение проектов студентов.
Создание новых курсов, редактирование содержимого, управление уроками.
Полный контроль над пользователями: просмотр, редактирование, удаление, назначение курсов.
# 1️⃣ Клонируем репозиторий
git clone <repo_url>
cd school-startup
# 2️⃣ Запускаем менеджер
python manage.py
# 3️⃣ Выбираем:
# - Режим сети: 2 (для локальной сети) или 1 (только localhost)
# - Опцию: 3 (Backend + Frontend)📧 Email: admin@schoolstartup.ru
🔑 Пароль: Admin1234!
http://localhost:5173
- ✅ Структурированное обучение по модулям
- ✅ Отслеживание собственного прогресса
- ✅ Интерактивные видео-уроки
- ✅ Практические задания и проекты
- ✅ Система проверки уникальности идей
- ✅ Личный кабинет с достижениями
- ✅ Полнофункциональная админ-панель (не нужен код!)
- ✅ Создание и редактирование курсов
- ✅ Загрузка изображений и видео
- ✅ Управление пользователями
- ✅ Отслеживание прогресса всех студентов
- ✅ Просмотр и одобрение проектов
- ✅ Полная аутентификация с JWT токенами
- ✅ Асинхронный FastAPI backend
- ✅ React с TypeScript фронтенд
- ✅ Красивый дизайн на TailwindCSS
- ✅ Готовые UI компоненты (Radix UI)
- ✅ SQLite база данных
| Технология | Версия | Назначение |
|---|---|---|
| FastAPI | 0.128.0 | Веб-фреймворк с асинхронностью |
| Uvicorn | 0.30.0 | ASGI сервер (молниеносный) |
| SQLite + aiosqlite | 0.20.0 | Асинхронная база данных |
| Pydantic | 2.7.0 | Валидация данных |
| Python-Jose | 3.3.0 | JWT токены для аутентификации |
| Bcrypt | 4.1.2 | Безопасное хеширование паролей |
| SlowAPI | 0.1.9 | Защита от DDoS (rate limiting) |
| Технология | Версия | Назначение |
|---|---|---|
| React | 18.x | UI библиотека |
| TypeScript | 5.x | Типизация и безопасность |
| Vite | 6.x | Сборщик (⚡ молниеносно быстрый) |
| TailwindCSS | 3.x | Утилиты для стилей |
| Radix UI | 1.x | Доступные UI компоненты |
| React Router | 6.x | Маршрутизация |
| TanStack Query | 5.x | Управление данными и кешированием |
| Axios | 1.x | HTTP запросы |
school-startup/
│
├─ 🐍 python_backend/ ← FastAPI Backend (API)
│ ├─ venv/ Виртуальное окружение Python
│ ├─ data/
│ │ ├─ schoolstartup.db SQLite база данных
│ │ ├─ secret.key JWT секретный ключ
│ │ └─ uploads/ Загруженные изображения
│ │
│ ├─ main.py ⭐ Главное FastAPI приложение
│ ├─ setup.py Инициализация БД при первом запуске
│ ├─ auth.py Аутентификация и JWT токены
│ ├─ db.py Операции с БД (SQLite)
│ ├─ schemas.py Pydantic модели (валидация)
│ ├─ config.py Конфигурация приложения
│ ├─ logging_config.py Логирование
│ │
│ ├─ routers_auth.py /api/auth (вход, регистрация)
│ ├─ routers_user.py /api/users (профили)
│ ├─ routers_modules.py /api/modules (курсы)
│ ├─ routers_lessons.py /api/lessons (уроки)
│ ├─ routers_projects.py /api/projects (проекты)
│ ├─ routers_progress.py /api/progress (прогресс)
│ ├─ routers_ideas.py /api/ideas (идеи)
│ ├─ routers_admin.py /api/admin (админ-панель)
│ ├─ routers_me.py /api/me (текущий пользователь)
│ │
│ ├─ requirements.txt Все Python зависимости
│ └─ __pycache__/ Кеш Python
│
├─ 🌐 client/ ← React Frontend (Web UI)
│ ├─ src/
│ │ ├─ pages/ React страницы
│ │ │ ├─ landing.tsx 🏠 Главная страница
│ │ │ ├─ home.tsx 👤 Личный кабинет
│ │ │ ├─ login.tsx 🔓 Вход
│ │ │ ├─ register.tsx ✍️ Регистрация
│ │ │ ├─ learn.tsx 📚 Обучение
│ │ │ ├─ modules.tsx 📖 Модули/Курсы
│ │ │ ├─ projects.tsx 🎨 Проекты/Реализации
│ │ │ ├─ admin.tsx ⚙️ Админ-панель
│ │ │ ├─ submit.tsx 📤 Сдача работ
│ │ │ └─ ...
│ │ │
│ │ ├─ components/ React компоненты
│ │ │ ├─ Header.tsx Шапка сайта
│ │ │ ├─ ProgressBar.tsx Полоса прогресса
│ │ │ ├─ VideoPlayer.tsx Видеоплеер
│ │ │ ├─ admin/ Компоненты админ-панели
│ │ │ └─ ui/ UI компоненты (Radix UI, 40+)
│ │ │
│ │ ├─ hooks/ React хуки
│ │ ├─ lib/ Утилиты и конфигурация
│ │ └─ App.tsx Главный компонент
│ │
│ ├─ index.html HTML шаблон
│ ├─ package.json Frontend зависимости
│ └─ README.md Frontend документация
│
├─ 🔧 server/ Dev сервер (Express)
├─ 📚 script/ Скрипты сборки
├─ 🔌 shared/ Общие типы и схемы
│
├─ 🐍 manage.py ⭐ ГЛАВНЫЙ МЕНЕДЖЕР (интерактивное меню)
│
└─ Configuration:
├─ package.json Frontend зависимости
├─ tsconfig.json TypeScript конфиг
├─ vite.config.ts Vite конфиг
├─ tailwind.config.ts TailwindCSS стили
├─ .env.example Пример переменных окружения
├─ .gitignore Git исключения
├─ LICENSE MIT лицензия
└─ README.md Эта документация
# 1. Клонируем
git clone <repo_url>
cd school-startup
# 2. Автоматическая инициализация (рекомендуется)
python manage.py
# Меню автоматически установит всё нужноеpython manage.pyВыберите:
- Режим сети: 1 (localhost) или 2 (локальная сеть)
- Опцию: 3 (Backend + Frontend одновременно)
Терминал 1 - Backend:
cd python_backend
source venv/bin/activate
python main.py
# API: http://localhost:8000
# Docs: http://localhost:8000/docsТерминал 2 - Frontend:
cd client
npm run dev:client
# Web: http://localhost:5173POST /api/auth/register Регистрация
POST /api/auth/login Вход (получить JWT токен)
GET /api/auth/me Информация текущего пользователя
POST /api/auth/refresh Обновить токен
GET /api/modules Все курсы
GET /api/my-modules Мои курсы
POST /api/my-modules/assign Назначить курс себе
GET /api/lessons/{id} Получить урок
POST /api/lessons/{id}/complete Отметить урок как завершенный
GET /api/progress Мой прогресс
GET /api/progress/modules Прогресс по курсам
GET /api/admin/modules Все модули (управление)
GET /api/admin/users Все пользователи
GET /api/admin/lessons Все уроки
GET /api/admin/projects Все проекты студентов
POST /api/admin/seed-data Загрузить демо-данные
Полная документация API: http://localhost:8000/docs (Swagger UI)
- Пароли хешируются Bcrypt (необратимо)
- Токены подписаны JWT с срок действия 24 часа
- Secret key хранится в
python_backend/data/secret.key
- admin - полный доступ
- user - просмотр контента, выполнение заданий
8 таблиц содержат:
| Таблица | Содержит |
|---|---|
| users | Профили пользователей (email, пароль, роль) |
| modules | Курсы (название, описание) |
| steps | Шаги внутри курсов |
| lessons | Уроки внутри шагов (текст, видео, изображения) |
| progress | Прогресс студентов (какие уроки пройдены) |
| user_modules | Связь студентов с назначенными курсами |
| projects | Проекты/реализации студентов |
| ideas | Идеи студентов для проектов |
- GitHub: @apela812
- Email: onevia666@gmail.com
- WEBSITE: https://nuriman-abdullin.ru/
MIT License - используйте свободно! © 2024 onevu








