Проект для изучения Java EE.
Это приложение - биржа работы.
В системе будут два типа пользователей: кандидаты и менеджеры. Кандидаты будут публиковать резюме. Менеджеры будут публиковать вакансии о работе.
Кандидаты могут откликнуться на вакансию. Менеджер может пригласить на вакансию кандидата.
- Java 14
- Java EE Servlets, JSP, JSTL
- PostgreSQL, JDBC, Liquibase
- JUnit, Mockito, PowerMock
- Maven, Tomcat
- HTML, JavaScript, jQuery, JSON
- Material Design library
.
|-db
|---scripts
|-src
|---main
|-----java/ru/job4j/dream
|-------------filter
|-------------model
|-------------servlet
|-------------store
|-----resources
|-----webapp
|-------WEB-INF
|-------css
|-------js
|---test
|-----java/ru/job4j/dream
└─------------servlet
-
Для успешной сборки и работы проекта на вашем компьютере должны быть установлены:
- JDK 14(+)
- Maven
- PostgreSQL
- Tomcat
- В PostgreSQL создайте базу с именем "dream_job"
-
Скачайте проект к себе на компьютер с помощью команды
git clone https://github.com/ReyBos/job4j_dreamjob.git
перейдите в корень проекта -
Добавьте настройки для доступа к базе данных, для этого внесите соответствующие изменения в файле
src/main/resources/db.properties
и в файле конфигурации проектаpom.xml
<profile> <id>production</id> <properties> <db.url>jdbc:postgresql://127.0.0.1:5432/dream_job</db.url> <db.username>postgres</db.username> <db.password>password</db.password> <db.driver>org.postgresql.Driver</db.driver> </properties> </profile>
-
Выполните команду
mvn install -Pproduction
в корне проекта для его сборки
Будет выполнена миграция БД с помощью Liquibase.
В случае успешной сборки появится файлtarget/job4j_dreamjob-1.0.war
переименуйте его вdreamjob.war
-
Для запуска веб-приложения вам нужно скопировать
dreamjob.war
в папкуwebapps
вашего Tomcat -
После запуска сервера приложение будет доступно по адресу
http://localhost:8080/dreamjob/
Основной функционал приложения доступен зарегистрированным пользователям. Новым клиентам доступен раздел регистрации и авторизации.
Это достигается за счет фильтрации всех запросов в ru.job4j.dream.filter.AuthFilter
. Сам фильтр (и все сервлеты) подключается
к проекту в src/main/webapp/WEB-INF/web.xml
Все операции сохранения/изменения/получения пользовательских данных описаны в интерфейсе ru.job4j.dream.store.Store
- Адреса
-
/reg.do
/auth.do
- Сервлеты
-
ru.job4j.dream.servlet.RegServlet
ru.job4j.dream.servlet.AuthServlet
- Модели
-
ru.job4j.dream.model.User
Не авторизованному пользователю доступны только эти две страницы.
- Адреса
/index.do
- Сервлеты
-
ru.job4j.dream.servlet.IndexServlet
ru.job4j.dream.servlet.LogoutServlet
- Модели
После успешной авторизации/регистрации пользователь попадает на главную страницу. Здесь отображаются свежие вакансии и новые кандидаты что были добавлены за текущий день. Для выхода из приложения нужно кликнуть на кнопку "выйти" в верхнем меню.
- Адреса
/post.do
/post/edit.do
- Сервлеты
-
ru.job4j.dream.servlet.PostServlet
ru.job4j.dream.servlet.PostEditServlet
ru.job4j.dream.servlet.PostDeleteServlet
- Модели
-
ru.job4j.dream.model.Post
Пользователям доступна возможность добавлять/изменять/удалять вакансии. В вакансии возможно добавить заголовок и описание.
- Адреса
/candidate.do
/candidate/edit.do
- Сервлеты
-
ru.job4j.dream.servlet.CandidateServlet
ru.job4j.dream.servlet.CandidateEditServlet
ru.job4j.dream.servlet.CandidateDeleteServlet
ru.job4j.dream.servlet.CandidatePhotoServlet
ru.job4j.dream.servlet.CandidatePhotoDeleteServlet
ru.job4j.dream.servlet.CityServlet
- Модели
-
ru.job4j.dream.model.Candidate
ru.job4j.dream.model.Photo
ru.job4j.dream.model.City
Пользователям доступна возможность добавлять/изменять/удалять кандидатов. У кандидата должно быть имя и город (что бы добавить город в список нужно создать новую миграцию, пример можно посмотреть в db/scripts/update_006.sql
). После того как кандидат был создан, ему можно добавить одну фотографию. При удалении кандидата удаляется и его фотография.
Ресурсы которые были полезны при создании проекта
- link - сервлеты и Ajax
- link - вывод древовидной структуры папок в консоль
- link - готовый набор html элементов
- link - установка и запуск Tomcat на macOS
- link - расположение папки webapps (Tomcat)
- link - запуск Tomcat на разных портах
Связаться со мной по всем интересующим вопросам вы можете здесь: