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

Mobile-friendly transaction entry? #421

Closed
ngoonee opened this issue Nov 24, 2016 · 27 comments
Closed

Mobile-friendly transaction entry? #421

ngoonee opened this issue Nov 24, 2016 · 27 comments
Labels
feature platform:mobile Issues related to using Fava on mobile devices

Comments

@ngoonee
Copy link

ngoonee commented Nov 24, 2016

Hi, I was testing fava and beancount out (along with hledger and hledger-web against my current gnucash system), and while I love the data display with fava, the transaction entry is really only suitable for computer use (where I'd presumably prefer to use vim/emacs anyway).

hledger-web has a nice form-based transaction input which eases transaction input especially from mobile devices. Please consider something similar. For mobile transaction entry I think the user would just want to enter the description, amount(s), and select accounts from a list (or have search results like in hledger-web).

@aumayr aumayr added the feature label Nov 24, 2016
@aumayr
Copy link
Member

aumayr commented Nov 24, 2016

I also thought of implementing something to enter data when on a mobile phone. But I would vastly prefer a native client.

What do you think about that?

@ngoonee
Copy link
Author

ngoonee commented Nov 24, 2016 via email

@fokusov
Copy link
Contributor

fokusov commented Nov 24, 2016

I have Fava installed at Pythonanywhere and it would be cool if there were mobile-friendly theme.
Now it look like this:
image

@ngoonee
Copy link
Author

ngoonee commented Nov 24, 2016 via email

@yagebu yagebu added this to the unplanned milestone Nov 24, 2016
@yagebu
Copy link
Member

yagebu commented Nov 24, 2016

This has been on my mind as well for quite some time. It could be very useful on the desktop too - hledger add-like interactive functionality would be quite neat.

if there were mobile-friendly theme

OT: We have some mobile support since #321 but I guess that's more geared towards higher-resolution phones. Improvements to the stylesheets to support lower resolutions better are welcome!

@blais
Copy link
Member

blais commented Nov 25, 2016 via email

@aumayr
Copy link
Member

aumayr commented Nov 25, 2016

For support directly in Fava: When viewed on a desktop (big screen), this could be an overlay, and when on a smartphone (small screen) a full page.

What should the features be? A form-like input, with dropdowns etc., or just a normal editor with completion, but maybe without all the transactions above (eg. an empty editor)?

@fokusov
Copy link
Contributor

fokusov commented Nov 25, 2016

+1 for something like hledger-web input with dropdowns

@aumayr
Copy link
Member

aumayr commented Nov 25, 2016

I think the following - just a thought-experiment - would be awesome:

  • Fava syncs your list of accounts and previous payees with a public web service (I do not want to have my Fava instance exposed to the internet)
  • Have a native client (iOS is interesting for me), which gets the list of accounts and previous payees via the web service
  • Input the transaction via the app, including photos of receipts, etc.
  • Upload this to the web service
  • Sync the new information to your local Fava instance

This way I do not have to make my Fava instance publicly accessible, and can input new transactions on-the-go. The public web service could be a generic one, and is accessible to many users (so it does not have to be run by me personally, but can be one public instance for everybody).

@ngoonee
Copy link
Author

ngoonee commented Nov 25, 2016 via email

@lipidity
Copy link

lipidity commented Nov 27, 2016

I use beancount for my accounting now (switched from ledger-cli), but my family are not command-line people and rely on the web form I made for them in ledgible for adding transactions. I actually really miss the convenience of it myself, too.

Please check it out (login demo/demo) -- my mother has been using this for over one year.

The main features of this approach are that:

  1. It's super easy to enter transactions on the spot, so it gets to be a habit. I can't do that with fava, so the transactions pile up, I procrastinate, then finally I have to sit down and reconcile everything. Something that used to be fun is now a chore. (The problem is even worse if you have shared accounts and you miss accounting for something - I'll see something unfamiliar on my credit card and wonder, "Was this expense something I bought, or was it my partner? Maybe it's a fraudulent transaction?"). When I was using ledgible's transaction entry I pretty much never missed anything.
  2. date entry is usually just one or two clicks, rather than any typing
  3. autocompletion can "learn" from your data; eg. if my expenses at the payee "Costco" frequently go to my Expenses:Grocery account, Expenses:Grocery should show up first in the autocompletion list for the 'destination'/debit account. Likewise, if I pay for groceries with my credit card, that account would show up first for the 'source'/credit account. (To see this in the demo, put the payee as "Uncle Boons" and see when you type an "e" in either the "to" or "from" account, the first result is based on previous transactions). It doesn't take long before tab-completion does most of the work, so just a few keystrokes take care of the most common transactions!

[A public web service to add transactions, then sync with local fava] [...] This way I do not have to make my Fava instance publicly accessible

This sounds like a bigger privacy issue, since the web service is getting all your transactions!

It would seem to me much more sensible to use TLS and Basic HTTP password protection through eg nginx or httpd - which I am in fact doing already.

What should the features be? A form-like input, with dropdowns etc., or just a normal editor with completion

Based on my experiences with ledgible, +1 to a web form. It shouldn't be difficult to achieve parity with, then surpass ledgible. I look forward to migrating my family to fava once this is implemented :)

@ngoonee
Copy link
Author

ngoonee commented Nov 27, 2016 via email

@aumayr
Copy link
Member

aumayr commented Nov 27, 2016

Thanks @lipidity for the Demo! This looks very useable, and can be optimized for smartphone-browsers as well… so I'm all for implementing something like this.

(Forget about the web service-idea, it is stupid.)

@aumayr
Copy link
Member

aumayr commented Nov 27, 2016

Brain-dump of the parts needed:

  • UI with auto-completion
  • Smartphone-optimization of UI
  • Algorithm to calculate the ordering of the auto-completion-lists (incl. tests)
  • Well-tested way to insert new transactions into the beancount file (like the statement-upload-feature already does)

@aumayr
Copy link
Member

aumayr commented Nov 27, 2016

I made a first draft how this could look in a Desktop browser:

screenshot

@aumayr aumayr mentioned this issue Nov 27, 2016
8 tasks
@ngoonee
Copy link
Author

ngoonee commented Nov 27, 2016 via email

@pfrancois
Copy link

just a question, it could be good to be able to chose the file where the transaction is added (even if it not seen).
i have two file: one archive , one current. obviously i add only to the current

@blais
Copy link
Member

blais commented Nov 28, 2016 via email

@aumayr
Copy link
Member

aumayr commented Nov 28, 2016

@pfrancois That is a valid feature request - I use multiple files as well!

@blais About "automatically": How could an algorithm for figuring out which file and which section look like?

@ngoonee
Copy link
Author

ngoonee commented Nov 28, 2016 via email

@corani
Copy link
Contributor

corani commented Nov 28, 2016 via email

@aumayr
Copy link
Member

aumayr commented Nov 28, 2016

One way would be to define "insert-markers" (special comments, like the one we have right now for where the initial Editor cursor should go), and if there are multiple, provide a dropdown to specify where the transaction should go.

This way the process @corani describes could also be implemented, eg. putting the insert-marker in a separate file.

@pfrancois
Copy link

pfrancois commented Nov 28, 2016 via email

@aumayr
Copy link
Member

aumayr commented Nov 28, 2016

In a mobile browser:

screenshot

@ngoonee
Copy link
Author

ngoonee commented Nov 28, 2016

Looks great =) Regarding more than one account ('split transactions') perhaps it should default to two and have an 'add account' link at the bottom?

@aumayr
Copy link
Member

aumayr commented Nov 30, 2016

Just a quick idea: When we already have a UI for entering transactions, it would be kind of convenient to extend it to the following:

  • Upload a file (a bank statement, XML, CSV, etc.)
  • Let bean-extract (or any other algorithm/program/part of Fava) try to parse the transactions in this file
  • Present a UI with two columns, and per row/transaction in the input file: To the left there is the parsed line(s), and to the right the Transaction-UI with the data that bean-extract et al. "understood".

This way parsing a bank-statement would be a straightforward task:

  1. Upload the file to this Fava page
  2. Check each row and change if needed (you can tab quickly through the input fields and make adjustments, etc.
  3. Save them (Fava writes them to your beancount file)

@yagebu yagebu closed this as completed in 8d097c0 Dec 17, 2016
@yagebu yagebu added status:resolved platform:mobile Issues related to using Fava on mobile devices labels Jul 1, 2017
@EngineerNadeem
Copy link

can we integrate firepad to fava?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature platform:mobile Issues related to using Fava on mobile devices
Projects
None yet
Development

No branches or pull requests

9 participants