Giter Site home page Giter Site logo

sufone / qawl Goto Github PK

View Code? Open in Web Editor NEW
76.0 6.0 11.0 271.68 MB

📖 Quran Reader for Linux, Windows, macOS

Home Page: https://qawl.app

License: GNU Affero General Public License v3.0

CSS 11.01% HTML 0.72% JavaScript 22.58% Svelte 65.70%
electron quran islam svelte book read

qawl's People

Contributors

axon4 avatar dependabot[bot] avatar fauzie811 avatar mr-islam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

qawl's Issues

Linux version

Quickly: I love Linux and want to offer a version, don't have a copy installed now (but want to install Elementary OS 6 when it's out) or the time to do it. I would like to provide AppImage and snap files

If anyone is on Linux and wants this app, I would really love help building it for Linux! The readme of this repo has the instructions, and it should very little time for you (and maybe a bit to download the high quality Quran images)

Let me know and I can help you do it.

Fully customizable reading toolbar

Users can

  • Re order elements
  • Disable / Enable elements

Will also be nice and allow for multiple external hyperlink buttons (each configured to a different reference) :)

Update electron for m1 chip support

Qawl is so light that even in emulation mode it should perform as usual without any issue, but this should be taken care of.

Electron builder would also need to support this, I think 🤔

Then need to setup #22 to make these

Transition to Github Issues totally

I initially started with my personal task system on Notion, as mentioned in #1, but that's a very poor choice for a (hopefully) community project.

  • Bring over all internal tasks + notes
  • Start using wiki
  • Start using projects
  • Label and rename issues to be good

Release initial version

This is important, so users can install this new codebase ASAP, and be in line to receive updates

Improve code standard (Variable, function and component names)`

The whole app is pretty decent I think, with comments where beneficial

But the variable, function and component names - even if mostly clear - are not consistent, and won't be intuitive for someone new to the codebase.

In the future, I will be more careful about this from the get-go, God willing, but for now we must repair:

  • Choose a naming standard for each
  • Update existing code to match (change each using search/replace across the codebase, testing after each change just in case)
  • Document this standard

Writing tests, or at least a testing procedure

I've been meaning to learn how to write tests… something I hope to do still

If someone could contribute tests it would be really helpful to speed up releases, and would be a great learning opportunity for me as well!

Zoom

Have sensible maximum and minimum

Request: Mac Version

Salam
May Allah reward you for the great work
I'd like to request for a Mac version of the app when possible.
Thanks.

System to choose dark theme

Automatic at set time by user? Follow system theme? Manual using a button / keyboard shortcut?

Many users / systems don't properly use system theme, so maybe we should avoid it

Make the readme pretty

  • Logo, screenshots, center align, etc.
  • Note about the Sufone collective

Important to encourage community involvement

Reach out to all those who starred the previous repo

They may not know development has shifted to here completely, and that future versions are here only

They may also want to star this new repo and keep up with new updates

  • Draft short, polite email mentioning the above
  • Go through list of old stargazers and send

Page reading history

Like implemented in old Qawl

Todo:

  • Lastpage component + function
  • Update old page change components to save to lastpage store

Keyboard shortcuts

  • Implement hotkeys for all user interactable events
  • Update titles of elements to reflect these shortcuts

Customizable keyboard shortcuts

  • settings interface
  • internal svelte store to save and load preferences
  • update keyboard shortcut definitions to load chosen key from settings

Theme System

Use Svelte Stores to load theme across the app

Make an easy JSON style format where users can easily create themes, and make a PR to include them in the next update

Support setting independent dark and light themes (switching mechanism between dark and light... is more complicated #18 .)

Try swipe.js for the page view

https://swipe.js.org/

Can use left right buttons easily.

I imagine the implementation to be: A total of 3 pairs of pages: one in the middle that is currently on screen for the user, one on the left that is current +2 / +1, and another pair on the right that is current -1 / -2. These pairs are set dependent on the current page, and changing page by either dragging or "next/prev page" buttons can do a smooth scroll.

Potential issues:

  • Jumping to a specific page (can just set the middle visible pair to instantly change to user selected page, or run a check if it's before or after current page, set the relevant left/right off-screen pair to be that requested page and then do a smooth scroll. This second way brings up way too many issues on how this can interact with other parts of the app…)
  • Would this library even work in a zoomed in view? Where there is already left/right scrolling?

The issues seem large and annoying, so this is low priority. But it's worth experimenting with in some branch.

Tooltip library

Strings are ready as in #35, just implement something like tippy

  • Choose library
  • integrate tippy (or lighter equivalent)
  • customize appearance and speed
  • add option in settings to hide tooltips, but on by default

That last todo is the reason behind using a library — to enable easy toggle of this

Welcome! Using Notion for now

Hi, welcome 👋🏽

Currently using Notion to track development and progress: [remove - notion sharing is being bad]

Feel free to check if what you want is there already, or let me know any thoughts.

The #1 Priority is to reach feature parity with the old version

Failing builds and dev-server runs: `unexpected token u in JSON`

Was having a persistent problem that resulted in a blank white screen upon launching Qawl either from an installed build (tried v0.0.3 and v0.0.4), or a dev server using the latest code. Seem related to what was reported in #11. Got an error:

Unexpected token u in JSON at position 0

And the files/lines cited didn't have any issue. Tried deleting node_modules and re-installing, didn't work. Uninstalling Qawl and deleting it's install directory from %appdata% on windows did the trick, and now the installed build v0.0.4 works. and

I'll leave this issue open until a few months go by and this issue doesn't re-appear, or we are able to pinpoint what caused this.

My dev server still fails to load the app, but at least it's giving a different error I can debug. Sigh. This really must be what #11 was facing, when BiL reported a blank white screen after building a version cloning the code from master!

Open in {Quran App}

Related to #3, from which the provider can be selected. Can offer:

  • Quran.com
  • Corpus.quran.com
  • altafsir.org
  • tafsir.app

Auto-update

Going with a notification – it's disrespectful imo to auto download a release in the background, especially for a large app like Qawl

This way, I can quite easily have a message show up in the user's app on launch as well 🤩

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.