responsible: Marios Meimarisdeck 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 | integerobjectId, autoincrement (scope limited to parent item) | yes | isInteger | implemented | |||||
title | string | yes | implemented | ||||||
timestamp | stringdate | yes | auto generated | implemented | |||||
user | integer, autoincrementobjectid | yes | isInteger | implemented | |||||
parentinteger | 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 | implementedimplemented | this is a comment of the revision - like in github | |||||
abstract | string | no | implemented | ||||||
footer | objectstring | no | not implemented | ||||||
license | string enumeration | yes | is one of enumerables ['CC0', 'CC BY', 'CC BY-SA'] | implemented | |||||
isFeatured | integer | no | isInteger
changed to string | ||||||
allowMarkdown | boolean | no | isBoolean | not implemented | if checked, authors have an additional editor for markdown | ||||
isFeatured | boolean | no | isBoolean | not implemented | |||||
priority | integer | no | isInteger | not implemented | |||||
visibility | boolean | no | isBoolean | not implemented | |||||
language | string | yes | implemented | ||||||
translation | object | no | not implemented | ||||||
tags | array | no | not 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 | not implementedimplemented | collects all data sources from slides | |||||
usage | array of | no | not implemented |
objects { id: object_id, revision: object_id} | no | implemented |
Slide =
property | type | required | format checking | state of implementation | remarks | ||||
---|---|---|---|---|---|---|---|---|---|
_id | integerobjectId, autoincrement | yes | isInteger | implemented | |||||
timestamp | stringdate | yes | auto generatedimplemented | should be format datetime | |||||
user | integer, autoincrementobjectId | yes | isInteger | implemented (passed to service) | |||||
kind | string enumeration ('deck', 'slide') | yes | auto generated | implemented | |||||
description | string | no | implemented | ||||||
language | string | yes | 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 | implementedtags | [ array ] | no | not 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 |
...
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 | |
markdown | string | no | ?? only allowed tags | not implemented yet | |
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 |
ltiURL |
string | no |
being implemented |
ltiKey |
string | no |
being implemented |
ltiWidth |
string | no |
being implemented |
ltiHeight |
string | no | being implemented |
ltiZIndex |
string |
...
no |
...
being implemented |