jam sessions site requirements display a per-user calendar having: - user's events - events associated with user's stated interests - user's available timeframes allow user to express interest in: - venues - timeframes - users - objects representing collections of any of the above + styles + record labels + user groups - calendar - interest + an object of interest must be able to provide a list of additional interests which would result from being interested in the original object - events - venues - users + event generator + has interest in: - events - event generators - venues - timeframes (possibly periodic, like "tuesday nights") + this would be a constraint, a filter, capable of knocking out objects a user would otherwise be interested in - any object?! (what API must such objects implement?) queries: - date to day-of-week - user to collection of interests - interest to events simple first implementation: display a list of users who perform styles display a list of users who are interested in a style display a list of styles and allow their names to be edited display a list of users, all of whom are of interest to a particular user display a list of interests of a particular user (not the same as above) allow user to express interest in style allow user to state he performs a style allow user to name/create a new style data structures - users - styles (first cut: collections of users who perform particular styles) (very first cut: an object targeted by an acs_rel) - interests + acs_rel from interested user to object of interest + object of interest must implement an interface (to be defined) - provide list of additional interests as result of interest in this + acs_rel will have aux table containing type of interest (probably type of object of interest) - style performer + acs_rel from performing user to performance style