/job4j_dreamjob

Java EE, Servlets, JSP, JSTL, PostgreSQL, JDBC, Liquibase, JUnit4, Mockito, PowerMock, Maven, Tomcat

Primary LanguageJava

Работа мечты

Build Status    codecov

Проект для изучения 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

  1. Для успешной сборки и работы проекта на вашем компьютере должны быть установлены:
    1. JDK 14(+)
    2. Maven
    3. PostgreSQL
    4. Tomcat
  2. В PostgreSQL создайте базу с именем "dream_job"
  3. Скачайте проект к себе на компьютер с помощью команды
    git clone https://github.com/ReyBos/job4j_dreamjob.git
    перейдите в корень проекта
  4. Добавьте настройки для доступа к базе данных, для этого внесите соответствующие изменения в файле 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>
    
  5. Выполните команду mvn install -Pproduction в корне проекта для его сборки
    Будет выполнена миграция БД с помощью Liquibase.
    В случае успешной сборки появится файл target/job4j_dreamjob-1.0.war
    переименуйте его в dreamjob.war
  6. Для запуска веб-приложения вам нужно скопировать dreamjob.war в папку webapps вашего Tomcat
  7. После запуска сервера приложение будет доступно по адресу
    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 на разных портах

Связаться со мной по всем интересующим вопросам вы можете здесь:

alt-text   alt-text   alt-text   alt-text   alt-text