Skip to content
MeanilinPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Cards LMS — система интервального повторения

MVP веб-приложения для изучения карточек с ролевой моделью (студент / преподаватель / учебный офис).

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

# 1. Установить зависимости
pip install -r requirements.txt

# 2. Запустить сервер
uvicorn main:app --reload

Откройте браузер: http://localhost:8000

При первом запуске автоматически создаются таблицы и тестовые данные.

Тестовые аккаунты

Роль Email Пароль
Учебный офис office@example.com office123
Преподаватель teacher@example.com teacher123
Студент student@example.com student123

Страницы

URL Описание Доступ
/ Главная / дашборд Все
/login Вход Все
/register Регистрация Все
/study Упражнение с карточками Все авторизованные
/packs Управление паками и карточками Все авторизованные
/teacher-groups Управление паками в группах Преподаватель, офис
/admin Создание групп, преподавателей Только офис
/profile Профиль студента / выбор группы Студент

API (основные эндпоинты)

Метод Путь Описание
POST /auth/register Регистрация студента
POST /auth/login Вход → JWT токен
GET /auth/me Текущий пользователь
GET /packs Мои паки
POST /packs Создать пак
POST /packs/cards Добавить карточку
PUT /packs/cards/{id} Редактировать карточку
GET /packs/{id}/export Экспорт пака в JSON
POST /packs/import Импорт пака из JSON
GET /study/next Следующая карточка для повторения
POST /study/review/{id} Ответить на карточку
GET /study/stats Статистика на сегодня
GET /groups Список групп
POST /groups/{id}/packs Добавить пак в группу
PATCH /groups/{id}/packs/{pack_id}/hide Скрыть/показать пак
POST /admin/groups Создать группу (офис)
POST /admin/teachers Создать преподавателя (офис)

Алгоритм интервального повторения (SM-2 упрощённый)

  • Знаю: интервал увеличивается (1 → 3 → 7 → 14 → 30 → ... → макс 180 дней)
  • Не знаю: интервал сбрасывается до 1 дня
  • Акцент: интервал делится пополам (карточка появляется вдвое чаще)
  • Карточки попадают в упражнение, когда next_review_date <= сегодня

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

cards_lms/
├── main.py           # точка входа FastAPI
├── database.py       # SQLite engine, SessionLocal
├── models.py         # SQLAlchemy модели
├── schemas.py        # Pydantic схемы
├── auth.py           # JWT утилиты, зависимости
├── seed.py           # начальные данные
├── requirements.txt
├── routers/
│   ├── auth.py       # регистрация, логин
│   ├── packs.py      # CRUD паков и карточек, экспорт/импорт
│   ├── study.py      # упражнение, SM-2
│   ├── groups.py     # управление паками в группах
│   └── admin.py      # панель учебного офиса
├── templates/        # Jinja2 + vanilla JS
└── static/           # CSS/JS (пустая, для расширения)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages