High level Evaluation
From our perspective, there only exist events, people, and links as defined below.
Events
An event is something that happens. From the most basic perspective, they are objects that have a start and stop date and time, location, title, and possibly description.
EventSeries
An event series is an ordered group of events. It is supposed to represent a required order of events (such as for workshops where one must attend workshop 1 to get to workshop 2 which you actually sign up for at one time)
People
A person keeps some level of identity for a person. This strictly is data that is common to all people
Group
An unordered collection of people. This is different than a role. A role is a subclass of person and there exist a finite number that can have more information associated with it. A group is simply the people.
Links
A link joins groups and series together in some relation. It strictly thinks in a many-to-many fashion though might not always be that way. In fact, this may be a group of one to a series of one event. See below for further explanation
Derivative Types
All of the top three low level models can be rolled into new objects. For example, a limited talk would be an event that has a link to at least one person in a speaker/presenter role and up to the limited number of links to people as attendees. In this example, we would have two derivatives of People and one derivative that includes those two as well as events and links.
Target Features
Needed
- CRUD Admin Interface
- Auto Registration Closing
- Confirmation Links
- Resource for Strings
- Support for Limited Events
- MechMania
- Team Number / Credentials
- Sign up for mailing list
- Email arbitrary groups / people
- Update Events
- UNIT TESTS WITH COVERAGE
Stretch Goals
- Auto Speaker SORF
- Auto Scheduling
- Auto Trac
- Convert to static after the fact
- Badge creation
Technologies
This is being planned to be all in C# targeting IIS 7 (mono support is questionable). We are going to use Linq-to-SQL connecting to SQL Server 2008 (though stressing Linq so other DBs could be used) for database connections and the ASP.NET MVC framework (currently RC1 as of this writing) as a framework. The admin interface is going to be handled through generated scaffolding The unit tests will be written in such a way that Visual Studio can run them without modification though additional PEX and code contracts tests may be used in the future.
