Implementation of the Digital Service Bund frontend challenge.
Built, using the React + TypeScript + Vite template.
Install dependencies:
$ yarn
Start development server:
$ yarn dev
Lint (eslint): yarn lint
Test (vitest): yarn test
Production build: yarn build
Data URL: By default, the sample data is fetched directly from Digital Service' GitHub repo. Overwrite the URL by setting the environment variable VITE_DATA_URL.
- The number of ministries providing data is not going to grow substantially. (Otherwise the way the data is displayed, rendered and filtered needs to be optimized.)
- Adding more widgets, potentially connecting to additional API endpoints, is planned.
- Using react-query provided an solid integration of data fetching with components, avoiding messing around with
useEffect. It might be overkill at this stage, but when the number of widgets and endpoints grow, it's straight-forward to organize it into multiple custom hooks that can be used by multiple components. Automatic refetching and a central data cache will come in handy then. - Assuming for this project to grow, starting out with a 3rd-party UI component library could be a good choice, to have a rich selection elements for layout, user input and data display available. I decided against it only because the goal of this exercise is also to show off low-level skills in CSS and JavaScript. For the current size, the little code necessary to make this work seems appropriate, too.