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
- Переконайтеся, що у вас встановлено:
- Java Development Kit (JDK) версії 22 (або 15+ з підтримкою JavaFX 24+).
- Apache Maven.
- Клонуйте репозиторій:
git clone <URL-репозиторію> cd BookDiary
- Запустіть додаток за допомогою 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 .

