This is a React.js technical challenge. It's a very simple, bootstrapped React app and lightweight (fake) back-end. This app is meant to approximate what the real app is like (in tech stack, code, and functionality), but it's boiled down to only the essentials.
It uses:
- Typescript
- React.js
- Create React App
- react-router-dom
- json-graphql-server for the back-end, database, and GraphQL
- Apollo Client (React client for GraphQL requests)
- Import this repo to your Github account IMPORTANT: Select "Private", not "Public"
- Clone your repo locally and
cd
into it - Run
yarn
ornpm i
- Open a couple of terminal windows.
- In the first, run
yarn serve
. This runs the back-end server, which generates routes and mutations fromdb.js
. - In the second, run
yarn start
. Your app will load up at http://localhost:3000.
- In the first, run
- You should now be presented with a very basic app with a portfolio of some holdings of various types.
- Open the GraphiQL environment for your local server: http://localhost:3005/graphql. You can try queries against the back-end here, with autocomplete. Use this as the source of all back-end data.
This challenge is intended to take about one hour.
- Improve the portfolio page:
- Display all holdings BY CATEGORY, such that each category has its respective holdings' information displayed nicely.
- Format all numbers and strings appropriately (denominations, currency symbols, thousands delineation, etc)
- Add a pie chart of the holdings
- Add refresh button for updated holdings on the Portfolio page
We will evaluate your submission on:
- Fulfillment of requirements and functionality (as limited by time taken)
- Code quality (is this code mergeable as-is, or would the PR be rejected?)
- Usable UI & navigation (no need for high polish)
Push up your repo/branch to Github and give read access to the users provided by your recruiter.
In this README (below), please include:
- Your goal and primary focus
- The amount of time you took
- Any assumptions and/or constraints you came up with while working through this challenge
- What you would change or add if you had more time
- A screen recording or screenshots of your app