Homework assignment for Payworks recruitment process
Use yarn
or npm install
to install all dependencies.
yarn start
or npm start
to run the app
yarn test
to run unit/integration tests
yarn test:e2e
to run e2e tests (run the app first!)
e2e
- end to end testspublic
- public filessrc
- sourcecomponents
- React components*Route
root components for each route
containers
-unstated
containers to store the state of the applicationhooks
- React hooksuseDebounce
- hooks-based debounce functionality
services
- XHR requests
index.js
- render's the app
This project was bootstrapped with Create React App.
I chose React framework to write this application because it's the technology which I recently worked the most with and I think it's great for small projects like this one as well as for large applications.
As a state management library I chose unstated
for two reasons:
- It seemed to be very simple (not too complex for such small app).
- I've never used it before and I wanted to learn something new.
axios
- for XHR requestsbootstrap
- to make it look a little bit nicerreact-router-dom
- routing library for Reactunstated
- simple library for state managementunstated-connect
- to easily connect components with unstated containerslodash.debounce
- for debounce functionality used for organization's input
jest
- testing framework integrated into Create React Apppuppeteer
- to run e2e tests in headless Chromejest-puppeteer
- for writing e2e tests and run them using Puppeteerreact-testing-library
andreact-hooks-testing-library
- testing utilssinon
- testing utils used in this project just for faking timers/setTimeout functionality