Accurate prayer times for Algerian Wilayas.
Overview • Live Demo • Key Features • Screenshots • Tech Stack • Getting Started
Miqaat is a web application designed to provide accurate prayer times specifically for users in Algeria.
- Choose a wilaya manually or use GPS detection.
- See the current prayer time with a live countdown to the next one.
- View weekly and monthly prayer schedules in a clean calendar layout.
- Receive frontend notifications 1 minute before each prayer.
- Display the Hijri date alongside the live clock.
The home screen shows the current prayer time, upcoming prayer, and a live clock.
weekly/monthly prayer time calendar.
- Frontend: React (React Router v7)
- Language: TypeScript
- Styling:
- Tailwind CSS (utility-first)
- Custom CSS (design tokens, shimmer animations, theming system)
- Icons: Lucide React
- State / Persistence: React Context and LocalStorage
- UI Layer
- Routes / Pages
- Blocks / Layout Sections
- Atomic Components
- Logic & State
- Custom Hooks
- Global Context
- LocalStorage
- Data Layer
- API Services
- External AlAdhan API
- Static Data / Types
app/routes/: Entry points for each page (Home, Settings, Calendar, Location).app/blocks/: Complex, layout-specific sections (e.g., Prayer Grid, Search Header) that compose pages.app/components/: Reusable atomic UI elements (Buttons, Inputs, Skeletons) following a consistent design system.app/hooks/: Encapsulated business logic (GPS tracking, prayer time calculations, countdown timers).app/context/: Global state management using React Context for user preferences and location data.app/services/: Data fetching layer and API clients for external communication.app/data/: Static configuration, types, and constants.app/i18n/: Localization dictionary and logic for Arabic/English support.
Miqaat integrates with two external APIs for accurate prayer times and Islamic date conversion.
- Source: aladhan.com
- Endpoints:
/v1/calendarByCity: Fetches a full annual calendar for the 58 traditional Algerian Wilayas using their city names./v1/calendarByAddress: Fetches a full annual calendar using coordinates for the newly established southern wilayas.
- Implementation: Logic is centralized in alAdhanService.ts (fetching, caching, and mapping) and api.ts (application mapping). All requests use
method=19(Algerian Ministry of Religious Affairs and Endowments).
- Source: aladhan.com/islamic-calendar-api
- Endpoint:
/v1/gToH: Converts Gregorian dates to Hijri with accurate month/weekday names in English and Arabic.
- Implementation:
fetchHijriDate()in the service layer, called fromcurrent-time-card.tsx. Falls back to a client-side approximate algorithm if the API is unavailable.
- Node.js (LTS version recommended)
- npm or yarn
- Clone the repository:
git clone https://github.com/Haroune-dev/miqaat.git
- Install dependencies:
npm install
- Start the development server:
npm run dev
Haroune-dev

.png)
.png)