This coding challenge consists of a single page web application that:
- Fetches osm data of a location from Openstreetmap api, given with the coordinates as (geolocation box)
- Has an integrated custom express server from which calls to the external API are performed
- Converts the data into GeoJSON using Osmtogeojson
- Flips latitude and longitude using Geojson-flip
- Displays the dataset on a map using Leaflet and React-leaflet
- Shares state across components using Redux
- Uses Tailwindcss as a CSS framework
- Is designed having in mind modularity & scalability; Follows the latest coding standards guidelines
- Correctly performs data & error validation
- Tests the correct rendering of the form components using testing-library-react
- Hosts both front and back-end on Heroku
- Has used Gitflow as a Git workflow
- React v17.0.1
- Redux v4.0.5
- React-redux v7.2.2
- Redux-thunk v2.3.0
- Redux-devtools-extension v2.13.8
- Tailwindcss v1.9.6
- React-icons v4.2.0
- Uuid: v8.3.2
- Express v4.17.1
- Axios v0.21.1
- Leaflet v1.7.1
- React-leaflet v3.1.0
- Geojson-flip v1.0.0
- Osmtogeojson v3.0.0-beta.4
- Concurrently v6.0.2
- Nodemon v2.0.7
To run the app locally, clone the repo and install the app using:
$ git clone https://github.com/guarmo/coding-challenge.git
$ cd coding-challenge
$ cd client
$ npm install
$ cd ..
$ npm install
$ npm run dev
Your app should now be running on localhost:5000.
To run the tests, after the installation run:
$ cd client
$ npm run test
This project is designed and developed by Armando Guarino
Thanks for your interest in contributing! There are many ways to contribute to this project. Find out how here.
Wishlist:
- Improve GUI
- Implement backend validation on routes
- Add further Unity Testing
This project is open source and available under the MIT License.