# Система тестирования

## Аннотация

Приложение представляет собой настольную информационную систему для управления результатами тестирования пользователей. Система позволяет администраторам вести учёт прохождения тестов, а пользователям - просматривать собственные результаты. Разработана на языке C# с использованием Windows Forms и базы данных PostgreSQL. Установка выполняется с помощью инсталлятора, созданного в Inno Setup, который автоматически размещает все необходимые файлы и создаёт ярлыки для запуска.

---

# Введение

## Основные возможности

- Авторизация пользователей с разграничением доступа по ролям
- Просмотр результатов тестирования в табличном виде
- Добавление новых результатов с автоматическим расчётом процента выполнения
- Редактирование количества набранных баллов
- Удаление записей о результатах
- Поиск и фильтрация по названию теста, теме и сложности
- Формирование отчёта в формате Excel (.xlsx)
- Автоматическое журналирование всех операций с данными
- Простая установка через мастер инсталляции Inno Setup

---

# Назначение и условия применения

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

**Условия применения:**

- Операционная система: Windows 10 / 11
- Наличие установленного .NET 6 или выше
- Наличие доступа к серверу PostgreSQL 14 или выше
- Минимальное разрешение экрана: 1280×720
- Установка с правами администратора (опционально)

---

# Установка

## Шаги установки

1. Запустите файл `TestManipulate.exe`
2. В окне приветствия нажмите «Далее» (или «Next»)
3. Выберите папку для установки:
   - По умолчанию: `C:\Program Files\Система тестирования`
   - Можно изменить, нажав «Обзор» («Browse»)
4. Нажмите «Далее» для продолжения
5. [ ] По желанию отметьте создание ярлыка на рабочем столе
6. Нажмите «Установить» и дождитесь завершения процесса копирования файлов
7. Нажмите «Готово» («Finish»)
8. [x] Установка завершена - приложение можно запустить через ярлык на рабочем столе или в меню «Пуск»

## Что устанавливается в систему

- Главный исполняемый файл: `setup.exe`
- Файл приложения ClickOnce: `TestsManipulate.application`
- Папка с дополнительными файлами: `Application Files` (содержит зависимости и ресурсы)
- Ярлык на рабочем столе (опционально)

---

# Описание операций

## Авторизация
Введите логин и пароль в соответствующие поля и нажмите «Войти». При неверных данных система выведет сообщение об ошибке.

## Просмотр результатов
После входа на главном экране отображается таблица результатов. Администратор видит результаты всех пользователей, пользователь - только свои.

## Добавление результата
Нажмите кнопку «Добавить», в открывшемся окне выберите тест, пользователя, укажите баллы и нажмите «Добавить».

## Редактирование
Выберите строку в таблице, нажмите «Изменить» и измените количество баллов.

## Удаление
Выберите строку в таблице и нажмите «Удалить».

## Поиск
Введите текст в поле поиска - таблица автоматически фильтруется по названию теста, теме и сложности.

## Формирование отчёта
Нажмите кнопку «Отчёт», выберите папку сохранения - будет создан файл Excel с текущими данными таблицы.

---

# Термины и сокращения

| Термин / сокращение | Расшифровка |
|---|---|
| СУБД | Система управления базами данных |
| PostgreSQL | Объектно-реляционная система управления базами данных |
| Windows Forms | Технология создания графических приложений на платформе .NET |
| Inno Setup | Свободный инструмент для создания установщиков Windows |
| Npgsql | Библиотека для подключения C# приложений к PostgreSQL |
| ClosedXML | Библиотека для создания Excel-файлов в .NET |
| FK | Foreign Key - внешний ключ |
| PK | Primary Key - первичный ключ |
| CRUD | Create, Read, Update, Delete — базовые операции с данными |
| role_id | Идентификатор роли пользователя в системе |