- Insert a new event into a database. If users try to
insert an event that's already in the database with the same (1)
acronym, (2) due-year, and (3) due-month (CHANGED:2005/2/10), then the insertion must be
aborted. That is, we assume that the acronym, due-year, and due-month
together functionally determines all the rest of fields:
{acronym, due-year, due-month} --> {type, event-date, location, society, ...}
- Retrieve current event list, sorted by:
- Post time (by the attribute "post_time")
- Due date (the due date of CFP) -- Use this option by default
- Acronym (alphabetical order)
- Event date (the date when the event begins)
- Retrieve current event list, grouped by:
- Type (workshop, conference, ...)
- Year (2003, 2004, ...)
- Country
- Society (e.g., IEEE, ACM, ...)
If there are multiple events within a group, sort them by "due date".
- Retrieve events matching a combination of conditions (e.g., view only the "conferences" of "2004" located in "USA")
- (Extra Bonus) Subscribe to certain events and get a
notification email when such an event is inserted into a
database. For instance, once John registers himself by providing initial ID/password and email address, he specifies
that he is interested in the event called "SIGMOD" each
year. Then, later, when the event is inserted, he should get an email. This feature can be implemented by the database features like Stored Procedures, Functions, or Triggers (not all are well supported in MySQL).
- (Extra Bonus) Retrieve top-10 events
matching a combination of conditions, and sort them
according to their "similarities" like search engines do (e.g.,
retrieve top-10 events that are located in "State College, PA,
USA"). This feature can be implemented by the database feature
"approximate query processing". In MySQL, for instance, it is like:
SELECT DISTINCT MATCH(E.location) AGAINST ('State College, PA, USA') As similarity, E.*
FROM events AS E
WHERE MATCH(E.location) AGAINST ('State College, PA, USA')
|