Some advice for building the application

Hi guys, So a while back I posted on here that I’m in the process of creating a budgeting application. I know there are tons out there but I’m doing it as a side hobby and to develop my skills for uni. Currently in my application the user can input their expenses/income, set a starting date, expiry date and how frequent it occurs (e.g. £500 rent (income) every month starting on the 7th of Jan 2025, £10 Bus fare (expense) every 2 weeks starting on the 12th of January until the 5th May) etc. By setting how frequent it occurs, it’ll be displayed on the calendar accordingly. Now, I’ve given the user the ability to amend the amount and this will reflect future occurrences from that point onwards. E.g. Given it is the 1st of Jan and I have inputted a bi-weekly expense of £10 for my never expiring expense (gym membership?). When I go to February on the calendar and click on one of the gym occurrences and update the amount to £25, then on the calendar, from that point onwards (first week of Feb), it should display £25 for the gym membership occurrences. But I’m struggling to see if it’s a viable use case. The reason being, should it be updated for that current instant (i.e. only for the occurrence on the first week of Feb) or should it behave as how I’ve currently implemented and update future occurrences? Also, let’s say the user changes the start date of the expense to another date in the past… should the date of when the instances of that expense occur be updated too? E.g. 1.Given it is 7th of Jan 2025 and I have a monthly income of £100 which occurs on the 18th of every month. 2. And I see all occurrences of this expenditure occurring on the 18th of every month on the calendar. 3. When I amend the starting date of this income to 1st of the month. 4. Then when I go to the calendar I should see this income occur on the 1st of every month. Or something like this: Given I have a monthly income of £100 which occurs on the 18th of every month which started this month (Jan 2025) and I see all occurrences of this expenditure occurring on the 18th of every month on the calendar when I traverse through the future months on the calendar. When I amend the starting date of this income to 1st of November 2024, then when I go to the calendar I should see this income occur on the 1st of every month up until Jan 17th and then occur every 18th of the month. As I wrote this requirement it was hard to make sense; either that’s due to it being hard to describe or it not even making sense so maybe I answered my own question? Thanks for taking the time to read this long post! I hope to develop an app that will hopefully cater to your needs!

Ideally, if it could be an option to either update ‘just this one’ or update ‘the entire remaining series’. That would be awesome. It’s like in Outlook for a recurring meeting where you can cancel or update today’s occurrence of the meeting or all future occurrences also.

I see. So give the user the option to choose how they want to update the instance. Given it is the 1st of Jan and I have inputted a bi-weekly expense of £10 for my never expiring expense (gym membership?), when I go to February on the calendar and click on one of the gym occurrences to update the amount to £25, then I should be prompted to choose if I want to update only the selected instance (in this case it’s the occurrence on the first week of Feb) OR update subsequent occurrences from the date of the selected instance. Cool, that makes sense! And as for amending the start date… it gets a bit tricky since I’m having to essentially rewrite history if the expenses overlap. I’m not entirely sure how I should handle a scenario where the user has amended the amount but then adjusts the date.

The free and open source app I have built for the last 10 years (graphical-budget-planner) is doing something that appears very similar to what you described. I have found that to develop such an application, it gets surprisingly super complex internally, much more than I anticipated. There are all kinds of edge cases. And it is quite difficult to unit test. But now, over the years, I think I have addressed all the main use cases in a relatively simple way. Since it is an open source app, you are very welcome to download the full source code and the doc, and analyze it as much as you want. The repo is here: claude_dumas/gbp: graphical-budget-planner is a free and open source Linux application that facilitates the creation, management and analysis of personal budget forecasts - Codeberg.org. Hope it will help you, good luck with your application.