Skip to content

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

3 stars

Watchers

1 watching

Forks

Releases

No releases published

Contributors