Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Non-CL user interface #50

Open
pylipp opened this issue Nov 10, 2019 · 4 comments
Open

Non-CL user interface #50

pylipp opened this issue Nov 10, 2019 · 4 comments

Comments

@pylipp
Copy link
Owner

pylipp commented Nov 10, 2019

For increased usability, a different user interface could be provided.

First of all this requires some architectural considerations, e.g. whether the frontend caches queries, and how it is synchronized with the backend (especially critical when using the webservice).

Frameworks for TUIs could be:

  • urwid
  • prompt_toolkit
  • textual
    and for GUIs:
  • PyQt5/PySide2
  • remi (HTML based interface in webbrowser)
  • dash (HTML/JS based interface in webbrowser)
  • gooey (simply derives GUI from argparse parser)
  • https://github.com/zauberzeug/nicegui
@gabekz
Copy link

gabekz commented Dec 21, 2020

I'd love to give this a go with Electron

@pylipp
Copy link
Owner Author

pylipp commented Dec 22, 2020

Hej @GabeKutuzov,
thanks for taking the initiative!
How easy are Electron apps when it comes to testing, packaging, installing?

If you don't mind we could think about the structure of the interface together. In the simplest form, it could just replicate the output of fina list in a more interactive form (i.e. sorting and filtering of entries, collapsing entries to only show categories). We could already think about whether this comes in a tabbed view (one tab per month) or whether the user can select a time range.
In mid-term I'd love to have some visualization (pie or bar charts). You probably have some more ideas, too :)

@gabekz
Copy link

gabekz commented Dec 22, 2020

Hello @pylipp,
Of course! Looking forward to working with like-minded folks.
Electron is ridiculously easy to work with, but it's biggest issue is the overhead it carries with chromium.
I would love to think about this one together! I will however need to take some time and look deeper into the project. I have always been pro user-option, so a feature allowing the user to select a time range seems like a good one to me.
Pie/bar-charts sounds like a fun task to do. Smoothly tweened visuals would be great for the UI elements as well.

I will take some time between Christmas and the New Year to look a little deeper into this.

Looking forward to this!

@pylipp
Copy link
Owner Author

pylipp commented Dec 28, 2020

Let me know how I can give you an insight of the package. Some parts should already been explained in the Readme (about the architecture) but there is no dedicated documentation apart from docstrings since financeager is not supposed to be used as a library. There is plugin support though; for a GUI we might want to have a clients.Client starting the GUI thread with a proxy attribute that holds the database in memory for the lifetime of the GUI...

I'm currently planning some restructuring of the database handling on the backend (see #52). Then it should also be simpler to access data of a single project spanning more than a year.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants