Skip to content

edenmind/OpenArabic

Repository files navigation

OpenArabic

dependency-review analyze-with-codeql test-and-lint build-push-and-deploy-containers build-and-publish-to-expo

opeanarabic

📚 Learn Arabic for reading the Qur'an and Islamic texts with OpenArabic, a cutting-edge platform that provides free apps for iPhone and Android.

💻 Our platform is built with the latest technologies, including OpenAI, Flux2, Flagger, Istio, Terraform, Kubernetes, MongoDB and React.

🌟 Join thousands of users who have benefitted from our platform and start your journey towards mastering Arabic today.

Donload from App Store Download from Google Play

OpenArabic is a free and open-source Arabic language learning platform with a focus on classic Islamic texts. The target audience is primarily non-native speakers of Arabic who are interested in learning the language for the purpose of reading the Qur'an and other Islamic texts. The platform is currently in beta and is being developed by volunteers from all over the world. The project is open to contributions from anyone who is interested in helping to make the platform better.

Theological Foundation

OpenArabic is based upon the Qurʼān, the Prophetic Sunnah and the first generations of Muslims understanding with texts from Islamic Scholars such as: al-Hasan al-Basri, Imām Abū Ḥanīfa, Imām Mālik bin Anas, Imām al-Shāfiʿī, Imām Aḥmad ibn Ḥanbal, Ibn Rājab al-Hanbali, Ibn Taymiyyah, Ibn Qayyim al-Jawziyya, Shams ad-Dīn adh-Dhahabī, Imām Nawawī, Ibn Kathīr, Ibn Ḥajar al-ʿAsqalānī and al-Fuḍayl ibn ʻIyāḍ.

Roadmap

Check out The Road Ahead project to see what is planned for the future, ʾIn shāʾ Allāh. If you have any suggestions, please open an issue. If you would like to contribute, please see the Contributing section below.

Start Developing

OpenArabic is a community-driven project, and we welcome contributions from anyone. To learn about how to contribute to OpenArabic, see our contributing documentation and code of conduct. If you have any questions, please open an issue.

Begin with cloning the repository:

gh repo clone edenmind/OpenArabic

In the root of the repository, the start-dev-environment.sh shell script is used to set up the development environment:

./start-dev-environment.sh -m # start a mongodb container
./start-dev-environment.sh -i # seed mongo with initial data
./start-dev-environment.sh -a # start the fastify api container
./start-dev-environment.sh -s # start the service serving static content
./start-dev-environment.sh -w # start the web interface
./start-dev-environment.sh -e # start the expo react native app

The web interface should now be accessible from http://localhost:3040 and the api from http://localhost:3030.

You can also start the development environment with docker-compose:

docker-compose --env-file ./docker-compose-default.env up

Branching Model

We use the GitHub Flow branching model. The main branch is the default branch and is protected. All changes are made in feature branches, which are then merged into the main branch through the passing of a pull request. The main branch is deployed to production using progressive delivery techniques and GitOps principles. For more information, see GitHub Flow.

Versioning

We use CalVer for versioning. CalVer is a versioning convention based on the project's release calendar, instead of arbitrary numbers. The calendar is based on the Islamic calendar, and the version number is the year and month of the release. For example, the version number for the release in the month of Ramadan in the year 1444 AH would be 1444.09.

Technologies

The OpenArabic Platform is built using some great open-source technologies such as:

  • Terraform
  • MongoDB
  • Flux2 with Flagger
  • Kubernetes
  • Istio with Envoy
  • Grafana
  • Loki
  • Prometheus
  • Fastify
  • ReactJS
  • React Native

Recommended Books

  • Software Engineering at Google: Lessons Learned from Programming Over Time
  • Clean Code: A Handbook of Agile Software Craftsmanship
  • The Pragmatic Programmer: Your Journey To Mastery

Contributing

If you have skills in any of these technologies and an interest in helping take the OpenArabic Platform further, then please join as a contributor. We are always looking for new contributors to help us build this platform. If you have any questions, please open an issue.

Social Media

Support 🫶

If you need any help, then please drop an email to salam@edenmind.com or contact @YunusAndreasson on Twitter.

Give us a ⭐ to support our mission and help us reach more people.