Описание проекта - Asquardian/TaskSibSutis GitHub Wiki

Краткое описание проекта

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

Если заявление успешно создано, то оно сохраняется в таблице requests. После этого можно скачать word-файл заявления или перейти на страницу с просмотром своих заявлений. Заявления, которые ещё не были выполнены, можно удалить, из базы данных оно также подчистится. Также можно отсортировать по убыванию или возрастанию любое поле в панели администратора. Был добавлен фильтр по типу справок, написанный на JS, чтобы отправлять меньше запросов к базе данных.

image

image Личный кабинет пользователя

Для управления проекта использовалась 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.