Salat Time is a React Native mobile application built with Expo that helps Muslims track daily prayer times, find Qibla direction, and manage various related utilities. It offers a premium, modern UI with dark/light theme support, customizable settings, and admin messaging capabilities.
- Accurate Prayer Times: Calculates prayer times based on the user's location using multiple calculation methods (e.g., Muslim World League, ISNA) and supports different madhabs (Hanafi, Shafi).
- Qibla Direction Finder: Integrated compass that shows the direction to the Kaaba using device location and orientation sensors.
- Tasbih Counter: Digital prayer bead counter with customizable increments.
- Hijri Calendar Integration: Displays the Islamic (Hijri) date alongside the Gregorian calendar.
- Prayer Time Notifications: Schedule local notifications for each prayer with customizable sounds and the ability to enable/disable per prayer.
- Admin Message System: Backend‑driven messages that can be pushed to users (MongoDB integration).
- Customizable Settings:
- Choose calculation method and madhab.
- Select notification sounds per prayer.
- Theme toggle (dark/light) with glassmorphism UI.
- Multiple Madhab Support: Switch between Hanafi and Shafi calculations for Asr and Isha prayers.
- Donation System: In‑app donation flow for supporting the project.
- Dark/Light Theme: Premium UI with smooth gradients, glass‑like cards, and micro‑animations.
- Responsive Design: Optimized for various screen sizes and orientations.
- Localization Ready: Structured to allow future language translations.
- Framework: React Native with Expo
- Language: TypeScript
- State Management: React Context (ThemeContext, Prayer data)
- Backend: MongoDB (admin messages)
- Notifications: expo‑notifications
- Location & Sensors: expo-location, expo-sensors
- Styling: Vanilla CSS‑in‑JS via StyleSheet, custom theme system
- Build Tools: Expo CLI (
npx expo start)
app/
├─ components/ # UI components (PrayerCard, NotificationToggle, etc.)
├─ screens/ # Main screens (MessagesScreen, QiblaScreen)
├─ services/ # Business logic (notificationService, prayerTimeCalculator)
├─ utils/ # Helper utilities (timeUtils, hijriCalendar, theme)
├─ types/ # TypeScript type definitions
├─ _layout.tsx # Root layout for navigation
└─ ...
- Clone the repository
git clone <repo-url> cd salatTime_2.0_new
- Install dependencies
npm install
- Run the app
npx expo start
- Choose Run on Android device/emulator or Run on iOS simulator.
- Environment Variables (if any) – configure in a
.envfile as needed.
- Build Error (
androidx.compose.compiler): Add the following toandroid/build.gradleinsideallprojects:configurations.all { resolutionStrategy { force "androidx.compose.compiler:compiler:1.5.3" } }
- Notification Permissions: On iOS, ensure you have the proper entitlements configured.
- Location Permissions: The app requires location access to compute prayer times and Qibla direction.
Contributions are welcome! Please fork the repository, create a feature branch, and submit a pull request. Follow the existing code style and run npm run lint before submitting.
This project is licensed under the MIT License.
Built with ❤️ by the Salat Time development team.