Budget

This project has been completed by 29 users

Personal finances apps are very useful for learning web development. They’ll force you to handle many data types: Dates, strings, decimals, integers, just 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.

Requirements

This is an application where you should record personal finance transactions.

You should have at least 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.

Resources

Here are a few resources that might be helpful.

Tips

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.

Since this is the last project in this area, try building a beautiful front-end that stands out. If you think you're 'bad at design' Search on the internet for similar good-looking apps and try to mimic them.

Challenges

Seed 1000 random records across 10 categories.

Include pagination so the users can't see more than 20 items per page.

Change the result of the search upon every change of the search input, without the need for the button the be clicked.

Add a Recurring Expense functionality. An expense that will automatically add itself at a given time interval.

Add caching capabilities to your app so you don't need to query the database if no changes have been detected.

Comments

0 comments

No comments yet. Start the conversation.

Sign in to add a comment.
An unhandled error has occurred. Reload 🗙