This project adds new functionality to [url removed, login to view]
Review: [url removed, login to view]
Implement IPlacesServices on [PlacesService]([url removed, login to view]). Method descriptions are in interface definition file: [url removed, login to view]
This project will have 3 milestones:
1. Implement GetLocationFromPlaceID
2. Implement FindPlacesInArea
2. Implement FindPlacesByPartialMatch
- For every milestone there will be a separate pull request submitted on GitHub. Once pull request is approved, all checks are passing and it is ready to merge, milestone will be released and new milestone will be created. Don't start working on a next milestone, until previous was approved to avoid extra merging and wasted work.
- NOTE that StyleCop is enabled for this project, so every method and variable should have detailed comments
- Every method should be fully covered by unit tests
- Places service should load city entries by calling GetGeoPlacesFromEmbeddedFile in constructor and cache them in memory after that.
- FindPlacesByPartialMatch for 10 results should return the same list of cities as [this call]([url removed, login to view]).
- FindPlacesByPartialMatch should use a Trie data structure that is storing the city entries by starting letters, here's a visual example from wiki article:
![img]([url removed, login to view])
This way to get the results matching the input is a matter of going to the prefix from the top, then traversing the subtree and ordering the results by populating in descending order.
- FindPlacesInArea should be using efficient data structure, so that we are partitioning cities efficiently and only look at required partitions around the center location. **It should not be iterating over all results.**
- No external libraries should be used
If you are interested in this project please provide your answers to the following questions:
1. Do you have experience working in GitHub and do you realize you will need to fork [url removed, login to view] and submit pull request for your fork?
2. What is your time/money bid for milestone 1, milestone 2 and milestone 3 (separately).
3. Please confirm you understand that each milestone will only be released once pull request is ready to merge, passes all checks and all code review comments are addressed.