Due to personal time constraint, I have simplified the task slightly in the following ways, allowing me to get to a working prototype a bit quicker:
- Long/Lat flattened in JSON
- null replaced with 0 in the coordinates
Suboptimal design choices I wouldn't do in a real production app which I did to save time/effort/inexperience with C#:
- load/parse JSON on every API call
- single API endpoint with filtering through query string
- displaying all points on the map instead of grouping many close ones into cluster
- using inline styles
- hardcoding property types in the dropdown
- unit-testing filter functions
- document API outside of code
- style frontend to look nice
- take css out of inline JSX into something like styled-components
(tested on MacOS and Ubuntu)
- cd into propertyAPI (backend)
- run
dotnet build
- run
dotnet run
- cd into frontend
- run
npm i
- run
npm run start
open http://localhost:3000/
in any modern browser
-
As a user, I want to be able to see a list of all relevant information (adress etc.) when selecting a property.
-
As a user I want to be able to judge the surrounding area of a property by seeing markers of nearby schools, public transport, supermarkets etc.
-
As a maintainer I want to be able to add and modify properties without going into the source code.