This post originated from an RSS feed registered with .NET Buzz
by Duncan Mackenzie.
Original Post: I just like to make things complicated...
Feed Title: Code/Tea/Etc...
Feed URL: /msdnerror.htm?aspxerrorpath=/duncanma/rss.aspx
Feed Description: Duncan is the Visual Basic Content Strategist at MSDN, the editor of the Visual Basic Developer Center (http://msdn.microsoft.com/vbasic), and the author of the "Coding 4 Fun" column on MSDN (http://msdn.microsoft.com/vbasic/using/columns/code4fun/default.aspx). While typically Visual Basic focused, his blogs sometimes wanders off of the technical path and into various musing of his troubled mind.
When I started out to build a voting control, I drew up a set of requirements that led to a 5+ table system... some form of UI for creating/editing polls... plus the control itself. Then, when I had SQL running behind my web site, I wanted something up fast.... so I just grabbed a simple voting control from www.asp.net (by Rob Howard). The simplicity of this control (and its database structure) is a big plus, especially for me ... it is a great place to start to play around with ASP.NET.
It is nice enough, but it doesn't do what I need, so it is time to go back to my original design and build my own code instead of just messing around with Rob's.
My set of requirements, documented in the tried and true UBL (universal bulleted list) format... which isn't approved by Rational, or even by me, for use on real projects but works fairly well when I am the designer/user/developer/tester ...
I need a polling system that allows me to
Display different polls on different areas of my site,
Specify dates for a poll to appear in different locations (without touching any of my actual site pages)
Allow the user to view results without voting, and then to be able to go back and vote if they wish to
Allow reporting of poll results, with full details (text displayed, etc..), even after the poll has ceased to be displayed
Track votes by date, so that votes can be summed across all time or for a specific date range
Track the site location from which the vote was submitted, so that response rate and actual results can be compared by location
I think that is about it for requirements... noting that I didn't specify anything about how polls are created, controlled, edited, scheduled... I am a strong believer in incremental development so I can build the first poll or two manually while I finish that side of the system... and now I'm back at my 5 or so tables :)
There are still changes to make to this design, I want to be able to control the order of Options in the poll, for example... but I think I have enough to start building a proof-of-concept control...