Skip to content

Ramadan Clock

websiteLast commit

🌙 District-aware Sehri and Iftar schedules for Bangladesh, with PDF exports and protected timetable management. Next.js, PostgreSQL, Prisma.

Role
Product design and full-stack engineering
Scope
Product workflows, data boundaries, and delivery
Status
Pre-release application
Ramadan Clock interface preview

Problem

Sehri/Iftar schedules need a clear local-time public view and an auditable maintenance workflow because external prayer-time sources, district selection, and timetable corrections can change the result.

Constraints

  1. C1

    Calculated times depend on source, method, location, and local authority.

  2. C2

    External fetching requires retry/rate limiting and must not overwrite validated data indiscriminately.

  3. C3

    Duplicate date/location rows and malformed bulk imports must be rejected.

Architecture

Next.js public/admin UI; schedule service for query/import/status/formatting; Prisma/PostgreSQL with unique (date, location) records and tagged cache; Aladhan adapter with retry/token-bucket controls plus export generators.

01

Interface

Next.js public/admin UI.

02

Domain

Schedule service for query/import/status/formatting.

03

Data and integrations

Prisma/PostgreSQL with unique (date, location) records and tagged cache.

04

Quality and delivery

Aladhan adapter with retry/token-bucket controls plus export generators.

Decisions

D1

Persist normalized date/location times

Persist normalized date/location times rather than calculate every public request.

D2

Validate JSON/CSV size fields row limits and duplicates before writes

Validate JSON/CSV size, fields, row limits, and duplicates before writes.

D3

Use tagged caching/revalidation for reads and explicit source/method caveats for accuracy

Use tagged caching/revalidation for reads and explicit source/method caveats for accuracy.

Contribution

  • Built today/calendar/location views and live status.
  • Implemented authenticated administration, multi-district fetch progress, upload history, and cache controls.
  • Created robust JSON/CSV import and data model.
  • Added PDF/image export, API docs, Vitest, and operational guides.

Outcomes

  • Visitors can check daily and full Ramadan schedules.
  • Administrators can import/fetch/manage location data.
  • Duplicate/malformed records are rejected.
  • Users can export schedules while seeing source/accuracy guidance.

Product screenshot

Ramadan Clock interface preview
Ramadan Clock presents 🌙 District-aware Sehri and Iftar schedules for Bangladesh, with PDF exports and protected timetable management. Next.js, PostgreSQL, Prisma.

Verified stack

  • Next.js
  • TypeScript
  • PostgreSQL
  • Prisma
  • Tailwind CSS
  • NextAuth
  • Aladhan API
  • jsPDF
  • REST APIs
  • React
  • shadcn/ui
  • Radix UI
  • Zod
  • Vitest
  • GitHub Actions
  • CI/CD
  • System Design

Working through something similar?

Share your challenge, scope, and timeline to start a focused conversation.