Pocket Mosque is a multifunctional prayer app designed to assist your journey in this dunya. Built with React Native, it ensures privacy, security, and user autonomy. Our app provides accurate prayer times, Qibla direction, a collection of Duas, and push notifications to keep you connected and on schedule.
We are committed to creating a reliable and user-friendly app that respects your privacy. Pocket Mosque is open-sourced under the MIT license, inviting community feedback, contributions, and code reviews to help us improve and evolve.
- Prayer times
- Qibla Direction
- Duas page
- Push Notifications
Pocket Mosque's source code is released under the terms of the MIT license.
We welcome contributions from the community! Whether you're fixing bugs, improving the codebase, or adding new features, your efforts are appreciated. To get started, please follow these guidelines:
-
Fork the Repository:
- Navigate to the main repository and fork it to your own GitHub account.
-
Clone the Fork:
- Clone your forked repository to your local machine using the following command:
git clone https://github.com/your-username/pocketmosque.git
- Clone your forked repository to your local machine using the following command:
-
Create a Branch:
- Create a new branch for your feature or bug fix:
git checkout -b feature-or-bugfix-name
- Create a new branch for your feature or bug fix:
-
Make Changes:
- Make your changes in the new branch. Ensure your code follows the project's coding standards and includes appropriate tests when needed.
-
Commit Changes:
- Commit your changes with a descriptive commit message:
git commit -m "Description of the feature or fix"
- Commit your changes with a descriptive commit message:
-
Push Changes:
- Push your changes to your forked repository:
git push origin feature-or-bugfix-name
- Push your changes to your forked repository:
-
Create a Pull Request:
- Navigate to the original repository and create a pull request from your branch. Provide a detailed description of your changes and any relevant information.
- All contributions will be reviewed by the maintainers.
- Ensure your pull request is linked to any relevant issues or feature requests.
- Be responsive to feedback and make necessary changes as requested by the reviewers.
- If you encounter any bugs or have feature requests, please open an issue in the repository. Provide as much detail as possible to help us understand and resolve the issue efficiently.
- We are committed to fostering an open and welcoming environment. Please read and adhere to our Code of Conduct to ensure a positive experience for all contributors.
Thank you for contributing to Pocket Mosque! Your involvement is key to the project's success and continuous improvement.
Currently to run the app you need to use the Dev client because the package react-native-compass-heading only works in the Dev client and not in the managed workflow.
This guide will walk you through setting up your development environment and building the app for both Android and iOS.
Before you begin, make sure you have the following tools and software installed:
- Node (>= 18)
- Ruby (>= 2.6.10)
- Yarn
- Android Studio (for Android development)
- Xcode 15 (for iOS development)
For detailed instructions on setting up the environment, refer to the React Native documentation.
Create a .env
file in the root directory of your project and populate it with the following data:
EXPO_PUBLIC_WEATHER_API_KEY=https://openweathermap.org/api
EXPO_PUBLIC_LOCATION_API_KEY=https://developer.here.com/
EXPO_PUBLIC_SENTRY_DSN=https://sentry.io/welcome/
- All the environment variables are optional, but it is recommended to include the weather and location API keys for full functionality. Both APIs are free to use (provided the number of calls remains within reasonable limits). If these keys are not provided, default values are set within the app.
- The Sentry DSN is completely optional and can be added at the user's discretion for error tracking.
eas build -profile development platform --android
cd ios
pod install
cd ..
eas build -profile development-simulator platform --ios
npx expo start --dev-client
If you have any trouble building, give us a message in our Discord or create an issue on Github
- Migrate the codebase to TypeScript
- Refactor any poorly written code
- Launch app to Play Store
- Revamp the Duas page
- Implement a Quran screen
Special thanks to the team at Islamic Network for providing the prayer time API.