Техническое задание - проект "Работа мечты" с использованием Servlet.
Краткое описание проекта:
- В системе два типа пользователей: Кандидаты и кадровики.
- Кандидаты могут публиковать резюме и просматривать вакансии.
- Кадровики могут публиковать вакансии о работе и просматривать кандидатов.
- Кандидаты и кадровики могут редактировать свои вакансии или резюме.
- Система хранения паролей организованна в виде хэша (алгоритм + количество итераций + соль + хэш пароля).
- Система хранения паролей, позволяет менять алгоритм для новых паролей, сохраняя работоспособность старых паролей пользователей.
- Система авторизации и регистрации новых пользователей.
- Данные хранятся в базе данных PostgreSQL.
- Фотографии пользователей сохраняются в директорию на жёстком диске.
- Фильтры для ограничения доступа не зарегистрированных пользователей к страницам сайта.
- Cross-origin resource sharing
- Шаблон MVC
В данном проекте использовались:
- Java 11
- Servlet, JSP, JSTL.
- HTML, CSS, JavaScript, jQuery.
- PostgreSQL, Liquibase - все данные хранились в БД. По мере необходимости извлекались и использовались.
- Apache Commons DBCP - Для запросов к БД использовался Thread Pool.
- Apache Commons FileUpload - Использовался для загрузки изображений кандидатов.
- Mockito, Powermock, JUnit5 - Использовались для тестирования проекта.
- JSON - Использовался для обмена данными между jQuery и Servlet.
- SLF4J, Logback - Ведение логов в проекте.
Страница всех вакансий:
Страница добавления нового кандидата. С помощью JavaScript проверяются, чтобы поля не были пустыми. С помощью jQuery выполняется автоподстановка города из базы данных по символам, которые вводит пользователь в реальном времени:
Страница всех кандидатов: