Описание проекта - Asquardian/TaskSibSutis GitHub Wiki
Краткое описание проекта
Для авторизации и регистрации пользователя, создаётся база данных, таблица users, в ней мы храним логин, пароль и прочую информацию пользователя, пароль зашифрован. После регистрации или авторизации пользователь попадает на страницу с подачей заявления.
Если заявление успешно создано, то оно сохраняется в таблице requests. После этого можно скачать word-файл заявления или перейти на страницу с просмотром своих заявлений. Заявления, которые ещё не были выполнены, можно удалить, из базы данных оно также подчистится. Также можно отсортировать по убыванию или возрастанию любое поле в панели администратора. Был добавлен фильтр по типу справок, написанный на JS, чтобы отправлять меньше запросов к базе данных.
Личный кабинет пользователя
Для управления проекта использовалась Asana Для вёрстки использовался Bootstrap 5.2.1, Базы данных MySQL.
SQL requests
Эта база данных содержит заявления пользователей
Поле ID (PRIMARY KEY)
Это id заявления. Создается с помощью UUID. Основное назначение UUID — это позволить распределённым системам уникально идентифицировать информацию без центра координации. Таким образом, любой может создать UUID и использовать его для идентификации чего-либо с приемлемым уровнем уверенности, что данный идентификатор непреднамеренно никогда не будет использован для чего-то ещё. Поэтому информация, помеченная с помощью UUID, может быть помещена позже в общую базу данных, без необходимости разрешения конфликта имен.
Поле fullName
Это строка, которая содержит ФИО.
Поле groupName
Это строка, которая содержит группу пользователя.
Поле amount
Количество заявок
Поле kindOf
Тип справки
Поле status
Статус заявки
SQL users
Содержит информацию о пользователе
Поле admin
Решает может ли пользователь пользоваться панелью администратора
Поле login (UNIQUE)
Логин не может повторяться
Поле password
Пароль преобразуется через хэш-функцию password_hash()
Это сделано ради безопасности пользователей. Злоумышленник не сможет узнать пароль пользователя даже получив доступ к базе данных.
Обработка ошибок
Обработка ошибок есть на каждой странице, где это необходимо.
Если пользователь ошибется с данными, то его перенаправит с GET запросом
Также использовались исключения
GET и POST запросы
GET запросы используются для ошибок и для передачи небольшого количества данных
POST запросы используются уже для записи больших объемов данных
Также в проекте есть сессии. Они нужны для отображения основной информации
Дополнительные технологии
Composer
Composer — это пакетный менеджер уровня приложений для языка программирования PHP, который предоставляет средства по управлению зависимостями в PHP-приложении.
PHPWord
PHPWord - это инструмент для создания Word документов
Bootstrap 5.2.1
Bootstrap - Это фреймворк для создания сайтов. Содержит шаблоны для типографики, веб-форм, кнопок, меток, блоков навигации и прочих компонентов веб-интерфейса, включая JavaScript-расширения.
PHP Admin, Apache и XAMPP
Для работы над проектом использовался xampp.