How aldikurniawan19/ramadhan-app works
Aplikasi Ramadhan is a user-facing Ramadan worship PWA. Users register or sign in, then use the main app to view prayer times and Ramadan status, read Quran and track reading, record fasting, and access devotional tools; account-backed progress persists per user. The map preserves the README’s major feature areas, including audio, duas, tasbih, Qibla, calendar, Eid, and reminders. API handlers and prayer-time code were sampled; links for other documented capabilities are limited to routes and modules shown in the tree.
Main entry points: NotificationManager.tsx Reminders · route.ts Prayer Times API · page.tsx Sign In / Register · layout.tsx Main App
Components 33
Accounts & App Shell
- Sign In / Register
app/(auth)/login/page.tsx - Main App
app/(main)/layout.tsx - User Profile
app/(main)/profil/page.tsx - PWA Service Worker
public/sw.js
Worship & Ramadan
- Home & Daily Verse
app/(main)/page.tsx - Prayer Schedule
app/(main)/jadwal-sholat/page.tsx - Prayer State
app/context/PrayerTimesContext.tsx - Fasting Calendar
app/(main)/kalender/page.tsx - Fasting State
app/context/PuasaContext.tsx - Daily Duas
app/(main)/doa/page.tsx - Digital Tasbih
app/components/TasbihModal.tsx - Qibla Compass
app/(main)/kiblat/page.tsx - Eid Countdown
app/components/EidCountdown.tsx - Reminders
app/components/NotificationManager.tsx - Notification Panel
app/components/NotificationPanel.tsx
Quran Reading
- Surah Browser
app/(main)/quran/page.tsx - Quran Reader
app/(main)/quran/[nomor]/page.tsx - Murottal Player
app/components/AudioPlayer.tsx
APIs & Persistence
- Authentication
app/api/auth/[...nextauth]/route.ts - Registration
app/api/register/route.ts - Auth Config
lib/auth.ts - Prayer Times API
app/api/prayer-times/route.ts - Fasting Logs API
app/api/puasa/route.ts - Dua API
app/api/doa/route.ts - Qibla API
app/api/qibla/route.ts - Eid Info API
app/api/eid-info/route.ts - Ramadan Info API
app/api/ramadan-info/route.ts - Reading History API
app/api/quran-history/route.ts - City Settings API
app/api/user/city/route.ts - PostgreSQL
Other components
- User
- Aladhan API
- EQuran API
Connections 44
- User → Sign In / Register: opens account
- Sign In / Register → Authentication: signs in
- Sign In / Register → Registration: registers
- Authentication → Auth Config: uses config
- Auth Config → PostgreSQL: reads credentials
- Registration → PostgreSQL: creates account
- User → Main App: opens app
- Main App → Home & Daily Verse: shows home
- User → Prayer Schedule: checks times
- Prayer Schedule → Prayer State: uses state
- Prayer State → Prayer Times API: fetches times
- Prayer Times API → Auth Config: checks session
- Prayer Times API → PostgreSQL: reads city
- Prayer Times API → Aladhan API: requests timings
- User → Fasting Calendar: tracks fasting
- Fasting Calendar → Fasting State: uses state
- Fasting State → Fasting Logs API: loads and updates
- Fasting Logs API → PostgreSQL: reads and writes logs
- User → Daily Duas: opens duas
- Daily Duas → Dua API: loads duas
- Dua API → EQuran API: tries dua source
- User → Digital Tasbih: counts dhikr
- User → Qibla Compass: finds direction
- Qibla Compass → Qibla API: loads direction
- Qibla API → PostgreSQL: reads city
- Qibla API → Aladhan API: requests coordinates and bearing
- Home & Daily Verse → Eid Countdown: shows countdown
- Eid Countdown → Eid Info API: loads Eid date
- Eid Info API → Aladhan API: converts Hijri dates
- Home & Daily Verse → Ramadan Info API: loads Ramadan status
- Main App → Reminders: runs reminders
- Reminders → Prayer State: reads prayer times
- Reminders → Fasting State: reads fasting status
- Reminders → Reading History API: fetches reading history
- Reminders → Notification Panel: adds notifications
- User → Surah Browser: browses surahs
- Surah Browser → Quran Reader: opens surah
- Quran Reader → Reading History API: saves reading position
- Quran Reader → Murottal Player: plays recitation
- Reading History API → PostgreSQL: reads and writes history
- User → User Profile: manages account
- User Profile → City Settings API: updates city
- City Settings API → PostgreSQL: updates user
- User → PWA Service Worker: installs PWA