For DIYHomeBudgeter app, to function you will need to design a database that would be used to keep track of all of the interaction of customers and Database entities such as Category, Options, Budget/Expenditures, User,
Show how the relation ship between entities and attributes?
For number 1, a person can begin entering their categories for their home building project, such as Doors, Windows, Lumber, Trim, Cabinets, etc.
For number 2, a person can assign a monetary budget value and quantity needed (or update an existing budget value or quantity) to each of the categories. Budget amounts should include costs for both material and labor estimates. For example, if you were entering windows, you could say that you needed 12 windows and the budget for those 12 windows was $6000.00 for material and $3000.00 for labor.
For number 3, a person can add an option to a given category and that option's pricing information. For example, if you were trying to decide between Pella windows and Anderson windows, you could add information about each type of window to the Window category. When adding options, you should be able to include the name of the item, a picture of the item, the item's individual cost and note which category it is assigned to. For example, you could add the Pella option to the database for the WIndows category and include a price of $500 each with a picture. Then you could add the Anderson window, a price of $550 each and a picture to the same category. Users of the app would then be able to check the budget and the price fo each before making a selection.
For number 4, the user would be able to select one of the available options that they have added to a category (such as the Pella windows above) and add the actual price paid for the item. That way, the database will still keep track of every option that was added, but also note which were chosen and what was paid to reflect against the budget.
For number 5, the user would be able to print a report showing the budget for each category and how much was paid for mateirals and labor from each category. The report would also include how much the user was over/under their anticipated budget at the time the report was generated.
As a simple start, think about the windows example and how you would go through each of the steps above to complete the entires for windows:
1. Add Windows as a category
2. Add your material and labor budget to Windnows
3. Add the Pella windows, add the Anderson windows
4. Purchase Pella windows
5. Shows the report and compares your expenditures entered in #4 to the budgeted amount you entered in #2 (but shows all categories)
Note that not all of the information above should be stored in the database (hint: think derived data) and not all of the information should come from a single entity.