Об этом проекте

stdy4u — офлайн-ориентированный спутник студента, созданный на Flutter. Все данные хранятся локально на устройстве через Hive; регистрация или аккаунт не требуются. Управление курсами — добавляйте курсы с указанием названия, кода, преподавателя, аудитории, расписания и цветовой кодировки. Отслеживайте оценки по каждому курсу, кредитные часы, целевой GPA и визуальные индикаторы прогресса на главном экране. Долгое нажатие позволяет редактировать или удалять. Задачи и заметки — создавайте задачи со сроками выполнения и уровнями срочности (обычная/срочная). У каждого курса есть отдельная вкладка заметок и фильтруемый список задач. Выполненные задачи анимируются эффектом переключения. Материалы курсов — прикрепляйте ссылки, заметки или загруженные файлы (PDF, изображения, документы). Файлы копируются в директорию приложения для доступа офлайн и открываются одним нажатием. Трекер посещаемости — отмечайте посещения как присутствие, опоздание, отсутствие или оправданное. Месячный календарь позволяет нажать на любой день и увидеть все запланированные занятия. Автоматический расчёт процента с настраиваемыми порогами предупреждений. Быстрые действия отображаются в виде чипов в ежедневном расписании. Таймер Pomodoro — настраиваемые.focus-сессии (1–60 мин), короткие перерывы (1–30 мин) и длинные перерывы (1–60 мин) с автоматическим чередованием. Включает счётчик сессий, тактильную обратную связь, опциональное фоновое воспроизведение музыки и недельную диаграмму аналитики фокуса. Анализ экранного времени — читает статистику использования устройства через нативный мост UsageStatsManager. Ежедневные записи по каждому приложению сохраняются локально в Hive и отображаются в развёртываемой панели на экране статистики. Статистика и аналитика — расчёт CGPA с конвертацией в буквенные оценки (A–F), графики распределения оценок по курсам, кольцевые индикаторы прогресса по предметам и недельная диаграмма времени Pomodoro. Графики нарисованы вручную через CustomPaint без сторонних библиотек. Комиксный дизайн — нео-бруталистская эстетика в стиле манги: плоские поверхности, острые чёрные границы 2,5 px, жёсткие тени смещения и нулевой радиус скругления. Поддерживает светлую, тёмную и системную темы с фирменным акцентом Ink Red (#E63946) на состаренной бумаге и тёмных фонах. Пользовательская навигационная панель использует плоскую геометрию, толстые верхние границы и надписи ЗАГЛАВНЫМИ БУКВАМИ. Тактильная обратная связь и звуки нажатия отключаемы. Уведомления и сигналы — еженедельные повторяющиеся напоминания о занятиях (за 15 минут), напоминания о задачах, оповещения о сессиях и точные сигналы через SCHEDULE_EXACT_ALARM с нативным приёмником. Запрос на исключение из оптимизации батареи делается во время выполнения для надёжной работы. Обновления внутри приложения — проверяет релизы GitHub при запуске и отображает примечания к релизам в markdown. Загрузка поддерживает паузу, возобновление и отмену; прогресс сохраняется при прерываниях. Архитектура — Чистая архитектура с тремя слоями (presentation, domain, data), связанными через Riverpod. Навигация использует GoRouter с ShellRoute, содержащим три вкладочных маршрута внутри IndexedStack. Управление состоянием основано на паттерне общего счётчика обновлений через Riverpod provider. Технологический стек: Flutter 3.27+, Dart >=3.6.0, Riverpod, GoRouter, Hive, table_calendar, flutter_local_notifications, just_audio, build_runner с hive_generator и riverpod_generator. CI/CD через GitHub Actions. Поддержка платформ: Android и iOS. Лицензия AGPL-3.0. План развития включает виджеты главного экрана, быстрые действия и функцию карточек для запоминания.