92 lines
3.6 KiB
Markdown
92 lines
3.6 KiB
Markdown
# Управление ИТ (ОМС) — система дистанционного обучения
|
||
|
||
Система дистанционного обучения с фиксацией прохождения обучения и результатов тестирования сотрудников.
|
||
|
||
## Назначение
|
||
|
||
- Раздача контента обучения и тестирования (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).
|