Skip to content
p32929Public

About

Flutter web app for reading Islamic duas with Arabic, translation and source — swap the JSON to use your own

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Repository files navigation

Duas

A collection of duas I try to regularly recite. This is a web application built with Flutter that displays Islamic supplications with their translations and sources.

Live: https://p32929.github.io/duas/

Features

  • Clean, modern interface
  • Arabic text with proper font support
  • Translations and sources
  • Light/dark theme with selectable accent colors
  • Adjustable Arabic and translation font sizes
  • Configurable data source — change the JSON URL from in-app Settings, no code edits required
  • Responsive design
  • Easy to customize and deploy

Quick Start

Prerequisites

  1. Install Flutter:

    • Download Flutter SDK from flutter.dev
    • Add Flutter to your PATH
    • Run flutter doctor to verify installation
  2. Install Node.js and npm:

    • Download from nodejs.org
    • Verify installation:
      node --version
      npm --version
  3. Install Git:

    • Download from git-scm.com
    • Verify installation:
      git --version

Installation

  1. Fork this repository

  2. Clone your fork:

    git clone https://github.com/YOUR_USERNAME/duas.git
    cd duas
  3. Install dependencies:

    flutter pub get
    npm install

Running Locally

flutter run -d chrome

Adding Your Own Duas

  1. Create a JSON file with your duas following this structure:

    [
      {
        "arabic": "Arabic text of the dua",
        "source": "Source/reference of the dua",
        "meaning": "Translation/meaning of the dua"
      }
    ]
  2. Host your JSON file using one of these CORS-friendly options:

    • Option 1: npoint.io (recommended)
      1. Go to npoint.io
      2. Create a new JSON document
      3. Copy the provided URL
  3. Point the app at your JSON — two ways:

    • From the app (recommended, no code): open Settings (the palette icon in the top bar), scroll to Data source, paste your JSON URL, and tap Save. The app clears its cache and reloads from the new URL. Tap Default anytime to restore the built-in source. Your choice is saved on the device.

    • Change the built-in default (optional): open lib/utils/apis.dart and replace defaultDataUrl with your JSON URL. This becomes the source used out of the box (and by the Default button).

Customization

Most day-to-day options are available in the app itself — open Settings (the palette icon in the top bar):

  • Theme — Light, Dark, or System
  • Accent color — pick from the preset swatches
  • Arabic font — choose from the bundled Arabic fonts
  • Font sizes — adjust Arabic and translation text sizes independently
  • Data source — change the JSON URL the duas load from (see Adding Your Own Duas)

These preferences are saved on the device.

Changing Defaults (code)

  • Default theme / accent — edit the defaults in lib/theme/app_theme.dart.
  • Available fonts — edit lib/theme/app_fonts.dart.
  • Default data source — edit defaultDataUrl in lib/utils/apis.dart.
  • App title — edit the <title> tag in web/index.html.

Deployment

GitHub Pages Deployment

  1. Update package.json:

    • Change the repository URL to your fork
    • Update the base href in the predeploy script if needed
  2. Deploy:

    npm run deploy
  3. Your app will be available at: https://[your-username].github.io/duas/

Custom Domain Deployment

  1. Build the app:

    flutter build web
  2. Deploy the contents of the build/web directory to your hosting service

Troubleshooting

Common Issues

  1. CORS Issues:

    • Ensure your JSON hosting service allows CORS
    • Use a CORS proxy if needed
  2. Build Issues:

    • Clear build cache:
      flutter clean
      flutter pub get
  3. Deployment Issues:

    • Check GitHub Pages settings
    • Verify repository name matches package.json
    • Check base href configuration

Support

If you encounter any issues:

  1. Check the Flutter documentation
  2. Open an issue in the repository
  3. Check the troubleshooting section above

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are warmly welcomed and greatly appreciated! Whether it's a bug fix, new feature, or improvement, your input helps make this project better for everyone.

Before submitting a pull request, please:

  1. Create an issue describing the feature or bug fix you'd like to work on
  2. Wait for discussion and approval to ensure alignment with project goals
  3. Fork the repository and create your feature branch
  4. Submit your pull request with a clear description of changes

This approach helps avoid duplicate efforts and ensures smooth collaboration. Thank you for considering contributing!

Share

Sharing this repository with your friends is just one click away from here

facebook twitter tumblr pocket pinterest reddit linkedin whatsapp


💼 Using this at a company?

I do fixed-price delivery work on my own projects. One invoice, one date, no hourly billing:

White-label build — this project rebranded, extended and deployed as yours $6,500 · 3 weeks
Custom app from scratch on my own stack, signed and auto-updating $12,500 · 6 weeks
Production-hardening sprint — 72 hours on this project, for your load and your security review $999
Ongoing capacity — one project-week of my time reserved every month $9,000 / month

Full details → p32929.github.io/hire · Email fayazdevinbox@uberip.com — scoping and quotes are free and I answer within one business day.

Commercial use of this repo

This repo has no license file, which in copyright law means all rights reserved. Personal use, learning and open-source forks: go ahead, just link back. Shipping it inside a commercial or closed-source product needs a license — $2,500 for one product, $9,500 company-wide and perpetual, signed and issued the same day (details).

About

Flutter web app for reading Islamic duas with Arabic, translation and source — swap the JSON to use your own

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages