Skip to content

devshayan101/salat-times_2.0

Repository files navigation

Salat Time App

Overview

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.

Detailed Features

  • 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.

Technical Stack

  • 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)

Project Structure

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
└─ ...

Setup & Development

  1. Clone the repository
    git clone <repo-url>
    cd salatTime_2.0_new
  2. Install dependencies
    npm install
  3. Run the app
    npx expo start
    • Choose Run on Android device/emulator or Run on iOS simulator.
  4. Environment Variables (if any) – configure in a .env file as needed.

Testing & Troubleshooting

  • Build Error (androidx.compose.compiler): Add the following to android/build.gradle inside allprojects:
    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.

Contributing

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.

License

This project is licensed under the MIT License.


Built with ❤️ by the Salat Time development team.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors