How the-jddev/shs-calendar works
SHS Calendar is an offline-first Android calendar and personal-planning app. The main workflow starts in the calendar UI, resolves dates across Gregorian, Bengali and Hijri systems, and presents holidays and time-based details; users can also manage events, tasks and notes, search their data, set reminders, and exchange or sync calendars. Islamic tools, weather, widgets and appearance settings are distinct supporting capabilities. The graph uses documented capabilities and sampled implementation relationships; several UI and orchestration paths are represented at their existing directory paths because their source was not sampled.
Main entry points: MainActivity.kt Calendar screen · Repositories.kt Data repositories · ConversionEngine.kt Conversion hub · ui Islamic tools
Components 29
Calendars and time
- Conversion hub
app/src/main/java/com/shs/calendar/calendar/ConversionEngine.kt - Bengali calendar
app/src/main/java/com/shs/calendar/calendar/BengaliEngine.kt - Hijri calendar
app/src/main/java/com/shs/calendar/calendar/HijriEngine.kt - Gregorian calendar
app/src/main/java/com/shs/calendar/calendar/GregorianEngine.kt - Holiday resolver
app/src/main/java/com/shs/calendar/holidays/HolidayEngine.kt - Solar calculations
app/src/main/java/com/shs/calendar/astronomy/SolarEngine.kt - Weather provider
app/src/main/java/com/shs/calendar/weather/WeatherRepository.kt
Planning and data
- Data repositories
app/src/main/java/com/shs/calendar/data/repository/Repositories.kt - Room database
app/src/main/java/com/shs/calendar/data/CalendarDatabase.kt - Global search
app/src/main/java/com/shs/calendar/search/SearchEngine.kt - Conflict detection
app/src/main/java/com/shs/calendar/conflict/ConflictDetector.kt - Reminder scheduler
app/src/main/java/com/shs/calendar/reminders/ReminderScheduler.kt
Islamic and location tools
- Prayer times
app/src/main/java/com/shs/calendar/prayer/PrayerEngine.kt - Qibla calculation
app/src/main/java/com/shs/calendar/qibla/QiblaEngine.kt - Dua collection
app/src/main/java/com/shs/calendar/dua/DuaCollection.kt
Exchange and sync
- Import and export
app/src/main/java/com/shs/calendar/io - Sync coordinator
app/src/main/java/com/shs/calendar/sync/SyncCoordinator.kt - CalDAV engine
app/src/main/java/com/shs/calendar/sync/CalDavEngine.kt
App surfaces
- Calendar screen
app/src/main/java/com/shs/calendar/ui/MainActivity.kt - Planning screens
app/src/main/java/com/shs/calendar/ui/event/EventsAgendaActivity.kt - Task screen
app/src/main/java/com/shs/calendar/ui/task/TasksActivity.kt - Notes screen
app/src/main/java/com/shs/calendar/ui/note/NotesActivity.kt - Islamic tools
app/src/main/java/com/shs/calendar/ui - CalDAV accounts
app/src/main/java/com/shs/calendar/ui/caldav - Home widgets
app/src/main/java/com/shs/calendar/widget/WidgetCore.kt - Appearance settings
app/src/main/java/com/shs/calendar/ui/appearance/ThemeManager.kt
Other components
- Calendar user
- Open-Meteo
- Configured DAV server
Connections 32
- Calendar user → Calendar screen: opens calendar
- Calendar screen → Conversion hub: resolves dates
- Conversion hub → Bengali calendar: converts dates
- Conversion hub → Hijri calendar: converts dates
- Conversion hub → Gregorian calendar: uses calendar
- Calendar screen → Holiday resolver: shows holidays
- Calendar screen → Solar calculations: shows astronomy
- Calendar screen → Planning screens: opens agenda
- Calendar screen → Task screen: opens tasks
- Calendar screen → Notes screen: opens notes
- Planning screens → Data repositories: reads and saves
- Task screen → Data repositories: reads and saves
- Notes screen → Data repositories: reads and saves
- Data repositories → Room database: reads and writes
- Calendar screen → Global search: searches records
- Calendar screen → Conflict detection: checks conflicts
- Planning screens → Reminder scheduler: schedules reminders
- Calendar screen → Islamic tools: opens toolkit
- Islamic tools → Prayer times: computes prayer times
- Prayer times → Solar calculations: uses solar events
- Islamic tools → Qibla calculation: computes direction
- Islamic tools → Dua collection: shows duas
- Calendar screen → Weather provider: requests weather
- Weather provider → Open-Meteo: fetches forecasts
- Calendar screen → Import and export: imports and exports
- Calendar screen → CalDAV accounts: configures sync
- CalDAV accounts → Sync coordinator: starts sync
- Sync coordinator → CalDAV engine: coordinates exchange
- CalDAV engine → Configured DAV server: pulls and pushes
- CalDAV engine → Data repositories: maps local events
- Calendar screen → Home widgets: provides calendar surface
- Calendar screen → Appearance settings: applies appearance