Skip to content

Настільний застосунок для ведення читацького щоденника на JavaFX. Дозволяє відстежувати прочитані книги, встановлювати цілі, переглядати статистику та керувати списками бажань. Використовує SQLite та Maven.

Notifications You must be signed in to change notification settings

OkayMarta/BookDiary

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 BookDiary - Читацький Щоденник

BookDiary - це настільний JavaFX додаток, призначений для ведення особистого читацького щоденника. Він дозволяє користувачам відстежувати прочитані книги, книги зі списку бажань, улюблені видання, встановлювати та відслідковувати цілі читання, а також переглядати статистику своєї читацької активності.

✨ Основні можливості

  • Управління книгами:
    • Додавання, редагування та видалення книг.
    • Збереження інформації про назву, автора, жанр.
    • Завантаження та відображення обкладинок книг.
  • Відстеження прогресу читання:
    • Статуси: "Прочитана", "Хочу прочитати".
    • Встановлення дати прочитання та оцінки (1-5 зірок).
    • Додавання особистих коментарів до книг.
  • Списки книг:
    • Прочитані книги: Список усіх прочитаних книг з можливістю сортування та фільтрації.
    • Список бажань (Wishlist): Книги, які користувач планує прочитати.
    • Улюблені книги: Окремий список для найцінніших прочитаних книг.
  • Цілі читання:
    • Встановлення місячних, річних або загальних цілей за кількістю прочитаних книг.
    • Відображення прогресу досягнення цілей.
  • Статистика:
    • Перегляд кількості прочитаних книг за обраний місяць, рік або за весь час.
  • Персоналізація:
    • Підтримка світлої та темної тем оформлення.
  • Дані:
    • Збереження даних у локальній базі даних SQLite.
    • Можливість імпорту та експорту даних (резервне копіювання у ZIP-архів).
  • Про програму:
    • Інформація про версію та автора.

🛠️ Використані технології

  • Мова програмування: Java
  • Графічний інтерфейс (GUI): JavaFX 24.0.1
  • Збірка проекту: Apache Maven
  • База даних: SQLite
  • Логування: SLF4J API з реалізацією Logback
  • Тестування: JUnit 5, Mockito

📂 Структура проекту (основні директорії)

BookDiary/
├── covers/                  # Зображення обкладинок книг (зберігаються тут)
├── logs/                    # Файли логів програми
├── src/
│   ├── main/
│   │   ├── java/            # Вихідний Java-код
│   │   │   └── com/student/bookdiary/
│   │   │       ├── model/       # Класи моделей даних (Book, Goal, Enums)
│   │   │       ├── persistence/ # Класи для роботи з базою даних (DAO, DatabaseManager)
│   │   │       ├── ui/          # Контролери JavaFX та головний клас App
│   │   │       └── util/        # Допоміжні утиліти (якщо є)
│   │   └── resources/       # Ресурси програми
│   │       ├── com/student/bookdiary/ui/  # FXML файли, CSS, шрифти, іконки
│   │       └── logback.xml   # Конфігурація логування
│   └── test/                 # Юніт-тести
├── book_diary.db            # Файл бази даних SQLite
├── BookDiary.iml            # Файл проекту IntelliJ IDEA
└── pom.xml                  # Файл конфігурації Maven

🚀 Як запустити

  1. Переконайтеся, що у вас встановлено:
    • Java Development Kit (JDK) версії 22 (або 15+ з підтримкою JavaFX 24+).
    • Apache Maven.
  2. Клонуйте репозиторій:
    git clone <URL-репозиторію>
    cd BookDiary
  3. Запустіть додаток за допомогою Maven:
    mvn clean javafx:run
    Команда завантажить залежності, скомпілює проект та запустить головне вікно програми.

🎨 Стилізація

Додаток підтримує світлу та темну теми оформлення, які можна перемикати в інтерфейсі. Стилізація реалізована за допомогою CSS:

  • src/main/resources/com/student/bookdiary/ui/css/base/core-variables.css: Основні змінні CSS (кольори, шрифти, відступи), які використовуються для обох тем.
  • src/main/resources/com/student/bookdiary/ui/css/base/core-styles.css: Базові стилі для стандартних компонентів JavaFX.
  • src/main/resources/com/student/bookdiary/ui/css/light-theme.css та dark-theme.css: Специфічні перевизначення змінних та стилів для світлої та темної тем відповідно.
  • Директорія src/main/resources/com/student/bookdiary/ui/css/components/ містить CSS файли для окремих компонентів інтерфейсу (наприклад, плитки книги, навігації, діалогів).
  • STYLE_GUIDE.md у папці css містить опис основних кольорів та типографіки, які були заплановані для дизайну.

📖 Використання

Після запуску відкриється головне вікно програми. Навігаційна панель зліва дозволяє перемикатися між основними розділами:

  • Прочитані: Список книг, які ви вже прочитали.
  • Хочу прочитати: Ваш список бажань.
  • Улюблені: Окремий список для ваших найулюбленіших книг (мають бути попередньо прочитані).
  • Статистика: Перегляд кількості прочитаних книг за обраний період (місяць/рік) та загалом.
  • Цілі: Встановлення та відстеження ваших читацьких цілей.
  • Імпорт/Експорт: Можливість створити резервну копію ваших даних або відновити їх з архіву.

Кнопка "Додати нову книгу" дозволяє додати книгу до вашого щоденника. При додаванні ви можете вказати всю необхідну інформацію та обрати статус книги.

🖼️ Знімки екрану

📘 Вікно прочитаних книг

Вікно прочитаних книг світла тема Вікно прочитаних книг темна тема

💡 Можливі майбутні покращення

  • Інтеграція з онлайн-сервісами для отримання інформації про книги (наприклад, Goodreads API, Google Books API).
  • Розширені можливості статистики (наприклад, графіки за жанрами, авторами).
  • Система нотаток та цитат для кожної книги.
  • Нагадування про цілі читання.
  • Синхронізація даних між пристроями (потребуватиме серверної частини).

👤 Автор

  • Окілка Марта Юріївна - OkayMarta .

About

Настільний застосунок для ведення читацького щоденника на JavaFX. Дозволяє відстежувати прочитані книги, встановлювати цілі, переглядати статистику та керувати списками бажань. Використовує SQLite та Maven.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published