This project runs own faked server with simple DB setup. All actions are persistent, so be aware of that. By default all requests are finished after 650ms to show loading states
By default db runs on http://localhost:3001/
React App http://localhost:3000/
Redux with RTK, Typescript, Material-UI, Json Server with home-made Auth, Nivo for graphs, i18n-react for translations.
I planned to use rollbar for error tracking, but I did not have time for the setup at the end. Cypress and Jest were included, but not used :( ...
App has Login + Autologin support backed by adjusted JSON Server. BE part verify if user is logged to do actions via FE. FE has simple Route Guard mechanisms.
Users can create budgets, share them (during creation) and delete them. After budget selection, the user is redirected to a category page. Page has an interactive donut graph. Choosing a category from the donut graph will reflect on a bar graph. The donut graph shows sum of entries for given category. The bar graph shows sums of Incomes/Expenses for given date with total entry count information per date in a tooltip.
User can create new Entry(Expense, Income -- determined by their nominal value) and select or create Category. All selections provide autocomplete for already present data. Category selection is used for its creation if category is not present yet.
FE part in current state does not reflect errors from BE (time reasons) - but impl via snackbars subscribed to redux should be quite trivial. App Design though differentiate between network errors and App errors separately
Yes, U will see a bunch of warnings (end error too!) during compilation. From what I found out they are caused by Material-UI
users with passwords:
User | Password |
---|---|
Matej | abeceda |
Tomas | datasapiens |
npm install
npm start
npm run start-be
npm run start-fe
npm run reset-db
or if you are running commands separately just kill BE and type
npm run restart-be