Skip to content

About

Repository for homework project

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sleep Tracker

Консольное приложение для анализа журнала сна. Читает записи из текстового файла и выводит статистику по длительности и качеству сна.

Учебный проект в рамках курса Java-разработки Яндекс Практикума.

Возможности

  • Чтение журнала с датами начала и окончания сна.
  • Подсчёт количества записей.
  • Расчёт минимальной, максимальной и средней длительности сна.
  • Анализ записей с плохим качеством сна.
  • Выявление бессонных ночей по данным журнала.
  • Определение хронотипа по правилам учебного проекта.
  • Обработка ошибок чтения и некорректного формата данных.

Технологии

Java 21 · Stream API · java.time · файловый ввод-вывод · JUnit 5

Формат входных данных

Каждая строка содержит начало сна, окончание сна и оценку качества, разделённые точкой с запятой:

01.10.25 23:15;02.10.25 07:30;GOOD
02.10.25 23:50;03.10.25 06:40;NORMAL
03.10.25 23:40;04.10.25 08:00;BAD
  • Формат даты и времени: dd.MM.yy HH:mm.
  • Качество сна: GOOD, NORMAL или BAD.
  • В строке должно быть ровно три поля.

Пример журнала находится в sleep_log.txt.

Запуск

Нужны JDK 21 и IntelliJ IDEA.

  1. Склонировать репозиторий:

    git clone https://github.com/plisha39-dotcom/java-sleep-tracker.git
  2. Открыть проект в IntelliJ IDEA и выбрать JDK 21.

  3. Создать конфигурацию запуска для ru.yandex.practicum.sleeptracker.SleepTrackerApp.

  4. Установить корень репозитория как рабочую папку.

  5. В поле Program arguments указать:

    src/main/resources/sleep_log.txt
    
  6. Запустить приложение. Результаты анализа появятся в консоли.

Можно передать путь к собственному файлу в том же формате.

Устройство проекта

  • SleepingSession — запись о сне.
  • SleepQuality — оценка качества.
  • SleepLogReader — чтение и разбор файла.
  • SleepAnalysisFunction — общий интерфейс функций анализа.
  • SleepAnalysisResult<T> — результат анализа с описанием и значением.
  • function — отдельные реализации анализа.
  • SleepTrackerApp — чтение аргументов, запуск анализа и вывод результатов.

Тестирование

В IntelliJ IDEA запустить тесты из src/test/java. Используется JUnit 5; зависимости подключены в настройках проекта.

Тесты проверяют чтение журнала и отдельные функции анализа: количество записей, длительность, качество сна, бессонные ночи и хронотип.

Ограничения

Приложение анализирует только переданный журнал и не собирает данные автоматически. Оценка хронотипа основана на учебных правилах. Maven и Gradle в текущем репозитории не настроены.

Учебный фокус

Обработка коллекций через Stream API, работа с датами и интервалами, разбор текстового файла, выделение независимых функций анализа и их проверка тестами.

About

Repository for homework project

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages