A Silverlight 4.0 application targeted for the typical Indian Farmer of any given state.
The concept of this application is to provide the ordinary farmer to be able to walk-in to his local village’s or tahsildar’s office, and interacting with this touch enabled system, be able to find out the pricing information for his product in all the nearby market(s) – most importantly – as quickly and as easily as possible!
This is how this application should run and behave:
The user opens his/her multi-touch-sensitive enabled Windows 7 ATOM based netbook computer. On the right-hand side of the Windows 7 desktop is a Widget (explained further down in greater detail).
On double-clicking on this Widget, an application window shall pop-up, asking the user to log-in providing his name and maybe some kind of a password or ID (maybe ration-card number or something like that).
This is an out-of-browser Silverlight application installed on the system. On logging-in, the screen of this application is segregated into two main parts: a large panel showing the map of Karnataka (using Bing Maps, hopefully), and on the right hand side a thin panel. This panel is split into two vertical sections. On the top section is a scrollable panel of images show-casing different types of products like wheat, sugar, rice, sugarcane, etc. – primarily agricultural crops. The bottom area of this panel shows those products which the user is interested in – maybe a max of 10 items. The top 4 items would be by default displayed on the Widget running on the Windows 7 Desktop Sidebar.
On the top-most part of the screen is a drop down box from which the user has chosen his/her primary language – say Kannada or Hindi or English or whatever. He also has an audio on/off icon. The map is an interactive political map of Karnataka. When the user selects the District, the UI will zoom into the district and show the various Taluks which then can be zoomed in all the way down to the level of the various Town Markets, Panchayats & Villages.
The idea is this.
When the user logs-in the first time in the application, it first prompts for the current location where the user is from (or interested in). This would be his base location. So, say he selects his village, taluk, district, etc. information. This information would naturally be cached and stored in the local isolated storage provided for the Silverlight application, so that the user will not have to provide this the next time the application is opened. Since we have individual user-ids for each of the farmers, the farmer is offered personalization services (from ASP.NET), so that we can store individual preferences, since the application is intended to run on the computer provided in each of the Taluk/Panchayat Office.
So, using the user’s base location information provided in his preferences, the application shall start with the map zoomed into the current district, with a distinctive indicator showing where he is, so that he can see all the nearby markets. He can now zoom out by pinching two fingers, or zoom in by expanding gestures, depending upon his requirement.
On the bottom right part of the screen, let us say the user has chosen 4 products out of the total 10 products that the user can monitor. He has chosen these products on selecting the product from the top-part of the products panel. These are the 4 products he is interested to know the pricing of, in the various markets. He shall use his fingers to drag-and drop his preferred products.
So now, let us say, he has zoomed in on his district. The map of the district shows the various town markets. When he taps his finger over the town market’s name (which is shown in the language he has chosen), a nice little box will hover near his finger – showing the information for each of the product – viz. the image, the name, the commodity purchase price and the commodity selling price! The information shall be presented in a nice little grid. What’s more, since he has enabled audio, the system will actually read out these values along with the name of the Market in the local dialect chosen in the preferences! The application shall utilize a grammatically correct, sentence construction model to define the audio sentence, and read out the same for each of the product. It will first read out the name of the Market place, and then for each product, a sentence will be constructed and read out loud, providing the price and the other information.
The hovering table shall also provide a button, which when tapped would add the displayed information into a cross-table (which would be shown like a shopping-cart kind of icon in one of the corners). So, let us say he has hovered over couple of the nearby markets, and of these, he has chosen 3 markets. If he taps on this Table Icon, he is presented with a Comparison Chart for the 4 shortlisted products. This Table shall be shown with a button in a corner, which when tapped shall take out a printout of this table, which he can take home with him. The Printout shall also indicate the date/time stamp, so if he wants he can actually file the same and maintain a record for future reference of trends & patterns.
The other aspect of the same application is that when the administrator logs-in to the application at each of the markets, he would be now able to provide the indicative prices for each of these commodities sold in his market. This would be the set of values shown to the farmer.
And since the commodity list and the pricing information is now connected to the cloud, and hence centralized, we can provide the data as a service so that we would be able to display this information as a live-update up-to-the-minute value.
So, for example, whenever the price changes, and if the farmer has opted (as part of his/her preferences), we could even shoot an SMS Update (since now most farmers have got cellphones – all thanks to Reliance mobiles!)
Stepping aside, these price updates could be logged so that we can provide various analytical reports like graphs indicating market trends against the desired time line, etc.!
One more thing, before I forget. If we store the farmer’s profile information, then we can offer the following additional feature. Once the farmer has zoomed in and selected his home location, all available profiles could be shown to him – like a typical nearby tweets on a bing map!
And then, if we assume that the system has a web camera, when the farmer registers his profile, then when he adds the same, not only does he provide his name, address and contact information, he can also use the web camera and have his photo attached to his profile. The idea being, that once he has zoomed in on his home location, we show a wall of photographs with the names of the farmers (something like what Cooliris.com provides), and then selects his photograph to proceed to the next level of the application where he can see the product pricing.
Advantage of this, is to show case facial recognition as one of the logging-in mechanisms for a Silverlight driven ASP.NET application.
Of course the intention is as explained earlier – to offer a quick pick list of the current prices of the previously selected locations that he had opted for, during his previous session with the application. So on logging in, he does not have to perform the entire exercise of selecting the products, then selecting the locations & consolidating the prices. Instead, he just logs in to the system, and when he clicks on this price comparison grid, he is presented with the most up-to-date prices of his selected products, for the various selected locations. Effectively, thus completing his work within a time frame of under 2 minutes!
Proposed Technology considerations:
• Multi-Touch enabled Silverlight development. Since currently Silverlight 3.0 does not support the multi-touch development, we can rely upon the Windows 7 Operating System to provide the support, and we basically plan only for the mouse click based interactions for now. Once Silverlight 4.0 gets released, we can always plan for and integrate the same – thus providing other facilities, like rotating the map, zoom-in and zoom-out, etc. Right now, we can depend upon the mouse-wheel to provide the zoom-in & zoom-out capabilities in Silverlight 3.0. The Silverlight application shall run in the Out-Of-Browser mode, thus providing a client-side installation capability.
• The Maps could be powered by either Google Maps or Bing Maps – whichever provides the necessary APIs and developer tools
• The base machine would be a Windows 7 based multi-touch capable ATOM computer, with a minimum of 1 GB RAM and Audio Support.
• Geo-spatial data type support is currently offered in SQL Server 2008 – and this could be feature that could be considered to store analytical based log data. However, since SQL Azure currently does not support this, the required geo-spatial information could be currently put in Table Storage of Windows Azure.
• The maps could be cached and delivered using the CDN services, and the entire application could be hosted on the Cloud, with the Silverlight application provided as an out-of-browser install-once enabled installation, with a reasonable amount of local storage, complete with WCF based RIA services providing the requisite Data Services using the ADO.NET Entity Framework.