-
Notifications
You must be signed in to change notification settings - Fork 31
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
[Feature Request] Add GUI (desktop program, web app, ...) #24
Comments
I created myself a web-based GUI for another tax calculation algorithm below, before I joined this project development. So there are different options, while we should aim to support as much operating systems as possible (Linux, MacOS, Windows). In my opinion, the easiest way to achieve this is a web-based GUI. Django and its templates to trigger the basic features of CoinTaxman could be a good way to start. I am open for different suggestions! |
In my professional environment, I mainly work with native GUIs (mostly But to be honest, I don't mind providing CoinTaxman with a web gui if we you think that's smarter. (We might be able to refactor a lot of code from your project @wearymanateevedaknotstabooresisting.) |
Honestly, we don't do it for us, the tech savvy people who can start the program from command line. If we want to support the average user, and I think this may be a wise idea, we should aim for anything that works on as much machines with lowest effort as possible. So, if a standalone GUI is easy to install and works, that's fine - also the web GUI is fine if the web server opens with a click, I don't know if this is actually harder to ship, though. In summary, the first valid concept which fulfills the easy-to-install, easy-to-use, easy-to-develop requirements should be the go-to solution. |
Web gui would be nice because that would be increadibly easy to make interactive plots using stuff like bokeh. And making a Desktop GUI from that using electron should be possible if needed. But personally I do not have enough experience with normal guis vs electron to tell how complicated that is. Also with web projects I like using Fastapi because 1.) its quite a lot faster than django (and faster than flask the other popular microframework), but that should not be a concern in this project because we only provide for a single user and 2) it a more streamlined microframework ,but it still supports templating via jinja. And i personally do not like the large frameworks because they often come with much bloat and overhead when coding and take a lot of time to learn. I know that there are use cases where Django is a fantastic solution but I do not see the reason to use a big framework for simpler stuff. |
I actually tried Django with Electron and it was PITA. Can't recommend those two together. However, I know that Electron is a great way to publish nice cross-OS GUIs through easy web development. FastAPI sounds like a great backbone to easily interface the current modules without much re-writing, I guess. Django might really be an overkill, since it also comes with native database models. |
Having a GUI is a great idea. I find PyQt5 quite easy to use, mature, and it works without problems in Linux and Windows (& Mac I guess). Here's a very simple example (< 100 LOC) I recently created for a friend, so you can see what it looks like: https://gist.github.com/shredEngineer/693f6f992626fc0706f19344e257c5fb I already created a large project using PyQt5 and arranged all widgets by hand, but theres also QtDesigner to make things really simple. FastAPI is nice and all that, but I think a plain and simple GUI would be best. Don't know about the other suggestions. But if the user can't start a Python program, wouldn't he most likely also be unable to start some web service? ^^ |
why not both^^ (semi serious) it could maybe be switched on and off via a config file or be different projects wich just use Cointaxman as a module which they import. The only necessity in this project is that we restructure it so that: it is possible to use this as a module and not just as a script. I myself would just like to chug this thing onto a webserver so that i can use this from multiple Computers. Bit offtopic but could be helpful for that (maybe worth a new issue each):
|
Maybe Flutter can provide a reasonable web and desktop app (or even mobile for that matter). It could call python via a ffi. |
To make this programm accessible to a wider audience it should be considered making it usable for people who do not know how to use python/ a terminal. Maybe a simple gui/ local webpage or something like that. And or even compilation into an executable for windows.
Note that this is not a that important feature Request, but more an idea for people who want to contribute.
The text was updated successfully, but these errors were encountered: