Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

SadaqaWorks/Quran-Flutter

Repository files navigation

codebeat badge Codemagic build status

Quran Flutter

Quran made with Flutter.

All kinds of PR, suggestion and contributions are welcome, let's do this for sake of Allah as Sadaqah Jaria. If you want to contribute, fill it up, have a look on mock up then refer to Trello board for planning and task list.

TODO

Current implementation

Why this project is important?

Ayat is a Quran project from King Saud University, it has the following platforms: iOS, Android, Mac, Windows, Web, Linux. so users have a similar experience on all the platforms, but unfortunately, this project is deprecated.

The reason that is important

  1. Those who memorize Quran wants to have similar actual Mushaf experience, as an example Quran for Android or Quran for iOS have different highly modified Quran image than actual Madina mushaf which is crucial for a memorizer to have similar look and feel for visual memorization purpose, or other alternatives aren't available across the platforms.
  2. A person might want to switch platforms and revise their Quran reading on another platform.
  3. All the current projects are different in their own ways and have different codebase thus keep maintaining and adding new features is difficult.
  4. After deprecating of Ayat there is no similar solution that works well on all the platforms with similar experience.
  5. It will always be free and open source and never intented for monetization or anything.

My proposal: Develop a Quran project with Flutter, with Flutter it is possible to have a single codebase for all the platforms with similar experience while having single Codebase will make it easier to maintain and keep developing. I'm looking for more contributors.

Contribution Guide lines

  • Go to Trello board and have a look on tasks list
  • Assign youself a task that you think are appropiate to do
  • Clone this repo and create branch from dev branch and branch name should be same as task name/ID.
  • Formate your code with any tools from here.
  • Run on project folder flutter analyze and fix any issues if found.
  • After completing task create pull request to merge with dev branch.
  • Slide respective ticket to In Review list in Trello.
  • If you have anything in mind that might be developed add in Would Love To Do lists.

Coding guide lines

  • This project uses Flutter Bloc as state management, every single feature must follow this state managemnt.
  • SOLID principals must not be broken.
  • For project and coding structure, styles first go through this repo's codes first, your coding styles and structure has to be matched with this project's coding styles and structures.
  • Any kind of anti-patterns must not be implemented or design pattern must not be broken.

Database plan

We will use Hive, as it's a lot faster than SQLite,

Page: For page we will make json by quering from ayah_info database and make array of quran page object where everything related to page will be stored, verse start, end, sura, verse mapping, glyphs Sura List: We will make one json with arabic title and translation object {text,iso: (bn/en/gn)}, Translation: Every db will be different box Word by word: Every db will be different box Arabic: A box for arabic Tajweed: A box for tajweed Resource: A resource list with Sura, page, word by word, translation will be specified and provides if it's mandatory or not, version, downloaded or not, selected or not, obtained from local and updated from API as well and cache it on ResourceBox, Settings: A box to handle user choice, settings etc User: Bookmark, preference