Skip to content

Task Management System - Java Core console application with Hibernate

Notifications You must be signed in to change notification settings

divergenny/job4j_tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

job4j_tracker

codecov

Проект - Трекер ✨

📝 Описание

job4j_tracker — консольное приложение для управления задачами (Task Management System). Приложение реализует базовый функционал CRUD-операций (создание, чтение, обновление и удаление задач) и поддерживает различные способы хранения данных.

🔬 Функционал

  1. Добавление и управление задачами:
    • Создание новых задач;
    • Редактирование существующих задач;
    • Удаление задач.
  2. Поиск и отображение данных:
    • Поиск задач по имени и ID;
    • Вывод всех текущих задач.
  3. Гибкая система хранения данных:
    • In-Memory Storage (Store -> MemTracker) — реализация через MemTracker (для временного хранения данных в оперативной памяти);
    • БД PostgreSQL.
  4. Хранение в базе данных PostgreSQL:
    • Работа с базой через JDBC (реализация Store -> SqlTracker);
    • Работа с базой через Hibernate и HQL (реализация Store -> HbmTracker).
  5. Профили окружения:
    • Поддержка профилей test и prod через Maven.
  6. Поддержка CI/CD:
    • Используется GitHub Action для автоматической сборки и тестирования проекта.
  7. Миграция и тестирование:
    • Автоматическое создание и обновление структуры БД с помощью Liquibase;
    • Модульное тестирование с использованием JUnit 4 и Mockito;
    • Тестирование с in-memory БД H2.

⚙️ Сборка и запуск

mvn install - для сборки
java -jar target/job4j_tracker.jar - для запуска

Приложение использует Liquibase для автоматического создания и миграции структуры БД. Для запуска в production необходимо наличие PostgreSQL.

💻 Технологический стек

  • Java 14
  • Hibernate, PostgreSQL, JDBC
  • Liquibase
  • Log4j
  • Тесты работают с H2 Database: JUnit 4, Mockito
  • Maven (с профилями test и prod)
  • Apache Tomcat
  • Lombok
  • GitHub Actions

🌐 Контакты

📧 divergenny@gmail.com

Releases

No releases published

Packages

No packages published

Languages