This repository is my submission to the home challenge requested by Silicon Rhino.
This TypeScript codebase has been developed using a number of frontend technologies. Here is a non-exhaustive list of them:
- React: To build the interface. As a side note, this codebase uses the hook system.
- Material UI: As a quick UI framework
- Styled Components: To style the components
- React Fetching Library: To fetch data from the REST API. This also integrates a caching layer for improved performances. Under the hood, I have chosen to rely on axios for a more predictable behaviour.
- Parcel: As a bundler and development server.
To run this project locally, you just have to:
-
Download it, or clone this repository
-
Install the dependencies with:
npm install
- Run the development server:
npm start
If you want a production bundle, you can run:
npm build
This codebase is very basic as it has been developed in a short period of time, following the challenge instructions. If it were to be improved, here are some options we could explore :
-
To write several unit tests to check the non-regression of the components and main functions.
-
To have a list of filters with the search bar to get the events corresponding to a type, or a creator for example.
-
To add some interactivity with the map:
- The markers could be clickable.
- Hovering them we could have a quick preview of the event.
- When searching / filtering the event list, we could have only the matching ones shown.
Paul Landázuri