The project goal is to display and manage all the relevant candidate information. The data is obtained from API, and allows recruiters to see a list of candidates, filter this list by candidate Name, Status and Position, and sort the data by Years of experience, Position applied and Applied date.
The selected filters and sort option are saved on the URL, in order to share the saved filters.
For security reasons and to avoid exposing sensitive data, the REACT_APP_BASE_URL_DOMAIN is set in a .env file, so to run the project locally you have to create the .env file and set the values as follows:
REACT_APP_BASE_URL_DOMAIN=http://personio-fe-test.herokuapp.com
- Clone repo to local machine
- Run
npm install
to install dependencies - Create
.env
file on the root folder and add values for REACT_APP_BASE_URL_DOMAIN - Run
npm start
- Open http://localhost:3000 to view it in the browser
- Run
npm run cypress:open
. It will launch the cypress app (check https://www.cypress.io/ for more details) - Select E2E testing
- Start testing in Chrome
- Select
applications.cy.ts
spec to open and run tests
- HTTP Client: Axios
- JS Framework : React
- E2E Test: Cypress
- Material UI icons: Material UI
- MomentJS: MomentJS
- Typescript: Typescript
- Emotion CSS: Emotion
- React Router: Router
- Change pagination strategy to be a infinity scroll
- Use React Virtual library to virtualize list
- Handle errors
- Improve UI
- Improve API to limit the data returned, instead off returning all the candidates and then build the pagination component
- Improve flaky tests