Personal finances apps are very useful for learning web development. They’ll force you to handle many data types: Dates, strings, decimals, integers, to mention the most basic. They’ll also challenge your front-end skills with heavy user interaction through forms and data-tables.

In terms of database design, they give you the chance to create interesting structures, such as one-to-many and many-to-many relationships between tables, which in turn expands pushes the boundaries of our knowledge of SQL and Entity Framework. So let’s build a budget app to expand on our MVC knowledge with a slightly more complex piece of software.


  • This is an application where you should record personal finance transactions.
  • You should have two linked tables: Transaction and Category.
  • You need to use Entity Framework, raw SQL isn't allowed.
  • Each transaction MUST have a category and if you delete a category all it's transactions should be deleted.
  • You should use SQL Server, not SQLite.
  • You should have a search functionality where I can search transactions by name
  • You should have a filter functionality, so I can show transactions per category and per date.
  • You need to use modals to insert, delete and update transactions and categories. These operations shouldn't be done in a different page.


  • Don't forget validation! Your form shouldn't allow the user to input negatives or strings as a transaction value. Data annotations on your model are one way to go.
  • Have separate controllers for Categories and Transactions.
Log in to mark this article as read and save your progress.
An unhandled error has occurred. Reload 🗙