I have many years of development experience centered around the Microsoft stack. However, I'm brand new to Azure, I have minimal web experience and I've never done any mobile development. Nearly all of my experience revolves around desktop application development, application conversions/modernizations and back end communication. I've decided to enter the Azure Development Contest to increase my skills and to see if I can actually bring one of my ideas to the real world. Please follow along with me as I embark on a journey of learning. I'm so new to this entire area that I feel if I can make this application work given the tools provided by Microsoft and the community then anyone can do it as well.
I will be writing a web site and an accompanying mobile application known as Danger Dodger. At any given point in time we are all subject to a certain amount of danger or risk. This could be due to lightning during a storm, flash floods, tornadoes, approaching hurricanes, wild fires and more. But in addition to natural disasters we're also under attack from those around us from time to time. For instance, during the Boston Marathon explosives were detonated killing and wounding many. A simple Google search for the word "shooting" brings up over a dozen articles from the past 2 days alone. I believe that spreading awareness and information faster can save more lives and help keep us all safe. Danger Dodger is designed to track this information and keep users aware of dangers. If things get extremely dangerous the system will send an IM to let you know things have gotten serious enough that you need to stop and pay attention.
Application Structure and Tools
The structure of the application is sure to change as it's being developed, and as I learn more I'm sure I will adopt new patterns as well. For the time being my goal is to create an ASP.NET 4.5 application using an MVC 4 pattern with SQL Server on the back end. I plan to leverage my existing knowledge of Entity Framework 5 and the repository pattern as my DAL and my front end will consist of the ASP.NET website and the mobile interface. I haven't done any mobile development so this may end up being Silverlight or XAML or possibly HTML 5 depending on what's available and what will work on the widest array of devices.
For development tools I will be utilizing VS 2012 Ultimate, TFS and/or Tortoise for source control, Windows 8 on a VM, and the Azure SDK. I may also find myself using Blend if necessary. If I need tools beyond this I will make updates.
I hope to complete the following list of goals during the evolution of Danger Dodger:
- Ability for users to upload dangerous situations from their mobile devices
- The ability to find users close (in proximity) to known dangers and alert them via IM (if necessary)
- Mobile application should be able to show a real-time representation of the current danger level based on users location
- Ability to tie in to local systems for warnings in addition to user submitted warnings.
- Website will be similar to the mobile app but will be browsable and won't be limited by your location
If time allows:
- Facebook integration to alert your friends and family of alerts
- Pattern tracking to reduce potential fake alerts being sent
- Offline support
Why use Azure?
An application such as this will at most times see very low levels of traffic. However, during a crisis site traffic could increase tremendously. Azure auto scaling seems like a great benefit to take advantage of. The "pay as you go/pay as you grow" model makes perfect sense. Also, with this type of application is very important that it stays up during a crisis situation. Azure's secure storage model seems ideal.
April 29th, 2013 - Initial Article Submission.
April 30th, 2013 - Chaos Tracker renamed to Danger Dodger which more accurately reflects the purpose of the application.