Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/pr-mais/noor

Noor is a mobile app designed to help in providing a comfortable reading experience for Muslims, by referencing the book "Hisnul Muslim", and some other references.
https://github.com/pr-mais/noor

dart firebase-messaging flutter hacktoberfest remote-config

Last synced: 11 days ago
JSON representation

Noor is a mobile app designed to help in providing a comfortable reading experience for Muslims, by referencing the book "Hisnul Muslim", and some other references.

Awesome Lists containing this project

README

        

# [Noor App | تطبيق نُور](https://noorathkar.com)

[![Codemagic build status](https://api.codemagic.io/apps/6208f023546bd24402e57b64/6208f023546bd24402e57b63/status_badge.svg)](https://codemagic.io/apps/6208f023546bd24402e57b64/6208f023546bd24402e57b63/latest_build)








## Overview

Noor is an islamic mobile app, consists of four main pages: home, favorite, alsabha, and settings. The data is structured in Cards that are easy to read, and has some actions that can be performed with the card content. Noor is designed to help in providing a comfortable reading experience for Muslims, by referencing the book "Hisnul Muslim", and some other references.

This project contains the codebase for the Android version that is on Play Store, it can run on iOS as well. Built with Flutter, and Firebase.

## App Preview




## How to run

_Note: the assets were replaced by placeholders, so the version you will run locally is different in look than the version in stores._

### 1. Firebase Setup

It's important to put your own Firebase service file in order to run the app, as it uses Remote Config and Firebase Messaging.

1. Create a [new Firebase project](https://console.firebase.google.com/).
2. Add a new Android or iOS app, depending on which device you want to use, and follow the configuration steps to connect Noor to your Firebase project. This could help: https://firebase.google.com/docs/flutter/setup
3. Go to Remote Config page.
4. Add a new parameter with name `noorThker`, with any value of your choice.
5. Go to Cloud Messaging page, and enable it for your project.
6. To setup the cloud function that trigger a notification each time the Remote Config variable changes on the console, find the code in [this repo](https://github.com/Maryom/Noor_RemoteConfig).

> **NOTE:** You can't really run the app without it, so make sure to set it up.
>
> The app needs some files generated the `flutterfire_cli`, specifically `lib/firebase_options.dart`, `android/app/google-services.json`, and `ios/Runner/GoogleService-Info.plist`.
>
> So make sure to follow the link in **step 2** if you haven't already.

### 2. (optional) FVM Setup

FVM is used to make sure everyone working on the project uses the same version. It is also easier to maintain since the `.fvmrc` file has the config you need to get started quickly.

It also makes it easy for **Noor** to stay on an older version without needing to do lots of upgrades and downgrades, since developers usually work on projects with different versions.

> FVM website: [https://fvm.app/](https://fvm.app/)

Once FVM is installed, run the following command to get things ready:

```
fvm use 3.22.1
```

> Be sure to check `.fvmrc` for the correct version this project uses, in case the version above is old.

### 3. Run

1. Clone the project:

```bash
git clone https://github.com/pr-Mais/noor.git
```

2. Get packages:

```bash
flutter pub get
```

3. (for android only) Edit the `android/app/build.gradle`:

This will allow you to sign the app with the debug keystore, no need to make a keystore just for development :D

```diff
- // signingConfig signingConfigs.debug
- signingConfig signingConfigs.release
+ signingConfig signingConfigs.debug
+ // signingConfig signingConfigs.release
```

1. Run:

```bash
flutter run
```

## Want to contribute?

If you encounter any bug while using the apps in store, or running it locally, please file an issue.

Contribution for enhancments are also welcome! just create a PR, and describe precisly what is your contribution.

For features request, contact us on [[email protected]](mailto:[email protected]?subject=%D8%A7%D9%82%D8%AA%D8%B1%D8%A7%D8%AD&body=%D8%A7%D9%84%D8%B3%D9%84%D8%A7%D9%85%20%D8%B9%D9%84%D9%8A%D9%83%D9%85%D8%8C)

## Credits

Shout out to the amazing designer [Shaikha Alqahtani](https://twitter.com/Ishaiookh).

The iOS version from Noor was made with native Swift by [Maryam Aljamea](https://twitter.com/0_1Mary).