Files
lms-it-oms/README.md

92 lines
3.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Управление ИТ (ОМС) — система дистанционного обучения
Система дистанционного обучения с фиксацией прохождения обучения и результатов тестирования сотрудников.
## Назначение
- Раздача контента обучения и тестирования (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).