Управление ИТ (ОМС) — система дистанционного обучения

Система дистанционного обучения с фиксацией прохождения обучения и результатов тестирования сотрудников.

Назначение

  • Раздача контента обучения и тестирования (HTML).
  • Фиксация ФИО сотрудника при старте обучения (экран входа).
  • Сохранение результатов тестирования в PostgreSQL после прохождения теста.

Требования и зависимости

  • Docker, Docker Compose
  • PostgreSQL 15 (запускается в контейнере)

Установка и настройка

  1. Скопировать .env.example в .env и задать пароль БД:
    cp .env.example .env
    # Отредактировать .env: POSTGRES_PASSWORD=...
    
  2. Запуск:
    cd /opt/lms-it-oms
    docker compose up -d
    
  3. Курс доступен по адресу: http://localhost:8000/ (редирект на /content/it_course_v2.html).

Конфигурация

Переменные в .env (файл не коммитится):

Переменная Описание По умолчанию
POSTGRES_HOST Хост БД db
POSTGRES_PORT Порт БД 5432
POSTGRES_DB Имя БД lms_it_oms
POSTGRES_USER Пользователь БД lms
POSTGRES_PASSWORD Пароль БД обязательно задать
CONTENT_PATH Путь к каталогу content в контейнере /content

API

  • POST /api/start — регистрация начала обучения. Тело: {"fio": "ФИО"}. Ответ: {"participant_id": "...", "fio": "..."}.
  • POST /api/complete — фиксация результата теста. Тело: {"participant_id": "...", "score": 20, "total_questions": 25, "percent": 80, "passed": true}.
  • GET /api/health — проверка доступности API.

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

/opt/lms-it-oms/
├── README.md
├── HISTORY.md
├── .env.example
├── docker-compose.yml
├── content/                 # HTML курса
│   └── it_course_v2.html
└── backend/
    ├── Dockerfile
    ├── requirements.txt
    └── app/
        ├── main.py          # FastAPI, статика, API
        ├── config.py
        ├── database.py
        ├── models.py
        └── schemas.py

Docker Compose

  • app — FastAPI на порту 8000, раздаёт статику из ./content и обрабатывает /api/*.
  • db — PostgreSQL 15, volume lms_it_oms_data для данных.

Логирование

  • Логи приложения: docker compose logs -f app
  • Логи БД: docker compose logs -f db
  • Ротация логов app: json-file, max-size 10m, max-file 3.

Резервное копирование

Volume lms-it-oms_lms_it_oms_data добавлен в /opt/gen7x/backup/include-volumes.txt. Бэкапить данные PostgreSQL по общему регламенту платформы.

Восстановление из бэкапа

Восстановить volume БД по инструкции платформы. После восстановления перезапустить: docker compose up -d.

История изменений

См. HISTORY.md.

Description
Система дистанционного обучения Управление ИТ (ОМС)
Readme 65 KiB
Languages
HTML 93.3%
Python 6.4%
Dockerfile 0.3%