This project will build a new functionality to [url removed, login to view] backend.
First of all, please review our coding guidelines: [url removed, login to view]
Milestone 1. Implement CreateAndReloadDb method in PlacesLoader
Use the PostgreSQL connection string in the file
Method should be recreating city table (not recreating db)
Unit tests to verify that columns are created as expected
Milestone 2. Implement IPlacesServices on PlacesService. Method descriptions are in interface definition file. Then start using new service in [url removed, login to view]
Every method should be fully covered by unit tests
Places service should only go to DB the first time, after that it should cache cities in memory
FindPlacesByPartialMatch for 10 results should return the same list of cities as this call.
FindPlacesByPartialMatch should be using efficient data structure so that search is O(m+n) where m is number of letters in the searched substring and n is number of items to return
FindPlacesInArea should be using efficient data structure, so that we are partitioning cities efficiently and only look at required partitions around the center location
For more details please see[url removed, login to view]
Each milestone will only be accepted after pull request is reviewed and approved and all unit tests are written.
If interested, please send me a message with the following info:
1. Your bid (time and $) for milestone #1 as per description
2. Your bid (time and $) for milestone #2
3. What column data types will you use in the DB for this data?
4. What data structure will you use to implement FindPlacesByPartialMatch? How much memory will it use.