The task is to implement small home budget app that will allow to track income/outcome transactions. The app should be written using the technologies mentioned in the Technologies section.
- Typescript/Javascript
React
version16.8 and up
, please make sure to use Hooks and Functional componentsRedux
orRedux-Toolkit
version compatible with React versionAny UI library
for quick scaffolding (Reactstrap/React Bootstrap etc.)- Use
localStorage
as a DB for the app - Implement asynchronous layer that will load data from
localStorage
withRedux-Thunk
orRedux-Saga
There are two models in the app:
Represents one category of transaction. There must be pre-defined categories in the app from the beginning (3 is enough). As examples of categories:
Salary
,Food
,Going out
.
// Should have following fields:
{
id: Number|String,
name: String
}
Represents transaction.
// Should have following fields: `
{
id: Number|String,
name: String,
date: Date,
amount: Number, (where `positive` value means income and `negative` value means outcome )
categoryId: Number|String, (reference by category id)
}
This is default page and app entry point that will represent 2-column layout:
First column
- List of categories with the ability to add/remove categoriesSecond column
- Should have a form for adding a new positive/negative transaction by category. Under the form should be a list of transactions
Note: When the category gets deleted you need to move all transactions of category into
Archived Transactions
list
- Fork this repository
- Complete the task in your repository
- Create a PR to this repository