This project was bootstrapped with Create React App.
The main components are:
OfficesRadio
: to toggle between the Singapore and London officesTaxiCountSlider
: to select the number of taxis to display on the mapTaxiMap
: this is the main component that contains the Google Maps component with the taxi locations, theOfficesRadio
andTaxiCountSlider
components
To run the app in development, you can run npm start
which will start the server on http://localhost:3001
.
Ensure that the taxi-map-backend
API service is up and running on http://localhost:3000
.
@react-google-maps/api
: To render Google maps, I actually struggled to find a package that worked well with TypeScript. Settled on this one that seems to work well.geolib
: To find the office closest to the user's current location@material-ui/core
and@material-ui/icons
: For styling
- The app is not mobile responsive; that would possibly be the first thing to do
- Error/empty state handling
- Improving micro interactions when the user takes an action
- Adding a loading indicator when the data from the backend is being fetched
- Tests
- Unfamiliarity using React with TypeScript
- Settling on a Google Maps package to do the job