On The Spot
End User’s Perspective
On The Spot is an application that provides information of interest based on your current location.
Need some money? Low on gas? Hungry? On The Spot can help you. It will locates point of interest such as "Banks", "Gas Station" and "Restaurants" and provides detail information such address (with maps and itineraries), phone numbers and distance and bearing relative to your current position such that you will have no problem getting what you want.
What new today? What's the weather? On The Spot can help you. Local news and weather information are at your fingertip.
With the ability to customize your search, no matter where you are and what you want, there is a spot for you.
I’ll be taking an iterative and incremental development approach for each feature. Team Foundation Service (https://tfspreview.com/) will be used to keep track of my progress and as source control. Similarly, each feature will be done in a test-driven development/design mindset when possible. Visual Studio’s integrated test framework and runner will aid me in this task.
The application will be built with the Model-View-ViewModel (MVVM) architectural pattern. The framework that I chose to aid me is Laurent Bugnion’s excellent framework “MVVM Light Toolkit”, which can be downloaded from CodePlex (http://mvvmlight.codeplex.com/) or from NuGet (http://nuget.org/packages/MvvmLight). The article “Using the MVVM Pattern in Windows 8” (http://msdn.microsoft.com/en-us/magazine/jj651572.aspx) will help get started.
The front end will be built in XAML and it will use the common hierarchical system of navigation with hub, section and detail pages. This will allow users to dig into the information desired. The “Bing Maps SDK for Windows Store apps” will be leveraged to display detailed locations of point of interests.
The back end will be built in C#. This is where a TDD approach will be the most appropriate. As I mention earlier, I will be using Visual Studio integrated test framework and runner. Since I will be dealing with external data, mocking will be required, and for that I am planning to use Moq, which can be downloaded from NuGet (http://nuget.org/packages/Moq)
The data will be retrieved from both Bing and Google. In both cases, I will be using JSON.Net (http://nuget.org/packages/Newtonsoft.Json) to easily parse the information.
Currently, since I don’t expect too much data, I’m planning to simply use XML files and the built-in Windows Storage and Application Data. If it is insufficient, a move to SQLLite or to Windows Azure Mobile Services might be considered.