responsible: Kostis Pristouris
object_id = {
type: 'string', //should be 'integer'
maxLength: 24, //does not need to be so long
minLength: 1
}
Contributor =
property | type | required | format checking | state of implementation | Remarks |
---|---|---|---|---|---|
user | integer | yes | isInteger | implemented | user id |
count | integer | yes | isInteger | implemented | count stores a number of occurrences of this user_id being an author of a deck revision |
DataSource =
property | type | required | format checking | state of implementation | Remarks |
---|---|---|---|---|---|
type | string | yes | implemented | ||
title | string | yes | implemented | ||
url | string | no | implemented | ||
comment | string | no | implemented | ||
authors | string | no | implemented | ||
year | string | no | implemented |
User=
property | type | required | format checking | state of implementation | remarks |
---|---|---|---|---|---|
id | integer | yes | ready to merge | ||
joined | string | yes | ISO date | ready to merge | the timestamp the user/group joined the deck editors |
username | string | no | see user service | ready to merge | |
picture | string | no | see user service model | ready to merge |
Group =
property | type | required | format checking | state of implementation | remarks |
---|---|---|---|---|---|
id | integer | yes | ready to merge | ||
joined | string | yes | ISO date | ready to merge | the timestamp the user/group joined the deck editors |
name | string | no | see user service | ready to merge |
EditorsRights=
property | type | required | state of implementation | remarks |
---|---|---|---|---|
users | array of Users | yes | ready to merge | lists the users that explicitly are editors of the deck |
groups | array of Groups | yes | ready to merge | lists the groups whose users explicitly can edit the deck |
DeckOrigin = SlideOrigin
property | type | required | state of implemenation |
---|---|---|---|
id | integer | yes | implemented |
revision | integer | yes | implemented |
title | string | no | implemented |
user | integer | no | implemented |
kind | string | no | implemented in branch 1319 |
Deck =
property | type | required | format checking | state of implementation | Remarks | |
---|---|---|---|---|---|---|
_id | integer, autoincrement | yes | isInteger | implemented | for now is 'string' in the code | |
timestamp | date | yes | auto generated | implemented | add 'format: datetime' | |
user | integer | yes | isInteger | implemented (passed to service) | ||
editors | EditorsRights | no | implemented | |||
origin | DeckOrigin | no | implemented | references the deck revision this deck was forked from | ||
description | string | no | implemented | |||
translations | array of {language: 'string', deck_id: object_id} | no | implemented in branch 1287 | language is in format 'de_DE' as we need this to save the new deck | ||
translated_from | has field 'status' with possible values 'original', 'google', 'revised'auto generated | implemented | Not in use now, but implemented. Could be used later in front-end | |||
lastUpdate | string, datetime | no | auto-generated on creating new slide revision inside the deck | |||
revisions | [ array of DeckRevision ] | yes | auto generated | implemented | ||
active | integer | yes | if the revision exists, when a new deck is added is set to 1 | implemented | ||
datasource | string | no | if the whole deck is the adaptation of a resource | |||
license | string enumeration | yes | is one of enumerables ['CC0', 'CC BY', 'CC BY-SA'] | implemented | should move it from revision, it is the same for the whole deck | |
contributors | array of contributors | no | in process |
ContentItem =
property | type | required | format checking | state of implementation |
---|---|---|---|---|
order | integer | yes | isInteger | implemented |
kind | string | yes | enum ('deck', 'slide') | implemented |
ref | object: {id, revision} | yes | implemented | |
ref.id | integer | yes | isInteger | implemented |
ref.revision | integer | yes | isInteger | implemented |
Tag =
property | type | required | format checking | state of implementation |
---|---|---|---|---|
tagName | string | yes | to be decided | implemented |
DeckRevision =
property | type | required | format checking | state of implementation | remarks |
---|---|---|---|---|---|
id | objectId, autoincrement (scope limited to parent item) | yes | isInteger | implemented | |
title | string | yes | implemented | ||
timestamp | date | yes | auto generated | implemented | |
user | objectid | yes | isInteger | implemented | |
parent | object {id: objectId, revision: objectId} | no | isInteger | not implemented | reference to a previous revision/branch etc. |
language | string | yes | implemented | ||
popularity | integer | no | isInteger | not implemented | |
theme | object | no | not implemented | ||
transition | object | no | not implemented | ||
comment | string | no | implemented | this is a comment of the revision - like in github | |
abstract | string | no | implemented | ||
footer | string | no | implemented |
changed to string | |
isFeatured | boolean | no | isBoolean | not implemented | |
priority | integer | no | isInteger | not implemented | |
visibility | boolean | no | isBoolean | not implemented | |
translated_from | object { status: string, enum['original', 'google', 'revised', null], source: { id: object_id, revision: object_id}, translator: {id: object_id, name: string} } | no | not implemented | Most likely this is redundant - as we store everything in the "origin" field of the deck and we do not allow to have more than one translation in a certain language (we might create a revision instead, but for now it is just impossible - UI does not allow this) | |
tags | array of Tags | no | implemented | ||
contentItems | array of ContentItems | yes | implemented | ||
dataSources | array of DataSources | no | implemented | collects all data sources from slides | |
usage | array of objects { id: object_id, revision: object_id} | no | implemented |
Slide =
property | type | required | format checking | state of implementation | remarks |
---|---|---|---|---|---|
_id | objectId, autoincrement | yes | isInteger | implemented | |
timestamp | date | yes | auto generated | should be format datetime | |
user | objectId | yes | isInteger | implemented (passed to service) | |
origin | SlideOrigin | no | implemented | references the slide revision this slide was translated from (for keeping track of the translation links) | |
translated_from | object { status: string, enum['original', 'google', 'revised', null], source: { id: object_id, revision: object_id}, translator: {id: object_id, name: string} } | no | not implemented | most likely a redundant field (except of status, which we might need) | |
translations | array of {language: 'string', slide_id: object_id} | no | implemented | language is in a 5-signs format | |
description | string | no | implemented | ||
contributors | [array of contributor ] | no | not implemented | ||
revisions | [ array of SlideRevisions ] | yes | auto generated | implemented | |
active | objectId (integer) | no | if the revision exists, when a new deck is added is set to 1 | not implemented | is this really needed? active shows on content items of resp.parent |
datasource | string | no | not implemented | ||
license | string enumeration | yes | is one of enumerables ['CC0', 'CC BY', 'CC BY-SA'] | implemented | |
lastUpdate | string, datetime | no | autogenerated on creation of new revision | not implemented |
SlideRevision =
property | type | required | format checking | state of implementation | remarks |
---|---|---|---|---|---|
id | integer, autoincrement | yes | isInteger | implemented | |
title | string | yes | implemented | ||
timestamp | date | yes | auto generated | implemented | |
content | string | yes | ?? only allowed tags | implemented | |
user | integer, autoincrement | yes | isInteger | implemented | |
parent | object { id: objectId, revision: objectId } | no | not implemented | keeps link to a previsous revision | |
speakerNotes | string | no | implemented | ||
popularity | integer | no | isInteger | not implemented | |
comment | string | no | implemented | comment of revision | |
tags | array of Tags | no | implemented | ||
media | array | no | not implemented | ||
dataSources | array of DataSources | no | implemented | ||
language | string | yes | implemented | ||
usage | array of objects { id: object_id, revision: object_id} | no | not implemented |