Commit Graph

22 Commits

Author SHA1 Message Date
3d08d0cb70 feat: enhance group management and error handling in the app
- Added `forgetRecent` function in `Settings` to remove groups no longer recognized by the server from the quick-switch list.
- Updated `Status` data class in `MainViewModel` to include a `code` property for better error categorization and introduced `needsGroup` logic to determine if a group needs to be reselected.
- Modified `HomeScreen` and `ScheduleScreen` to display a "Выбрать группу" action in the banner when a group is not found, improving user experience during errors.
- Refactored `Banner` composable to support dynamic actions, allowing for more contextual responses to user errors.
2026-10-21 00:51:14 +03:00
67bb2ea6fb feat(parser): update group parsing to handle special cases and improve regex patterns
feat(parser): enhance details extraction for lessons, including handling of subgroups and room moves

feat(timetable): integrate room and teacher retrieval based on week context

test(parser): add tests for group parsing with special characters and room move scenarios

test(formats): implement tests for various lesson formats and their expected outputs

feat(rooms): introduce room management functions for handling moves and week-based plans
2026-10-21 00:34:06 +03:00
3ae7b38fca feat: implement dashboard with authentication and event logging
- Added dashboard functionality at /status with Basic Auth using DASHBOARD_PASSWORD.
- Created server-side event logging to track catalog and university status.
- Implemented traffic metrics tracking and display on the dashboard.
- Enhanced API tests to cover new dashboard features and authentication.
- Introduced CSS and JS for dashboard styling and functionality.
- Added tests for dashboard access control and data retrieval.
2026-10-21 00:04:33 +03:00
de72d003b8 feat: Add request logging and traffic metrics for API performance monitoring 2026-10-20 23:31:08 +03:00
e28d65310d feat: Implement Telegram alerts for catalog updates and failures 2026-10-20 23:14:32 +03:00
3055cbaf3c feat: Implement support for foldable devices with enhanced UI layout
- Added handling for foldable devices in MainActivity, including hinge detection and layout adjustments.
- Introduced new UI components for managing two-pane layouts on tablets and foldables.
- Updated CalendarScreen, HomeScreen, PlansScreen, and SearchScreen to utilize the new foldable layout logic.
- Created Fold.kt and Tabletop.kt to manage fold-related UI behavior and display.
- Enhanced animations for menu visibility on foldable devices.
- Updated Motion.kt to include new motion duration constants.
- Added dependency for androidx.window to support foldable features.
2026-10-20 01:12:28 +03:00
9b5062f0ed feat: add change alerts for schedule updates with notifications 2026-10-20 00:29:42 +03:00
f8984e72d9 feat: implement changes tracking for university documents
- Added a new data structure `ScheduleChanges` to represent changes when a university document is republished.
- Implemented methods to read and write changes to a local JSON file.
- Enhanced the `Repository` class to detect changes between the current and fresh timetable versions.
- Updated the `MainViewModel` to expose changes to the UI and handle marking changes as seen.
- Created UI components for displaying changes in both Home and Settings screens.
- Added support for changes in iOS views, including a new `ChangesCard` and `ChangesSheet`.
- Implemented logic to compare timetable versions and identify added, removed, and changed lessons.
2026-10-19 23:57:10 +03:00
68f9b95090 feat: Update API versioning and parser handling for improved schedule updates and error management 2026-10-19 23:29:35 +03:00
85c5baa3e5 feat: Implement rate limiting, request timeouts, and security headers for improved server protection 2026-10-19 23:15:05 +03:00
7206bf9c4a feat: Update Dockerfile and server configuration for improved health checks and error handling 2026-10-19 23:04:54 +03:00
e38c388462 Add course schedules for ISF and ITZS programs for 2026 and 2024 sessions
- Created new snapshot files for ISF credits and daily schedules for the 26-АРХ and 26-ПГС programs.
- Added summer 2026 and winter 2024 exam schedules for the 23-ИТзс program, detailing lectures, labs, and consultations.
2026-10-19 22:55:28 +03:00
15851b26cd feat: Enhance session handling in timetable and UI
- Introduced session types (exams, credits, consultations, coursework defenses) with distinct icons and colors for better visibility in the UI.
- Updated PlansScreen, ScheduleScreen, and WeekGrid to display session information appropriately.
- Modified CalendarView and PlansView to include session indicators in the calendar and plans.
- Enhanced LessonCard and CompactLesson to show session details and adjust styling based on session presence.
- Added new SessionMark component for consistent session representation across Android and iOS.
- Updated server logic to handle session entries from external documents, ensuring accurate timetable representation.
- Improved date parsing to accommodate session-related dates in various formats.
- Added tests to verify session handling and date parsing functionality.
2026-10-19 20:49:13 +03:00
db9a3f8243 feat: Enhance group selection logic to exclude duplicates for main schedules and past documents 2026-10-19 19:53:03 +03:00
5f7bffd6e4 Refactor code structure for improved readability and maintainability 2026-10-19 19:36:19 +03:00
170a44c377 Add date and time handling, models, schedule management, storage, and widget support
- Introduced `Dates.swift` for handling date and time in the university's timezone.
- Created `Models.swift` to define data structures for timetable, lessons, and directory search results.
- Implemented `Schedule.swift` for managing lesson slots and timetable functionalities.
- Developed `Storage.swift` for user settings and data persistence.
- Added `Widgets.swift` to create widgets displaying lessons and upcoming classes.
2026-10-18 20:26:12 +03:00
6b68cec34a feat: Implement caching and rate limiting for API requests 2026-10-18 17:20:29 +03:00
3dc6cc4e9e feat: Implement week grid layout for timetable display
- Added WeekGrid composable to visualize weekly timetable with lessons.
- Introduced LessonBlock for individual lesson representation.
- Created theme file for consistent color schemes across the app.
- Developed NextLessonWidget and TodayWidget for home screen integration.
- Implemented Upcoming data class to manage upcoming lessons.
- Added WidgetStyle for dynamic theming in widgets.
- Created SyncWorker for periodic timetable updates and widget refresh.
2026-10-18 16:55:12 +03:00
d900e038b6 feat: add Next Lesson widget and enhance existing widgets
- Implemented a new Next Lesson widget to display the upcoming lesson details on the home screen.
- Updated Today widget to dynamically adjust the number of lessons displayed based on available space.
- Enhanced the Settings screen to allow users to manage hidden lessons more effectively.
- Introduced harmonized color palettes for better visual consistency across themes.
- Updated the timetable API to support a new range parameter for semester-based queries.
- Added tests to ensure the new semester range functionality works as expected.
- Refactored widget styling for improved appearance on devices with different Android versions.
2026-10-18 00:39:32 +03:00
29df0aa61f feat: add tasks and notes management for lessons
- Introduced a new feature for managing tasks and notes associated with lessons.
- Added a `NotesStore` class to handle local storage of notes in JSON format.
- Implemented UI components for displaying, adding, editing, and deleting notes.
- Enhanced the `HomeScreen`, `ScheduleScreen`, and `SubjectsScreen` to integrate notes functionality.
- Updated the API to handle versioning and added error handling for outdated endpoints.
- Improved the overall user experience with visual indicators for tasks and notes in the schedule.
2026-10-17 13:35:49 +03:00
e1a787c1dd made android client 2026-10-17 04:01:58 +03:00
19ee41411b initial commit 2026-10-16 22:08:45 +03:00