# Управление ИТ (ОМС) — система дистанционного обучения Система дистанционного обучения с фиксацией прохождения обучения и результатов тестирования сотрудников. ## Назначение - Раздача контента обучения и тестирования (HTML). - Фиксация ФИО сотрудника при старте обучения (экран входа). - Сохранение результатов тестирования в PostgreSQL после прохождения теста. ## Требования и зависимости - Docker, Docker Compose - PostgreSQL 15 (запускается в контейнере) ## Установка и настройка 1. Скопировать `.env.example` в `.env` и задать пароль БД: ```bash cp .env.example .env # Отредактировать .env: POSTGRES_PASSWORD=... ``` 2. Запуск: ```bash 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](HISTORY.md).