- На сайте существует перечень новых автомобилей. Для удобства поиска имеется страница выбора бренда и модели.
- Бренды и автомобили выводятся в виде карточек с названием и изображением. На странице автомобиля выводятся его большая фотография и характеристики.
- Авторизованные пользователи могут смотреть автомобили и добавлять в список избранных. Неавторизованные пользователи только смотреть.
- Администратор и модератор сайта могут добавлять, изменять или удалять необходимые бренды, модели и автомобили. Для этого имеется удобный редактор. Для изменения данных используется кнопка с всплывающим PupUp окном.
- Доступ к редактору ограничивается с помощью фильтра и доступен только администратору и модератору.
- Все изображения сайта хранятся в "C:\car_catalog\image". Для изменения пути сохранения изображений имеется константа. При загрузке изображения с формы сайта изображению присваивается сгенерированный номер в диапазоне целочисленного типа данных long.
- На сайте реализована возможность выбора языка (Русский, Английский).
- Используется база данных MySQL.
- Работа с базой данных производится через Hibernate framework.
- В качестве контроллера используется DispatcherServlet из SpringMVC.
- Фильтр для преобразования кодировки в UTF-8 заимствуется из SpringMVC.
- При исключительных ситуациях, которые не могут быть обработаны программой, данные об ошибке записываются в log файл с помощью Log4j.
- Для предотвращения взлома аккаунта и кражи паролей из базы данных реализованы следующие функции:
- При регистрации пользователя пароль соединяется с "солью". "Соль" генерируется для каждого пользователя и сохраняется в базе данных. Далее высчитывается hash по технологии SHA-256.
- Полученный hash шифруется по технологии AES. Ключ и вектор хранятся локально на компьютере (сервере) и загружаются в JVM при первом запуске приложения.
- Полученный зашифрованный hash сохраняется в поле password базы данных.
- JavaServlet.
- SpringIoC.
- SpringMVC.
- Hibernateframework.
- Bootstrap 4.
- jQuery.
- Ajax.
- Log4j.
- SHA-256, AES.
- Возможность добавления автомобиля в список избранных.
- Добавить поиск по автомобилям.
- Сделать возможность сравнения выбранных пользователем автомобилей.