Renew Financial's coding challenge, hooray!
This is the version of the coding challenge as done by Elise Sunderland. Below are the instructions for setting this up and running it on another machine.
To see the instructions for the project, please see the file rf-code-challenge in the repo.
Please be sure that you have both Node and npm installed https://nodejs.org/en/download/
If you are using this git repo...
- Clone this repository into the folder of your choice.
git clone --repo name-- - In the project directory, please be sure to use
npm installto get all correct external packages - On the command line, run
npm run devto start up the local server atlocalhost:8080.
If you are downloading the project...
- Open the folder in your downloaded location
- run
npm installto double check that all dependencies are present - Use the same command as aove to get the local server running
The following tools were used to create this project
- React
- Webpack
- Babel
- Enzyme
- Mocha
- Lodash
- Moment
- React Day Picker
- React-JsonSchema-Form
- LucidUI
- Bootstrap
- Google Maps APIs
- sunrise-sunset API http://sunrise-sunset.org/api
You should be able to run this project right out of the blocks. Here's how the flow should work:
- Enter a valid address in the first form and press "Submit"
- You will then get a valid Latitude/Longitude location.
- Then, select a range of dates from the calendar. Once selected, submit the range of dates.
- The application will then output a table in UTC time of the various stats about the location, and the timezone will be displayed above the table.
For testing:
- In the folder directory, run the command
npm testto see unit testing results. - If, for some reason, there is an error thrown about styles, please run a quick
npm i --save-dev ignore-stylesand run the test command again.
- Currently the only way to verify valid address submissions are through the API response, so Google will estimate the location for the user
- Timezone adjustments are not made in the displayed table, but timezone is declared at the top of the component.
- Resetting the date range after submitting does not cause a different API request to fire. You must refresh the page to do so.
- Times are only shown in 12-hour time and not 24-hour.