This repository has been archived by the owner on Apr 5, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Data and Process Definition
Jon "The Nice Guy" Spriggs edited this page Jun 6, 2013
·
2 revisions
This document provides context to the data stored within the system, and an explanation of what the processes around that system do in that context and why.
If you have any suggestions around improving this document, please submit a ticket.
- SOME TEXT like this defines an object.
- SOMETHING MAY refer to that object later as SOME TEXT, then it means that this is a joining point between the first item and the second.
- A PROCESS will be referred to like this. It may be referred to, when defining the data types as A PROCESS where it refers to how the process will use the data.
- A variable will be referred to like-this unless it has a default value, when it will look like-this (default: value).
- AN ATTENDEE is a person who has expressed interest in attending or performing a TALK.
- AN ATTENDEE must have a Name and at least one set of Authentication credentials.
- AN ATTENDEE may provide details about Contact methods for other ATTENDEES to reach them.
- AN ATTENDEE may be a MODERATOR or an ADMINISTRATOR.
- AN ATTENDEE may be created, attributes amended or deleted, but in so doing, a LOGENTRY will be written, Identifying the change (From -> To), which OWNER, MODERATOR or ADMINISTRATOR performed it, and When.
- A MODERATOR is an ATTENDEE who has permissions to perform additional actions at the event.
- THE ADMINISTRATOR will be the first ATTENDEE on the system.
- THE ADMINISTRATOR will promote ATTENDEES to MODERATORS.
- THE ADMINISTRATOR is a MODERATOR who has permissions to perform additional actions at the event.
- A SLOT must have a start Date and Time, and a Duration (default: 35 minutes). It must not overlap with another SLOT.
- A SLOT can be identified as having a particular DESIGNATION (e.g. lunch, keynote) which might identify that SLOT as being Locked (available only for privilidged users to allocate TALKs into).
- A SLOT may be created, amended or deleted, but in so doing, a LOGENTRY will be written, Identifying the change (From -> To), which ADMINISTRATOR performed it, and When.
- A DESIGNATION is used to identify an unusual SLOT in the EVENT.
- A DESIGNATION must have a unique Name.
- A DESIGNATION must indicate whether that would Lock a SLOT when it is applied to it.
- A DESIGNATION would be rendered in each combination of ROOM and SLOT where the SLOT has the ROLE applied to it, and where there is no TALK in that combination.
- A DESIGNATION may be created, amended or deleted, but in so doing, a LOGENTRY will be written, Identifying the change (From -> To), which ADMINISTRATOR performed it, and When.
- A ROOM must have a Name.
- A ROOM should provide it's a Capacity. If the number of people attending a TALK in a ROOM exceeds 90% of that capacity, it should be identified as Full.
- A ROOM can be identified as being Locked (available only for privilidged users to allocate TALKs into).
- A ROOM may be created, amended or deleted, but in so doing, a LOGENTRY will be written, Identifying the change (From -> To), which ADMINISTRATOR performed it, and When.
- A TALK is Owned by an ATTENDEE. It is Presented by one or many ATTENDEES, which may not include the owner of the TALK.
- A TALK must have a Name. It should have a Summary and indicate whether the talk may contain Not-Work-Safe-Content.
- A TALK will be requested to start in a particular SLOT, and run for one or more SLOT Lengths.
- A TALK may contain a list of Links.
- A TALK may be created, attributes amended or deleted, but in so doing, a LOGENTRY will be written, Identifying the change (From -> To), which OWNER, MODERATOR or ADMINISTRATOR performed it, and When.
- A TALK will be Locked (can not move room and slot), either by a MODERATOR during pre-scheduling or by the SCHEDULER at a defined-period (default: 15 minutes) before the TALK is due to start.
- A TALK will be allocated to a ROOM, unless it is in LIMBO because the talk is new, or the SCHEDULER has placed it there.
- A TALK will be considered Locked where it has a Duration of more than one SLOT Length and only for the second and subsequent SLOTS of the talk's Duration, without exception.
- A LOGENTRY must show the Type of data which has been changed, the Date and Time it was changed, Who changed it and What was changed.
These are functions where are performed by the system.
- THE SCHEDULER is a process which performs automated actions.
- THE SCHEDULER will Lock TALKS to their ROOM at a defined-period (default: 15 minutes) before the TALK is due to start.
- THE SCHEDULER will remove the TALK from LIMBO once it has more than a defined-number-of-attendees (default: 2) and there are available rooms in that slot.
- THE SCHEDULER will place the TALK in LIMBO if there are more TALKS than ROOMS in a SLOT, and the rest of the TALKS in those ROOMS are either Locked, or have more ATTENDEES than this TALK.
- THE SCHEDULER will only change the ROOM allocated to a TALK if the number of ATTENDEES exceeds 90% of the Capacity of the ROOM, and the TALK in the next largest ROOM has less attendees than this TALK.
- THE SCHEDULER should update Joind.In at a defined-period (default: 15 minutes) before the TALK is due to start. It should populate a new talk record with the Name, Description, Start date and time, Links and Presenters, and then update the Links list with the Joind.In URL.
- THE SCHEDULER should broadcast (e.g. Twitter, IRC) when a TALK is due to start in a defined-period (default: 10 minutes).
- THE SCHEDULER should contact (using the NON-HTTP-INTERACTION-ENGINE, if available) an ATTENDEE if they are due in a defined-period (default: 20 minutes) to perform a TALK to advise them which ROOM they are performing it in. If Joind.In has been updated, it may advise the ATTENDEE of that reference.
- THE SCHEDULER may contact (using the NON-HTTP-INTERACTION-ENGINE, if available) an ATTENDEE if they have expressed interest in attending a TALK which is due to start in a defined-period (default: 10 minutes).
- THE NON-HTTP-INTERACTION-ENGINE may interact with a system (e.g. SMS, Twitter or IRC) to receive and act upon Requests. It should return a response to the Requester using the same medium, taking into account rate-limits and system-configuration.