Skip to content

0xzer0x/quran-companion

Repository files navigation

Ψ¨Ψ³Ω… Ψ§Ω„Ω„Ω‡ Ψ§Ω„Ψ±Ψ­Ω…Ω† Ψ§Ω„Ψ±Ψ­ΩŠΩ…

Ψ§Ω„ΨΉΨ±Ψ¨ΩŠΨ©


Quran Companion

Cross-platform desktop Quran reader & player

StandWithPalestine GitHub Release AUR Version GitHub Actions Workflow Status GitHub issues

Key Features β€’ Screenshots β€’ Download β€’ Credits β€’ Report Bug β€’ License

Table of Contents
  1. About the project
  2. Key Features
  3. Screenshots
  4. Installation
  5. Compilation
  6. Roadmap
  7. Contributing
  8. Credits
  9. License
  10. Contact

About the project ✨

Quran Companion is a cross-platform Quran reader/player with recitation download capabilities, verse highlighting, resizable quran font, and a variety of tafsir books & translations

Key Features

  • Modern UI with dark theme support
  • Read the Quran from the mushaf page or read the page verses one-by-one
  • Resizable Quran page size
  • Quran recitation player
  • Option for downloading recitations for a variety of reciters
  • Verse highlighting as its read
  • A collection of translations & tafsir books for the Quran
  • Quran verse search functionality

(back to top)

Screenshots

light.png

two-page.png

dark.png

Arabic UI

ar_light.png

ar_dark.png

(back to top)

Installation βš™οΈ

Windows

Online installer can be downloaded from here.

MacOS

  1. Download and open the application dmg.
  2. Drag the application into your Applications.

Linux

The application can be downloaded in any of the available packages (snap, flatpak, appimage, aur package).

Download Flatpak Download AppImage Get it from the Snap Store

(back to top)

Compilation πŸ› οΈ

To build the application in your system, you'll need to install the dependencies needed for it and package names might be different for each distribution, see Dependencies below for more information. You can also install most of the Qt dependencies via their installer. If you were developing Qt apps before, you probably already have them.

This project uses CMake build system, so you need to install it in order to build the project (on most Linux distributions it is available in the standard repositories as a package called cmake).

Also you can open and build/debug the project in a C++ IDE. For example, in Qt Creator you should be able to simply open CMakeLists.txt via Open File or Project in the menu after installing CMake into your system. More information about CMake projects in Qt Creator.

(back to top)

Dependencies

  • GCC / MSVC
  • CMake
  • Qt >= 6.5
    • qtbase
    • qtimageformats
    • qtsvg
    • qtmultimedia
    • qttools

Build

  1. Clone the repo, make sure to pass --depth=1 to reduce the download size
git clone --depth=1 -b main https://github.com/0xzer0x/quran-companion.git

Windows

  1. Install Qt using the online installer, make sure to select Qt Multimedia & Qt image formats

  2. Add the Qt bin directory to the system PATH variable, usually C:\Qt\6.x.x\msvc_2019\bin

  3. Build (replace 6.x.x with the Qt version you installed)

mkdir build
cd build
cmake.exe -DCMAKE_PREFIX_PATH="C:\Qt\6.x.x\msvc_2019" -DCMAKE_BUILD_TYPE=Release ..
cmake.exe --build . --config Release

Linux

  1. Install dependencies (through the Qt online installer or using your distro's package manager)
  • Ubuntu
sudo apt install build-essential cmake qt6-tools-dev qt6-base-dev qt6-image-formats-plugins qt6-multimedia-dev qt6-l10n-tools qt6-translations-l10n ffmpeg
  • Arch linux
sudo pacman -Sy base-devel cmake qt6-base qt6-multimedia qt6-tools qt6-imageformats qt6-translations ffmpeg
  1. Build

Note: if you installed Qt through the online installer, you need to pass -DCMAKE_PREFIX_PATH=~/Qt/6.x.x/gcc_64 to CMake in order for the linker to find the Qt libs

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build .

(back to top)

Roadmap 🎯

  • Add daily verse functionality
  • Add bookmarked verses tab
  • Enhance search functionality
    • Search in a range of pages only
    • Search in a specific surah only
  • Add new tafsir books
    • Aysar Al-Tafasir (al-Jazaeri)
    • al-Tashil li Ulum al-Tanzil (Ibn Juzayy)
    • Adwa' ul-Bayan (al-Shinqiti)

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing πŸ’‘

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".

Documetation πŸ“š

  • Doxygen documentation is provided for the project, to generate the documentation preform the following steps

    • git clone https://github.com/0xzer0x/quran-companion.git
    • cd quran-companion/docs
    • doxygen
  • default documentaion format is html, if you want to generate any other format modify Doxyfile accordingly

Translation 🌐

Look at this wiki page

Recitations πŸ“»

Look at this wiki page

(back to top)

Credits πŸ“Œ

The following projects/services were used in development:

(back to top)

License

Distributed under the Waqf General Public License. See license-en.txt for the English version.

(back to top)

Contact

0xzer0x - y.essam2256@nu.edu.eg

Project Link: https://github.com/0xzer0x/quran-companion

(back to top)