How Inscriptio is structured

Carrel Object List

This was originally a google document developed collaboratively by project principals. This is still a work in progress and will evolve over time.

A library:

* has many floors
* has an address, including latitude / longitude, URL and basic contact info
* has many reservable asset types
* has a bulletin board post expiration time


A floor:

* belongs to a library
* has a map, most likely a high quality PNG
* is ordered relative to other floors – meaning a different floor is above or below it.
* has many call numbers
* has many subject areas.
* has many reservable assets

Subject Area

A subject area:

* has and belongs to many floors
* has many call numbers
* has basic attributes like description and name

Call number

A call number:

* belongs to a subject area
* has and belongs to many floors
* has a code, description and other basic attributes

Reservable Asset

A reservable asset:

* belongs to a floor
* belongs to a reservable asset type
* has a location on the floor map – most likely an x y pixel offset to place it in the proper place.
* has many reservations
* has many users through its reservations
* has a section and number
* has a bulletin board
* has current users
* has a photo (optional)
* has a video (optional)
* has a minimum reservation time
* has a maximum reservation time
* has a reservation time increment – can only reserve in – say, 1 day or 1 week chunks.
* has a maximum number of concurrent users
* has a locker key / code (if defined in the reservable asset type)
* has general information, that’s probably merged into the welcome message.
* can be relinquished by the user reserving it, returning a slot to the reservable pool.

Reservable Asset Type

A reservable asset type:

* belongs to a Library
* has many reservable assets
* Has a name – carrel, locker, hold shelf, etc.
* Sets defaults for reservable assets – minimum reservation time, maximum reservation time, maximum number of concurrent users, reservation time increment, whether or not it has a code / key,
* Has options that effect the bulletin board – can have one? How long should posts live?
* has a photo
* has a welcome message, which may include follow-up instructions (Pick up your carrel reservation card here)
* has an expiration extension time period: the time before the expiration in which a user can renew a reservation for up to the maximum reservation time.
* has user types that can reserve this asset.
* has many Reservation Expiration Notices, which define the content and scheduling of reservation expiration messages. These messages can be related to either when an active reservation expires, or when a “reservation hold” is expiration. A reservation hold is a reservation that hasn’t been approved by a moderator.
* has a moderation flag – meaning, either the reservation goes through automatically without administrator approval OR an asset reservation must be OK’d by an admin.
* has a “moderation held” message. The welcome message can serve as the moderation approved message.

Reservation Expiration Notices

A reservation expiration notice:

* has a type – “hold” or “actual,” where “hold” is a notice for the reservation hold expiration times, and “actual” is a notice for when an actively reserved item is expiring.
* belongs to a reservable asset type.
* has a “days before expiration” attribute, which sets when this message is sent.
* has a message and a subject line
* has a reply-to
* is a multipart text/html message
* will template tags to substitute simple parameter like Library name, user name, date, etc.
* belongs to many reservations, but is only invoked when the “days before expiration” time is hit.


A reservation:

* belongs to a reservable asset
* belongs to a user
* has a code to uniquely identify it
* has a start date
* has an end date
* has an approved flag, which means the reservation has been approved by an administrator.

Bulletin Board

A bulletin board:

* has many posts ordered by creation time
* belongs to a discussable asset – currently only a reservable asset, but could include a library.
* has many users through the reservable assets list of current users
* has a maximum “post lifetime”


A post:

* belongs to a bulletin board
* belongs to a user
* has a creation time
* has a message
* has an (optional) image file attachment
* has many (optional) moderator flags
* has a “public” flag, allowing a post to be seen more broadly.

Moderator Flag

A moderator flag:

* belongs to a post
* has a reason – Abusive, Offensive, etc?
* belongs to user

Authentication source

An authentication source:

* has many users
* has many user types
* has an “authenticate” method that accepts user information and does a backend lookup returning a true or false if a user has authenticated properly to that user type.

User Type

A user type:

* has many users
* has a name – “grad students”, “undergrads”, etc.
* has many authentication sources


A user:

* has many reservations
* has many reservable assets through reservations
* has many posts
* belongs to a User Type
* has an authentication source through its user type


An administrator:

* Has a username and password.
* has an email address

Comments are closed.

Log in