Deck/Slide

responsible: Kostis Pristouris

object_id = {       

type: 'string', //should be 'integer'
maxLength: 24, //does not need to be so long
minLength: 1

}


Contributor = 

propertytyperequiredformat checkingstate of implementationRemarks

user

integeryesisInteger

implemented

user id
countintegeryesisIntegerimplementedcount stores a number of occurrences of this user_id being an author of a deck revision


DataSource = 

propertytyperequiredformat checkingstate of implementationRemarks

type

stringyes

implemented


title

stringyes
implemented
urlstringno
implemented
commentstringno
implemented
authorsstringno
implemented
yearstringno
implemented


User=

propertytyperequiredformat checkingstate of implementationremarks
idintegeryes
ready to merge
joinedstringyesISO dateready to mergethe timestamp the user/group joined the deck editors
usernamestringnosee user service (question)ready to merge

picturestringnosee user service model (question)ready to merge

Group =

propertytyperequiredformat checkingstate of implementationremarks
idintegeryes
ready to merge
joinedstringyesISO dateready to mergethe timestamp the user/group joined the deck editors
namestringnosee user service (question)ready to merge


EditorsRights=

propertytyperequiredstate of implementationremarks
usersarray of Usersyesready to mergelists the users that explicitly are editors of the deck
groupsarray of Groupsyesready to mergelists the groups whose users explicitly can edit the deck


DeckOrigin = SlideOrigin

propertytyperequiredstate of implemenation
idintegeryesimplemented
revisionintegeryesimplemented
titlestringnoimplemented
userintegerno

implemented

kindstringnoimplemented in branch 1319



Deck = 

propertytyperequiredformat checkingstate of implementationRemarks

_id

integer, autoincrementyesisInteger

implemented

for now is 'string' in the code
timestampdateyesauto generatedimplementedadd 'format: datetime'
userintegeryesisIntegerimplemented (passed to service)
editorsEditorsRightsno
implemented
originDeckOriginno
implementedreferences the deck revision this deck was forked from
descriptionstringno
implemented

translationsarray of {language: 'string', deck_id: object_id}no
implemented in branch 1287language is in format 'de_DE' as we need this to save the new deck
translated_from


{ status: enum('original', 'google', 'revised', null)



has field 'status' with possible values 'original', 'google', 'revised'auto generated
implementedNot in use now, but implemented. Could be used later in front-end
lastUpdatestring, datetimeno

auto-generated on creating new slide revision inside the deck
revisions[ array of DeckRevision ]yesauto generatedimplemented
activeintegeryesif the revision exists, when a new deck is added is set to 1implemented
datasource string no

 if the whole deck is the adaptation of a resource
licensestring enumerationyesis one of enumerables ['CC0', 'CC BY', 'CC BY-SA']implemented should move it from revision, it is the same for the whole deck
contributorsarray of contributorsno
in process


ContentItem = 

propertytyperequiredformat checkingstate of implementation

order

integeryesisInteger

implemented

kindstringyesenum ('deck', 'slide')implemented
refobject:
{id, revision} 
yes
implemented
ref.idintegeryesisIntegerimplemented
ref.revisionintegeryesisIntegerimplemented


Tag =

propertytyperequiredformat checkingstate of implementation
tagNamestringyesto be decidedimplemented


DeckRevision = 

propertytyperequiredformat checkingstate of implementationremarks

id

objectId, autoincrement (scope limited to parent item)yesisInteger

implemented


titlestringyes
implemented
timestampdateyesauto generatedimplemented
userobjectidyesisIntegerimplemented
parentobject {id: objectId, revision: objectId}noisIntegernot implementedreference to a previous revision/branch etc.
languagestringyes
implemented
popularityintegernoisIntegernot implemented
themeobjectno
not implemented
transitionobjectno
not implemented
commentstringno
implementedthis is a comment of the revision - like in github
abstractstringno
implemented
footerstringno
implemented

for now it is an object, should be just a string

changed to string

allowMarkdownbooleannoisBooleannot implementedif checked, authors have an additional editor for markdown
isFeaturedbooleannoisBooleannot implemented
priorityintegernoisIntegernot implemented
visibilitybooleannoisBooleannot 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 implementedMost 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)
tagsarray of Tagsno
implemented
contentItemsarray of ContentItemsyes
implemented
dataSources

array of DataSources

no
implementedcollects all data sources from slides
usage

array of objects

{ id: object_id, revision: object_id}


no
implemented


Slide = 

propertytyperequiredformat checkingstate of implementationremarks

_id

objectId, autoincrementyesisInteger

implemented


timestampdateyesauto generatedshould be format datetime
userobjectIdyesisIntegerimplemented (passed to service)
originSlideOriginno


implementedreferences 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 implementedmost likely a redundant field (except of status, which we might need)
translationsarray of {language: 'string', slide_id: object_id}no
implementedlanguage is in a 5-signs format
descriptionstringno
implemented
contributors[array of contributor ]no
not implemented
revisions[ array of SlideRevisions ]yesauto generatedimplemented
activeobjectId (integer)noif the revision exists, when a new deck is added is set to 1not implemented

is this really needed?

active shows on content items of resp.parent

datasourcestringno
not implemented
licensestring enumerationyesis one of enumerables ['CC0', 'CC BY', 'CC BY-SA']implementedshould move it from slide_revision moved
lastUpdatestring, datetimenoautogenerated on creation of new revisionnot implemented


SlideRevision = 

propertytyperequiredformat checkingstate of implementationremarks

id

integer, autoincrementyesisInteger

implemented


titlestringyes
implemented
timestampdateyesauto generatedimplemented
contentstringyes?? only allowed tagsimplemented
markdownstringno?? only allowed tagsnot implemented yet
userinteger, autoincrementyesisIntegerimplemented
parent

object { id: objectId, revision: objectId }

no
not implementedkeeps link to a previsous revision
speakerNotesstringno
implemented
popularityintegernoisIntegernot implemented
commentstringno
implementedcomment of revision
tagsarray of Tagsno
implemented
mediaarrayno
not implemented
dataSourcesarray of DataSourcesno
implemented
languagestringyes
implemented
usage

array of objects

{ id: object_id, revision: object_id}
no
not implemented
ltiURLstringno
being implemented
ltiKeystringno
being implemented
ltiWidthstringno
being implemented
ltiHeightstringno
being implemented
ltiZIndexstringno
being implemented