Avnon Web Developer Assessment
Technologies & Frameworks: Angular 17.3 or above, RxJS, Signal, TailWind CSS, Typescript
Time allocation: 5 hours
Partial Submission allowed: No
API Access Required: No
Brief
Create a basic Budget Builder table where users can input their expected income and expenses per
month for the selected date range.
Key considerations:
The UI behaviour should feel like Excel. The initial page state will have a 12 month range and the
input will be focused on the first cell, so the user can immediately start typing and press enter to
create new category rows. They should also be able to tab to next row from the last cell in a row.
Users can navigate back and forth using arrow keys.
Use 0 as the opening balance and then carry the profit / loss to the next month
Right clicking on a cell should display a popup which says ‘Apply to all’ which will copy the value into
all the corresponding cells.
The sub totals and overall totals should update as the user starts inputting a value.
Keep the code as light and clean
Income and expense categories are grouped under parent categories, each with their own sub
categories.
Delete row is required
The months array will vary depending on the start and end month the user selects, i.e. the user
chooses January 2024 to December 2024 it’ll show 12 months, if the user choose January 2024 to
July 2024 it’ll show 7 months. Default to January – December 2024.
Once completed check into a GitHub repo and send the invite to daniel@avnonconsulting.com
Budget Builder Example
Start Period V End Period V January 2024 February 2024
Income
General Income 100 120
Sales 200 400
Commission 0 200
Add a new ‘General Income’ Category
Sub Totals 300 720
Other Income
Training 500 550
Consulting 500 600
New income category
Sub Totals 1000 1150
Add New Parent Category
Income Total 1300 1870
Expenses
Operational Expenses 50 100
Management Fees 100 200
Cloud Hosting 200 400
Add new ‘Operational Expenses’ category
Sub Total 350 700
Salaries & Wages
Full Time Dev Salaries 100 120
Part Time Dev Salaries 80 80
Remote Salaries 20 0
Add new ‘Sales and Wages’ category
Sub Total 200 200
Add new Parent Category
Total Expenses 550 900
Profit / Loss 750 970
Opening Balance 0 750
Closing Balance 750 1720