This will be the first post in a series of posts covering the development of a personal budgeting web app using as many hot new .NET technologies as I can (but only as many as necessary!).
I’ve always been a ‘scratch your own itch’ kind of guy when it comes to my developer pet projects, and since I’ve been hankering to play with asp.net core, well - now is my chance. I’m a big fan of the app YNAB (You Need A Budget), but the core features I use with it seem fairly simple. It’s essentially a glorified check book with some extra bells and whistles.
For this project, I’d like to try and implement the features I use most.
My goals and general trajectory for the project are as follows:
I’ll begin by building a standard personal finance API with no budgeting features. A standard CRUD API for adding transactions that are linked to accounts like checking, savings, and credit card. I’ll be using asp.net core Web API, trying to follow a mostly RESTful design.
Why not MVC? I intend to also build a native Android app that will use the API. I can always add MVC controllers later, but I’d like to explore a different front end framework than just razor pages.
Entity Framework or Dapper
I’ve actually never used an ORM so I’m going to for this project. I’m not so sure about Code-First though. I keep hearing nightmare stories. What do you all think?
Dapper comes up a lot in conversation too, so I’ll give it a look over.
The Front End
Aurelia? I haven’t thought much about this, but once the API is functioning I will begin the web app’s front end. This is still just a standard personal finance app, remember. No budgeting yet.
Wrapping It Up
I’ll finish it up by adding the budgeting pieces. This is essentially a list of user-defined categories like groceries and emergency fund that has an amount of money allocated to it. The transactions from the first part of the app get linked to a category to determine how much money is remaining. This part could get tricky because I’m not exactly sure how YNAB models the movement of budgeted money between categories and through future and past dates.
That’s it. Did I miss anything? Let me know what you’d like me to cover along the way!
If you want to make sure you don’t miss a post, go ahead and sign up to my newsletter below. Also, please share the URL if you think others might be interested. :)