Logo Lanfrica

Ibnuawf/hijrical

Record type:

software
Creator:
Ibn
Host:
Tri-calendar Android app: Gregorian, Hijri and Ethiopic calendars with events and accessibility-first UI — Flutter # Hijrical A multi-calendar Flutter application that displays and manages events across three calendar systems: **Gregorian**, **Ethiopian**, and **Hijri (Islamic)**. All event data is kept in a single source of truth (UTC Gregorian `DateTime`), with culturally authentic display layers for each calendar system. ## Features - **Multi-calendar support** — switch seamlessly between Gregorian, Ethiopian, and Hijri month views. - **Custom Ethiopian calendar logic** — a self-contained, library-free Gregorian ↔ Ethiopian conversion implementation. - **Event management** — full CRUD for events with title, description, location, attendees, notes, and color-coding, via a step-by-step event wizard. - **Recurring events with exceptions** — daily/weekly/monthly/yearly recurrence, plus the ability to modify or delete a single occurrence without affecting the series. - **Holidays and special days** — calendar-system-specific holidays, visually distinguished from user events. - **Search and filtering** — real-time search across event fields with multi-criteria filters (date ranges, categories, calendar systems). - **Accessibility** — WCAG 2.1 AA-oriented: semantic labels for screen readers, full keyboard navigation, high-contrast mode, dynamic text scaling (1.0x–2.0x), 44px minimum touch targets, and reduced-motion support. - **Responsive and gesture-friendly UI** — mobile/tablet/desktop breakpoints, swipe navigation between months, long-press context menus, drag-and-drop event handling, haptic feedback. - **Localization-aware display** — cultural numerals (e.g., Arabic numerals for the Hijri view) and per-calendar theming. - **Data persistence** — events are stored locally with `shared_preferences`; all dates are stored in UTC and rendered in local time. ## Architecture - **State management:** `provider`, separating business logic from UI. - **`lib/main.dart`** — app entry point and providers wiring. - **`lib/widgets/`** — calendar grids and month views (Gregorian/Ethiopi …