Система управления зверофермами и учёта торгов пушниной
При открытии базы данных выполняется проверка существования файла.
Интерфейс — консольный (CLI) с нумерованным меню.
После каждой операции система ожидает нажатия Enter перед возвратом в меню.
Пункт «0» во всех меню служит для выхода на уровень выше.
Сообщения об ошибках информативны.
Предопределённые учётные записи: admin/admin123, farm1/farm1pass, farm2/farm2pass.
Время отклика на запросы не превышает 1 секунды при объёме данных до 10 000 записей.
База данных SQLite работает в режиме «:memory:» для тестов.
Исходный код разделён на модули согласно диаграмме компонентов.
Проект собирается с помощью CMake.
Настроена автоматическая сборка и тестирование через GitHub Actions.
Unit-тесты покрывают Database, Auth, Farm, Lot, Auction.
| Требование | Реализация |
|---|---|
| Аутентификация | Таблица Users с полями username (UNIQUE), password, role |
| Разграничение доступа | admin — полный доступ, farm_user — только свои данные |
| Защита от SQL-инъекций | Параметризованные запросы в Auth::login() |
| Хранение паролей | В учебном проекте — открытым текстом |