- Fork this repo and clone to your machine.
- Ensure Yarn is installed and run
yarn
to install dependencies. - Run
./node_modules/.bin/webpack --watch
. - In another terminal run
./node_modules/.bin/json-server --watch db.json
- Open
src/client/index.html
in a browser.
This should render a simple React component.
- Create a Tabs component that allows multiple pages to be switched between.
- One tab should show a list of bills. These can be found at http://localhost:3000/bills/. Bills have a flag
isBill
set totrue
. - Another tab should show a list of transactions which are potential bills. These can also be found at http://localhost:3000/bills/. Potential bills have a flag
isBill
set tofalse
. - Under each bill row for both lists, should be a hidden list of transactions for that bill. This should show when the bill row is clicked.
- Under the name of each bill should show a count of the transactions for it for example:
Vodafone
6 transactions
- Add an action to the bills tab for each bill called "remove bill" which updates the relevant bill's
isBill
flag tofalse
. You can use aPATCH
request tohttp://localhost:3000/bills/:id
using the id of the bill to update the bill resource. - Add an action to the potential bills tab for each potential bill called "Add as bill" which updates the relevant bill's
isBill
flag totrue
. - After each action, the lists should reflect the changes.
- Feel free to add LESS or SASS or even CSS.
- Feel free to add tests for any components written.