Проект написан на ЯП Java с использованием фреймворка Spring, БД MySQL, а также с помощью HTML и CSS. Структура проекта соответствует схеме MVC. Таким образом, все файлы проекта (за исключением файлов свойств, зависимостей и т.д.) попадают под одну из категорий: models, views, controllers.
Сервис представляет собой сайт для заказа втомобильных грузоперевозок. Пользователь может ознакомиться со списком услуг и автомобилей, а затем заполнить форму и сделать заказ. На сайте присутствует регистрация и авторизация пользователей. У зарегистрированных пользователей может быть одна из трёх ролей: user, manager, admin. Обычный зарегистрированный пользователь, в отличие от незагеристрированного может заполнить и сделать заказ. Менеджеру по сравнению с обычным пользователем доступны различные функции по управлению сервисом. А администратор по сравнению с менеджером может ещё и регистрировать новых менеджеров.
Сервис работает с базой данных, в которой хранится информация об услугах фирмы, автомобильном парке, пользователях и заказах. Поэтому под категорию моделей попадают все классы данных, хранящихся в БД, репотизориев и сервисов. Ссылка на директорию models.
Работу сервиса отображают страницы сайта. Поэтому под категорию представлений попадают HTML шаблоны страниц, которые могут отображать различную информацию, в зависимости от различных условий (роль пользователя, наполнение базы данных и т.д.). Ссылка на директорию templates.
Для того, чтобы загружать страницы сайта с нужной информацией, а также для обработки POST запросов нужны классы, которые будут всё это делать. Под эту категорию как раз попадают контроллеры. Они достают из БД нужные данные, а затем отправляют их на страницы, которые их уже отображают нужным образом. Также контроллеры формы на страницах, добавляя в БД новые данные. Ссылка на директорию controllers.
На каждой странице (кроме страницы авторизации) есть
верхний и нижний блоки. В верхнем расположены эмблема
и названии компании, ссылки на другие страницы сайта,
а также кнопки авторизации(если вход не был выполнен),
выхода из аккаунта(если вход был выполнен) и
регистрации. В нижнем ссылки на другие страницы сайта
и другое. Наполненность ссылками на другие страницы
в обоих блоках зависит от роли пользователя.
Хедер без авторизации
Хедер с авторизацией администратора
Футер без авторизации
На главной странице сервиса расположены рекламные
баннеры, краткое описание преимуществ компании, а
также кнопки для перехода на другие страницы.
На странице с каталогом услуг располагается список
предоставляемых компанией услуг с описанием и
минимальной ценой,а также возможностью перейти в
раздел заказа (если вход не выполнен, переадресация
на страницу авторизации). Если вход выполнен под
менеджером или администратором, на странице появляются
дополнительные возможности по управлению сервисом.
Для пользователей и посетителей
Для менеджера и админа
На странице с автомобильным парком располагается список
предоставляемых компанией автомобилей с описанием и
минимальной ценой,а также возможностью перейти в
раздел заказа (если вход не выполнен, переадресация
на страницу авторизации). Если вход выполнен под
менеджером или администратором, на странице появляются
дополнительные возможности по управлению сервисом.
Для пользователей и посетителей
Для менеджера и админа
На странице с информацией о компании расположено краткое
описание и контактные данные.
Переход на страницу с оформлением заказа возможен только
для авторизованных пользователей, в противном случае
сайт переадресует посетителя на страницу авторизации.
На странице с заказом расположена форма, которую нужно
заполнить для оформления заказа. При нажатии на кнопку
"Continue" происходит переход на страницу подтверждения
заказа, где заказчик может проверить свои данные, а
также узнать итоговую стоимость заказа. Если его всё
устраивает, нужно нажать на кнопку подтверждения, а в
противном случае на кнопку редактирования заказа.
Страница оформления заказа
Страница подтверждения заказа
Эта страница доступна только менеджерам и админу.
На странице с заказами располагается список всех
оформленных заказов с полным описанием. Заказ можно
удалить, если он выполнен.
Страница для регистрации обычных пользователей.
Эта страница доступна только администратору.
Страница для регистрации менеджеров. Почти ничем
не отличается от обычной страницы регистрации кроме
того, что зарегистрированный здесь пользователь имеет
права менеджера.
Чтобы запустить данный проект на своём пк, нужно:
- В среде разработки Intellij Idea создать Spring Boot проект.
- Подключить к проекту данный репозиторий.
- Сделать update проекта с репозитория.
- В СУБД MySQL создать базу данных.
- В файле application.properties ввести нужные название базы данных, имя пользователя (стандартно "root") и пароль.
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/<название_БД>
spring.datasource.username=<имя_пользователя>
spring.datasource.password=<пароль>
- После этого можно запускать проект и после успешного запуска открывать в браузере ссылку