[pullquote]Congress may be lame duck but our new voting app is not! [/pullquote] Netizen is a Windows 8 app (available in the Windows Store for free) that brings the voting record of your congressional representative to your finger tips, directly from your Windows 8 device. Simply select the member of Congress you want to follow and “flick through” their voting record. Information about each member’s voting record is stored in Windows Azure Storage and is updated daily.
But don’t just follow how your representative is voting in Congress, make your voice heard. By clicking on the “Like It” button on the mobile application, you can influence your friends and neighbors about the bill through the power of social networking. For each bill, Netizen automatically provisions a Facebook page[1] dedicated to your member of Congress. This page acts almost as a virtual ballot for a bill as well as a community hub where fellow constituents can gather to express their support. Read on for more, plus some screenshots from the application:
Not using a mobile device? No problem! Simply point your browser to the addresses listed below: To get a list of representatives for the state of Virginia, use this address:
[Voting is now closed]
Screenshot #1: Select state or find your congressional district based on your location.
Screenshot #2: Select Representative
Screenshot #3: “Flick through” the most recent roll call votes.
Screenshot #4: “Virtual ballot” – Dynamically generated Facebook page.
Screenshot #5: Search for a representative.
Technical Details
Netizen combines the power of Windows RT and Windows Azure. Here is how the application works. But first, thanks go to my colleague Siva Kuchi who took my Windows Phone 7 code and ported it to Windows Azure. In the process, he added valuable features not included in the Windows Phone 7 version of the app, including determining the congressional district based on location, search for a representative etc. Thanks are also due to my colleague Steve Michelotti for converting the WCF-based REST services to Web API.
Here are the key details about the how the app has been implemented:
Windows 8 App
A Windows 8 app built using XAML / C#. It is designed to have a small footprint. As a result, the bulk of the functionality is located inside Windows Azure and is exposed as a set of REST services.
Azure Service
- Unlike the previous version that relied on an Azure Web Role and WCF for enabling REST services, this version uses an Azure Web Site hosted Web API based approach.
- All the voting data is stored in Azure tables. Each day we obtain the congressional voting record from Office of the Clerk of the U.S. House of Representatives and store it in Azure Tables. Since Azure Web Sites do not support running scheduled tasks (unlike a web or worker role), we use an online cron job service to kick off the data load.
- A MVC4-based web application (co-located within the Azure Web Site with the REST service) is used to dynamically generate Open Graph API pages (that are deemed as Facebook Pages).
[1] A page hosted on our site that includes Open Graph tags, making it equivalent to a Facebook Page