Iqra is a tool meant to allow Muslims to search the Quran using speech recognition. This repo contains the code for the website. There are also repos for the Android client and iOS client.
The website's back-end is a Flask server, and the front-end is React combined with Redux. To run the project locally, first clone/download this repo and then navigate into the root of the directory. Then, you'll need to install the Python and JavaScript dependencies:
pip install -r requirements.txt
npm install
The next step is to duplicate the default_config.py
file and name the copy config.py
.
You can now run this project locally. Open two tabs in your terminal. In the first tab, run
python app.py
and in the second tab run
npm run dev
You can now visit the website at http://127.0.0.1:3000/.
To test the website's search-related functionality, you will need to clone the Iqra API server and then run it simultaneously.
Code style is enforced in this project for all code written in Python, JavaScript, and Sass.
To lint your Python code, install flake8 and then run flake8
in the root directory.
To lint your JavaScript and Sass, run npm run lint
. To only lint your JavaScript, run npm run eslint
, and to only lint your Sass, run npm run sasslint
.
Contributions of patches and comments are welcome. If you'd like to contribute a new feature, create an issue for it first and only open a pull request once the feature request has been approved by the project owner.
Before committing, make sure you have linted the code. There is a pre-commit hook in place to prevent committing code with JavaScript or Sass lint errors.