Over the course of week five, we had the chance to consolidate and expand on everything we had learned:
- Ruby fundamentals
- TDD (where appropriate)
- OOP
- Web Programming ( REST/MVC )
- Databases with CRUD actions
You want to start tracking your spending in an attempt to be more frugal with money. You have decided to make a budgeting app to help you see where all of your money is being spent.
You must be able to create new Transactions ( which should include a vendor name, e.g. Tesco, and a value ) which have an associated Category (e.g. 'food', 'clothes'). Your app would then be able to track a total, and display this in a view.
- Create new transactions
- Display a list of all transactions
- Display total amount spent
- Display total amount spent by category
- CRUD actions for the transactions
- Show a warning when the total expenditure is over budget (set a hard coded budget first)
- Add a date to the transactions and view total spending by month
- Any other ideas you might come up with
I used a ProtoPersona in order to decide on the way I would approach the project, followed by planning using the MoSCoW structure on Trello. There was a fair amount of pencil-and-paper sketching of potential layouts, and diagramming of the various data types and functions that would be needed, before any actual coding started.
Thinking about a specific potential user made it much easier to decide on a consistent approach to the whole project, and the overview provided by Trello meant that I generally had a clear idea of where to focus my efforts next.
Tempting as it is to continue to tweak and extend this project, I have decided to put it on github and Heroku as a record of my first CodeClan project after just four weeks' instruction. It will hopefully be encouraging to return to this and see just how much I have improved over the remainder of the course.
http://ineedabudget.herokuapp.com
- Filter transactions by more than one criterion
- Explore mobile and responsive display
- Find out more about css media queries
- Learn how to do TDD of an application which interacts with a database
- Include an account balance which was updated with each transaction
- Link the budget amounts to income
- Cut and paste does not save time
- Knowing what to google is a real skill
- Work to a timer, or your day disappears
- Flexbox is about as unpredictable as the rest of CSS
- You are never finished, so set your criteria for 'done' before you start