firefly-iii / firefly-iii

Firefly III: a personal finances manager
https://firefly-iii.org/
GNU Affero General Public License v3.0
15.67k stars 1.42k forks source link

Template Transactions #4917

Open niklas2810 opened 3 years ago

niklas2810 commented 3 years ago

Description

Hey there! While entering my transactions for the last week, I had an idea for a feature which might come in handy when entering transactions manually.

First off, let's talk about how I came up with the idea: Not every transaction is unique, right? You have transactions which re-occur often, but not so regularly that they can be covered by recurring transactions. For example, I go to the supermarket at least twice a week, but the exact day (and, obviously, my expenses´at the place) vary for each visit. However, the Name (Supermarket XYZ), source and destination account (my bank account ->Supermarket XYZ), as well as Category (Food) and Budget (Basic) are exactly the same for each transaction. Now let's add my favorite bakery, my fav ice cream store, and I think you start to see the issue: I enter the same stuff very often, sometimes even multiple times a week. That might be annoying, but is there a solution for my laziness? I think there is!

Solution

As the issue title suggests, I'd love to see some kind of "Template" feature implemented in Firefly III. With this feature (which could for example be located under Piggy Banks), you could pre-define the following attributes:

You could then create a new transaction from a template (e.g. on the templates page, there could be a button with "Create new.." for each template), which would take you to the create page where you can customize your transaction (entering the amount, maybe modifying the transaction name a bit).

I think the create page already has support for request parameters (at least to a certain extent), maybe the "Create"-Button for a template could simply open a Create Transaction page with the appropiate parameters.

What are alternatives?

I don't know, but I can't think of any alternative which already allows something similar (if there are, please let me know!). This could obviously be done with a self-written external tool, but implementing it into the software itself would make the experience more consistent and user-friendly.

You could also put your set-up very advanced rules (e.g. only entering "bakery-lunch"), and the rule engine will fill in the correct accounts for you. However, you would have to remember all these rules you created or look them up every time. In the meantime, I could enter the transaction details manually as well.

Additional context

I can't really estimate how much work a feature like this would take to implement, but I'd really love to see it in action. However, I would understand if it'd be too much effort for a not significant enough change in Firefly III.

Edit: To put the feature on steroids, you could make templates available while on the Create Transaction page as well, so the user doesn't have to navigate to the template page.

Bonus points

sidebar Could be located in a page available via the sidebar

list List of templates, you can click a template to open the "Create Transaction" page)

(Sorry, I used a Categories page to simulate this, multiple colums might make more sense here instead of a single descriptive column 😄)

As always, thanks for all of your effort in Firefly III!

Best wishes, Niklas

JC5 commented 3 years ago

Great idea, and a great write-up!

I thought about it a few times, and I like the idea. Keep in mind it's a massive effort on my part for just a few power users. The CRUD and data validation alone are a huge pain in the butt. I've been pretty conservative about this because it's just another high-maintenance hassle really.

But I'll put it on the list, because I like the idea :+1:

Thanks for the compliments, and thanks for some great suggestions (not just this one 😉 )

erdmenchen commented 3 years ago

I often have the same problem and like the idea!

Maybe automatic form suggestions would also be an alternative? If I select/enter a destination account in the booking view, then many fields could simply populate from the last booking made to this destination account.

This would also be more general than with manual templates, because I would need to create multiple groceries templates, because I go to various different shops.

Styleflix commented 2 years ago

Just wanted to add that I was about to suggest the same featue (but then used the search before ^^). This would make things a lot easier and quicker sometimes. I use firefly very often and really love this tool. But I often find myself spending a lot if time tracking everything and putting it into firefly. And a template feature would help making it shorter since I track everything manually.

Looking forward to if this feature will be added in the future.

Thanks for your awesome work!

bastantoine commented 2 years ago

Just found this feature request while wanting to open one for this exact need. This would be awesome!

It is a bit old, so I was wondering if it was still planned?

matejdro commented 2 years ago

What I do for this:

  1. Search for a previous transaction (for example last week's groceries tri)
  2. Copy that transaction
  3. Update fields such as amount and date

It's not as convenient as automatic form fill, but it is a good workaround.

mrahmadt commented 1 year ago

I loved the idea and was searching for it.

Maybe add the top 3 templates (as big buttons in the dashboard)

I'm a Laravel developer, I want to check if I can add this feature, any suggestions on where to start? (will just try)

JC5 commented 1 year ago

There is no data model yet. No design choices or structure. There's nothing to code yet.