General Info

You can use the Thoth's REST API to interact programmatically with the available courses in thoth and their public content.

The API is experimental and beta
Thoth's REST API is experimental at this stage. We will be adding to it in future releases. So please expect some API changes. We will be delighted if you use the API and give us your feedback.

API Version

This documentation concerns the version 1 of the API.
All the API resources, presented below, are prefixed by http://<host>/api/v1.

Authentication

This version of the API doesn't have authentication mechanisms. All the available operations are GET request of public data.

Feedback

To give feedback regading this API you can use the feedback tool at the right side of the page.
You can also send and email to thoth.hello_AT_gmail.com.

Resources

The following sections describe the Thoth API resources.

Root

Root is the main resource of the Thoth API

ResourceDescription
GET / Returns general API details and links to the top API resources.

Example request

GET /api/v1/
                                                
            {
                application: 'Thoth',
                version: 1,
                _links: {
                    self: '/api/v1',
                    programs: '/api/v1/programs',
                    courseUnits: '/api/v1/courseunits',
                    lectiveSemesters: '/api/v1/lectivesemesters',
                    classes: '/api/v1/classes',
                    students: '/api/v1/students',
                    teachers: '/api/v1/teachers'
                }
            }
            
                                                

Programs

Programs are entities that represent academic programs. Academic programs are composed by academic courses of a given course unit in some lective semester.

ResourceDescription
GET /programs Returns a collection with all the programs.

Example request

GET /api/v1/programs
                                                
             {
                 programs: [
                 {
                     id: 1,
                     shortName: 'LEIC',
                     fullName: 'Licenciatura em Engenharia Informática e de Computadores',
                     _links: {
                     self: '/api/v1/programs/1'
                     }
                 },
                 {
                     id: 2,
                     shortName: 'MEIC',
                     fullName: 'Mestrado em Engenharia Infomática e Computadores',
                     _links: {
                     self: '/api/v1/programs/2'
                 }
             },
            
                                                
GET /programs/{id} Returns a single program, specified by the given id parameter. A program contains one or more course units.

Parameters

idSystem.Int32The unique identifier of the program.

Example request

GET /api/v1/programs/1
                                                
              {
                  id: 1,
                  shortName: 'LEIC',
                  name: 'Licenciatura em Engenharia Informática e de Computadores',
                  courseUnits: [
                  {
                      id: 2,
                      shortName: 'PI',
                      _links: {
                          self: 'http://thoth.cc.e.ipl.pt/api/v1/courseunits/2'
                      }
                  },
                  {
                      id: 4,
                      shortName: 'PICC',
                      _links: {
                          self: 'http://thoth.cc.e.ipl.pt/api/v1/courseunits/4'
                      }
                  },
                  {},
                  {
                      id: 8,
                      shortName: 'Pg',
                      _links: {
                          self: 'http://thoth.cc.e.ipl.pt/api/v1/courseunits/8'
                      }
                  }
                  ],
                  _links: {
                      self: 'http://thoth.cc.e.ipl.pt/api/v1/programs/1',
                      programs: 'http://thoth.cc.e.ipl.pt/api/v1/programs',
                      root: 'http://thoth.cc.e.ipl.pt/api/v1'
                  }
              }}
            
                                                

Course Units

Course Units are entities that represent academic subjects.

ResourceDescription
GET /courseunits Returns a collection with all the course units.

Example request

GET /api/v1/courseunits
                                                
            {
                courseUnits: [
                {
                    id: 1,
                    shortName: 'CSO',
                    fullName: 'Complementos de Sistemas Operativos',
                    _links: {
                        self: 'http://thoth.cc.e.ipl.pt/api/v1/courseunits/1'
                    }
                },
                {
                    id: 2,
                    shortName: 'PI',
                    fullName: 'Programação na Internet',
                    _links: {
                        self: 'http://thoth.cc.e.ipl.pt/api/v1/courseunits/2'
                    }
                },
                {
                    id: 3,
                    shortName: 'PICC-CPg',
                    fullName: 'Programação Imperativa em C e C++ / Complementos de Programação',
                    _links: {
                        self: 'http://thoth.cc.e.ipl.pt/api/v1/courseunits/3'
                    }
                }
                ],
                _links: {
                    self: 'http://thoth.cc.e.ipl.pt/api/v1/courseunits',
                    root: 'http://thoth.cc.e.ipl.pt/api/v1'
                }
            }
            
                                                
GET /courseunits/{id} Returns a single course unit, specified by the given id parameter. A course if available in one or more programs.

Parameters

idSystem.Int32The unique identifier of the course unit.

Example request

GET /api/v1/courseunits/2
                                                
            {
                id: 2,
                shortName: 'PI',
                name: 'Programação na Internet',
                programs: [
                {
                    id: 1,
                    shortName: 'LEIC',
                    _links: {
                        self: 'http://thoth.cc.e.ipl.pt/api/v1/programs/1'
                    }
                }
                ],
                _links: {
                    self: 'http://thoth.cc.e.ipl.pt/api/v1/courseunits/2',
                    courseUnits: 'http://thoth.cc.e.ipl.pt/api/v1/courseunits',
                    root: 'http://thoth.cc.e.ipl.pt/api/v1'
                }
            }
            
                                                

Lective Semesters

Lective Semesters are periods or time where classes are lectured. A lective semester has a start year and a term (e.g. spring).

ResourceDescription
GET /lectivesemesters Returns a collection with all the lective semesters.

Example request

GET /api/v1/lectivesemesters
                                                
            {
                lectiveSemesters: [
                {
                    lectiveSemesterId: 1,
                    shortName: '0910i',
                    startYear: 2009,
                    term: 1,
                    termName: 'Fall',
                    _links: {
                        self: 'http://thoth.cc.e.ipl.pt/api/v1/lectivesemesters/1',
                        root: 'http://thoth.cc.e.ipl.pt/api/v1'
                    }
                },
                {
                    lectiveSemesterId: 2,
                    shortName: '0910v',
                    startYear: 2009,
                    term: 2,
                    termName: 'Spring',
                    _links: {
                        self: 'http://thoth.cc.e.ipl.pt/api/v1/lectivesemesters/2',
                        root: 'http://thoth.cc.e.ipl.pt/api/v1'
                    }
                }
                ],
                _links: {
                    self: 'http://thoth.cc.e.ipl.pt/api/v1/lectivesemesters'
                }
            }
            
                                                
GET /lectivesemesters/{id} Returns a single lective semester, specified by the given id parameter.

Parameters

idSystem.Int32The unique identifier of the lective semester.

Example request

GET /api/v1/lectivesemesters/1
                                                
            {
                lectiveSemesterId: 1,
                shortName: '0910i',
                startYear: 2009,
                term: 1,
                termName: 'Fall',
                _links: {
                    self: 'http://thoth.cc.e.ipl.pt/api/v1/lectivesemesters/1',
                    lectiveSemesters: 'http://thoth.cc.e.ipl.pt/api/v1/lectivesemesters',
                    root: 'http://thoth.cc.e.ipl.pt/api/v1'
                }
            }
            
                                                

Students

Students are persons that enroll into courses in Thoth.

ResourceDescription
GET /students Returns a collection with all the students.

Example request

GET /api/v1/students
                                                
            {
                students: [
                {
                    id: 4806,
                    number: 4806,
                    shortName: 'Emídio Lopes',
                    academicEmail: '4806@alunos.isel.pt',
                    avatarUrl: {
                        size32: 'http://www.gravatar.com/avatar/7104de2d876ab59f3968d1a356074e2c?s=32&r=g&d=mm'
                    },
                    _links: {
                        self: 'http://thoth.cc.e.ipl.pt/api/v1/students/4806'
                    }
                },
                {
                    id: 6112,
                    number: 6112,
                    shortName: 'António Klut',
                    academicEmail: '6112@alunos.isel.pt',
                    avatarUrl: {
                        size32: 'http://www.gravatar.com/avatar/00b569692ce4302d23806f674527dcfc?s=32&r=g&d=mm'
                    },
                    _links: {
                        self: 'http://thoth.cc.e.ipl.pt/api/v1/students/6112'
                    }
                },
                {
                    id: 38982,
                    number: 38982,
                    shortName: 'José Domingues',
                    academicEmail: '38982@alunos.isel.pt',
                    avatarUrl: {
                        size32: 'http://www.gravatar.com/avatar/c372681095cf1db57a73e67e7be81c8d?s=32&r=g&d=mm'
                    },
                    _links: {
                        self: 'http://thoth.cc.e.ipl.pt/api/v1/students/38982'
                    }
                }
                ],
                _links: {
                    self: 'http://thoth.cc.e.ipl.pt/api/v1/students',
                    root: 'http://thoth.cc.e.ipl.pt/api/v1'
                }
            }
            
                                                
GET /students/{id} Returns a single student, specified by the given id parameter.

Parameters

idSystem.Int32The unique identifier of the student. A student is uniquely identified by its student number.

Example request

GET /api/v1/students/38982
                                                
            {
                id: 38982,
                number: 38982,
                shortName: 'José Domingues',
                name: 'José Domingues',
                academicEmail: '38982@alunos.isel.pt',
                avatarUrl: {
                    size24: 'http://www.gravatar.com/avatar/c372681095cf1db57a73e67e7be81c8d?s=24&r=g&d=mm',
                    size32: 'http://www.gravatar.com/avatar/c372681095cf1db57a73e67e7be81c8d?s=32&r=g&d=mm',
                    size64: 'http://www.gravatar.com/avatar/c372681095cf1db57a73e67e7be81c8d?s=64&r=g&d=mm',
                    size128: 'http://www.gravatar.com/avatar/c372681095cf1db57a73e67e7be81c8d?s=128&r=g&d=mm'
                },
                program: {
                    id: 1,
                    shortName: 'LEIC',
                    _links: {
                        self: 'http://thoth.cc.e.ipl.pt/api/v1/programs/1'
                    }
                },
                _links: {
                    self: 'http://thoth.cc.e.ipl.pt/api/v1/students/38982',
                    students: 'http://thoth.cc.e.ipl.pt/api/v1/students',
                    root: 'http://thoth.cc.e.ipl.pt/api/v1'
                }
            }
            
                                                

Teachers

Teachers are persons which offer courses in Thoth.

ResourceDescription
GET /teachers Returns a collection with all the teachers.

Example request

GET /api/v1/teachers
                                                
            {
                teachers: [
                {
                    id: 1,
                    number: 1647,
                    shortName: 'Carlos Guedes',
                    academicEmail: 'cguedes@cc.isel.ipl.pt',
                    avatarUrl: {
                        size32: 'http://www.gravatar.com/avatar/a41abb7ba6113d46b4711ade3ff9c518?s=32&r=g&d=mm'
                    },
                    _links: {
                        self: 'http://thoth.cc.e.ipl.pt/api/v1/teachers/1'
                    }
                },
                {
                    id: 2,
                    number: 754,
                    shortName: 'Ezequiel Conde',
                    academicEmail: 'ezeq@cc.isel.ipl.pt',
                    avatarUrl: {
                        size32: 'http://www.gravatar.com/avatar/61226bd3c5715454c587e8897ec1c096?s=32&r=g&d=mm'
                    },
                    _links: {
                        self: 'http://thoth.cc.e.ipl.pt/api/v1/teachers/2'
                    }
                }
                ],
                _links: {
                    self: 'http://thoth.cc.e.ipl.pt/api/v1/teachers',
                    root: 'http://thoth.cc.e.ipl.pt/api/v1'
                }
            }
            
                                                
GET /teachers/{id} Returns a single teacher, specified by the given id parameter.

Parameters

idSystem.Int32The unique identifier of the teacher. Note that this parameter isn't the teacher's number.

Example request

GET /api/v1/teachers/1
                                                
             {
                 id: 1,
                 number: 1647,
                 shortName: 'Carlos Guedes',
                 fullName: 'Carlos Manuel Mendes Guedes',
                 academicEmail: 'cguedes@cc.isel.ipl.pt',
                 avatarUrl: {
                     size24: 'http://www.gravatar.com/avatar/a41abb7ba6113d46b4711ade3ff9c518?s=24&r=g&d=mm',
                     size32: 'http://www.gravatar.com/avatar/a41abb7ba6113d46b4711ade3ff9c518?s=32&r=g&d=mm',
                     size64: 'http://www.gravatar.com/avatar/a41abb7ba6113d46b4711ade3ff9c518?s=64&r=g&d=mm',
                     size128: 'http://www.gravatar.com/avatar/a41abb7ba6113d46b4711ade3ff9c518?s=128&r=g&d=mm'
                 },
                 _links: {
                     self: 'http://thoth.cc.e.ipl.pt/api/v1/teachers/1',
                     teachers: 'http://thoth.cc.e.ipl.pt/api/v1/teachers',
                     root: 'http://thoth.cc.e.ipl.pt/api/v1'
                 }
             }
            
             
                                                

Classes

Classes are the core entities of Thoth.

ResourceDescription
GET /classes Returns a collection with all the classes. The classes are sorted by lective semester (e.g. 1112v), then by course unit (e.g. CG) and then by their name (e.g. LI21D)

Example request

GET /api/v1/classes
                                                
             {
                 classes: [
                 {
                     id: 62,
                     fullName: 'AC / 1112i / LI21N-LT31N',
                     courseUnitShortName: 'AC',
                     lectiveSemesterShortName: '1112i',
                     className: 'LI21N-LT31N',
                     mainTeacherShortName: 'João Pedro Patriarca',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/62'
                     }
                 },
                 {
                     id: 40,
                     fullName: 'CG / 1112i / LI31D-LI51D',
                     courseUnitShortName: 'CG',
                     lectiveSemesterShortName: '1112i',
                     className: 'LI31D-LI51D',
                     mainTeacherShortName: 'Carlos Guedes',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40'
                     }
                 },
                 {
                     id: 64,
                     fullName: 'CG / 1112i / LI31N-LI51N',
                     courseUnitShortName: 'CG',
                     lectiveSemesterShortName: '1112i',
                     className: 'LI31N-LI51N',
                     mainTeacherShortName: 'Carlos Guedes',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/64'
                     }
                 },
                 {
                     id: 44,
                     fullName: 'LSC / 1112i / LI51N-MI1N',
                     courseUnitShortName: 'LSC',
                     lectiveSemesterShortName: '1112i',
                     className: 'LI51N-MI1N',
                     mainTeacherShortName: 'João Trindade',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/44'
                     }
                 },
                 {
                     id: 41,
                     fullName: 'Pg / 1112i / LI11D',
                     courseUnitShortName: 'Pg',
                     lectiveSemesterShortName: '1112i',
                     className: 'LI11D',
                     mainTeacherShortName: 'Pedro Pereira',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/41'
                     }
                 },
                 {
                     id: 57,
                     fullName: 'Pg / 1112i / LI11N',
                     courseUnitShortName: 'Pg',
                     lectiveSemesterShortName: '1112i',
                     className: 'LI11N',
                     mainTeacherShortName: 'Filipe Freitas',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/57'
                     }
                 },
                 {
                     id: 39,
                     fullName: 'Pg / 1011v / LI11D',
                     courseUnitShortName: 'Pg',
                     lectiveSemesterShortName: '1011v',
                     className: 'LI11D',
                     mainTeacherShortName: 'Pedro Pereira',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/39'
                     }
                 },
                 {
                     id: 38,
                     fullName: 'Pg / 1011v / LR11D',
                     courseUnitShortName: 'Pg',
                     lectiveSemesterShortName: '1011v',
                     className: 'LR11D',
                     mainTeacherShortName: 'Carlos Guedes',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/38'
                     }
                 },
                 {
                     id: 37,
                     fullName: 'PSC / 1011v / LI31D',
                     courseUnitShortName: 'PSC',
                     lectiveSemesterShortName: '1011v',
                     className: 'LI31D',
                     mainTeacherShortName: 'João Pedro Patriarca',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/37'
                     }
                 },
                 {
                     id: 2,
                     fullName: 'PI / 0910i / LI51N',
                     courseUnitShortName: 'PI',
                     lectiveSemesterShortName: '0910i',
                     className: 'LI51N',
                     mainTeacherShortName: 'Fernando Carvalho',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/2'
                     }
                 },
                 {
                     id: 3,
                     fullName: 'PI / 0910i / LI52D',
                     courseUnitShortName: 'PI',
                     lectiveSemesterShortName: '0910i',
                     className: 'LI52D',
                     mainTeacherShortName: 'Carlos Guedes',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/3'
                     }
                 }
                 ],
                 _links: {
                     self: 'http://thoth.cc.e.ipl.pt/api/v1/classes',
                     root: 'http://thoth.cc.e.ipl.pt/api/v1'
                 }
             }
            
             
                                                
GET /classes/{id} Returns a class, specified by the given id parameter. A class contains links to their related data, namely the class participants, the class groups, the class news, the class lectures, the class workitems, and others.

Parameters

idSystem.Int32The unique identifier of the class to return.

Example request

GET /api/v1/classes/40
                                                
              {
                  id: 40,
                  fullName: 'CG / 1112i / LI31D-LI51D',
                  courseUnitShortName: 'CG',
                  lectiveSemesterShortName: '1112i',
                  className: 'LI31D-LI51D',
                  mainTeacherShortName: 'Carlos Guedes',
                  courseUnitId: 14,
                  lectiveSemesterId: 5,
                  mainTeacherId: 1,
                  maxGroupSize: 3,
                  mainTeacher: {
                      id: 1,
                      number: 1647,
                      shortName: 'Carlos Guedes',
                      _links: {
                          self: 'http://thoth.cc.e.ipl.pt/api/v1/teachers/1'
                      }
                  },
                  otherTeachers: [
                  {
                      id: 9,
                      number: 889,
                      shortName: 'Pedro Pereira',
                      _links: {
                          self: 'http://thoth.cc.e.ipl.pt/api/v1/teachers/9'
                      }
                  }
                  ],
                  _links: {
                      self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40',
                      mainTeacher: 'http://thoth.cc.e.ipl.pt/api/v1/teachers/1',
                      courseUnit: 'http://thoth.cc.e.ipl.pt/api/v1/courseunits/14',
                      lectiveSemester: 'http://thoth.cc.e.ipl.pt/api/v1/lectivesemesters/5',
                      classes: 'http://thoth.cc.e.ipl.pt/api/v1/classes',
                      root: 'http://thoth.cc.e.ipl.pt/api/v1',
                      participants: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/participants',
                      pages: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/pages',
                      groups: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/groups',
                      lectures: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/lectures',
                      newsItems: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/newsitems',
                      workItems: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/workitems',
                      resources: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/resources'
                  }
              }
            
                                                

Class Participants

This resource represents the participants of a class. A class has teacher and student participations.

ResourceDescription
GET /classes/{classId}/participants Returns a collection with all the groups of the class specified by the given id parameter.

Parameters

classIdSystem.Int32The unique identifier of the class related to the participations.

Example request

GET /api/v1/classes/40/participants
                                                
            {
                classId: 40,
                mainTeacher: {
                    id: 1,
                    number: 1647,
                    fullName: 'Carlos Manuel Mendes Guedes',
                    academicEmail: 'cguedes@cc.isel.ipl.pt',
                    avatarUrl: {
                        size24: 'http://www.gravatar.com/avatar/a41abb7ba6113d46b4711ade3ff9c518?s=24&r=g&d=mm',
                        size32: 'http://www.gravatar.com/avatar/a41abb7ba6113d46b4711ade3ff9c518?s=32&r=g&d=mm',
                        size64: 'http://www.gravatar.com/avatar/a41abb7ba6113d46b4711ade3ff9c518?s=64&r=g&d=mm',
                        size128: 'http://www.gravatar.com/avatar/a41abb7ba6113d46b4711ade3ff9c518?s=128&r=g&d=mm'
                    },
                    _links: {
                        self: 'http://thoth.cc.e.ipl.pt/api/v1/teachers/1'
                    }
                },
                otherTeachers: [
                {
                    id: 9,
                    number: 889,
                    fullName: 'Pedro Alexandre de Seia e Cunha Ribeiro Pereira',
                    academicEmail: 'palex@cc.isel.ipl.pt',
                    avatarUrl: {
                        size24: 'http://www.gravatar.com/avatar/8d5df4a8a265474f0dd55b574213138e?s=24&r=g&d=mm',
                        size32: 'http://www.gravatar.com/avatar/8d5df4a8a265474f0dd55b574213138e?s=32&r=g&d=mm',
                        size64: 'http://www.gravatar.com/avatar/8d5df4a8a265474f0dd55b574213138e?s=64&r=g&d=mm',
                        size128: 'http://www.gravatar.com/avatar/8d5df4a8a265474f0dd55b574213138e?s=128&r=g&d=mm'
                    },
                    _links: {
                        self: 'http://thoth.cc.e.ipl.pt/api/v1/teachers/9'
                    }
                }
                ],
                students: [
                {
                    id: 28499,
                    number: 28499,
                    fullName: 'Vitor Manuel da Silva Morais',
                    academicEmail: '28499@alunos.isel.ipl.pt',
                    avatarUrl: {
                        size24: 'http://www.gravatar.com/avatar/3e96c3c62d8742176a3e307635f105f3?s=24&r=g&d=mm',
                        size32: 'http://www.gravatar.com/avatar/3e96c3c62d8742176a3e307635f105f3?s=32&r=g&d=mm',
                        size64: 'http://www.gravatar.com/avatar/3e96c3c62d8742176a3e307635f105f3?s=64&r=g&d=mm',
                        size128: 'http://www.gravatar.com/avatar/3e96c3c62d8742176a3e307635f105f3?s=128&r=g&d=mm'
                    },
                    enrollmentDate: '2012-07-29T11:44:07.4947276+01:00',
                    currentGroup: '13',
                    _links: {
                        self: 'http://thoth.cc.e.ipl.pt/api/v1/students/28499'
                    }
                },
                {
                    id: 29167,
                    number: 29167,
                    fullName: 'Vitor Alexandre Jacinto Amaral',
                    academicEmail: '29167@alunos.isel.ipl.pt',
                    avatarUrl: {
                        size24: 'http://www.gravatar.com/avatar/04caba859f1e298da2325e916da524a4?s=24&r=g&d=mm',
                        size32: 'http://www.gravatar.com/avatar/04caba859f1e298da2325e916da524a4?s=32&r=g&d=mm',
                        size64: 'http://www.gravatar.com/avatar/04caba859f1e298da2325e916da524a4?s=64&r=g&d=mm',
                        size128: 'http://www.gravatar.com/avatar/04caba859f1e298da2325e916da524a4?s=128&r=g&d=mm'
                    },
                    enrollmentDate: '2012-07-29T11:44:07.5477351+01:00',
                    currentGroup: '9',
                    _links: {
                        self: 'http://thoth.cc.e.ipl.pt/api/v1/students/29167'
                    }
                },
                {
                    id: 29243,
                    number: 29243,
                    fullName: 'Hugo Filipe Aleixo de Jesus',
                    academicEmail: '29243@alunos.isel.ipl.pt',
                    avatarUrl: {
                        size24: 'http://www.gravatar.com/avatar/9df797e4e3c61c967ac915ac75613174?s=24&r=g&d=mm',
                        size32: 'http://www.gravatar.com/avatar/9df797e4e3c61c967ac915ac75613174?s=32&r=g&d=mm',
                        size64: 'http://www.gravatar.com/avatar/9df797e4e3c61c967ac915ac75613174?s=64&r=g&d=mm',
                        size128: 'http://www.gravatar.com/avatar/9df797e4e3c61c967ac915ac75613174?s=128&r=g&d=mm'
                    },
                    enrollmentDate: '2012-07-29T11:44:07.5527349+01:00',
                    currentGroup: '-',
                    _links: {
                        self: 'http://thoth.cc.e.ipl.pt/api/v1/students/29243'
                    }
                }
                ],
                _links: {
                    self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/participants',
                    class: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40',
                    root: 'http://thoth.cc.e.ipl.pt/api/v1'
                }
            }
            
                                                

Groups

Groups are collections of students associated to a class, and submit workitems to Thoth.

ResourceDescription
GET /classes/{classId}/groups Returns a collection with all the groups of the class specified by the given id parameter.

Parameters

classIdSystem.Int32The unique identifier of the class related to the groups to return.

Example request

GET /api/v1/40/groups
                                                
             {
                 groups: [
                 {
                     id: 615,
                     classId: 40,
                     num: 1,
                     locked: false,
                     state: 'Full',
                     enrollments: [
                     {
                         number: 32770,
                         shortName: 'Samuel Ferreira',
                         enrollmentDate: '2011-10-10T16:07:31.197',
                         _links: {
                             student: 'http://thoth.cc.e.ipl.pt/api/v1/students/32770'
                         }
                     },
                     {
                         number: 35440,
                         shortName: 'Andre Encarnacao',
                         enrollmentDate: '2011-10-06T08:49:02.257',
                         _links: {
                             student: 'http://thoth.cc.e.ipl.pt/api/v1/students/35440'
                         }
                     },
                     {
                         number: 35459,
                         shortName: 'Joel Gralha',
                         enrollmentDate: '2011-10-06T08:44:58.487',
                         _links: {
                             student: 'http://thoth.cc.e.ipl.pt/api/v1/students/35459'
                         }
                     }
                     ],
                     self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/groups/615'
                 },
                 {
                     id: 616,
                     classId: 40,
                     num: 2,
                     locked: true,
                     state: 'Empty',
                     enrollments: [],
                     self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/groups/616'
                 },
                 {
                     id: 619,
                     classId: 40,
                     num: 5,
                     locked: true,
                     state: 'Partial',
                     enrollments: [
                     {
                         number: 32732,
                         shortName: 'Marcelo Pereira',
                         enrollmentDate: '2011-09-23T16:24:38.9',
                         _links: {
                             student: 'http://thoth.cc.e.ipl.pt/api/v1/students/32732'
                         }
                     },
                     {
                         number: 35435,
                         shortName: 'Ricardo Sousa',
                         enrollmentDate: '2011-09-23T17:51:31.467',
                         _links: {
                             student: 'http://thoth.cc.e.ipl.pt/api/v1/students/35435'
                         }
                     }
                     ],
                     self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/groups/619'
                 }
                 ],
                 maxGroupSize: 3,
                 _links: {
                     self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/groups',
                     class: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40',
                     root: 'http://thoth.cc.e.ipl.pt/api/v1'
                 }
             }
            
             
                                                
GET /classes/{classId}/groups/{id} Returns a single group, for the class specified by the classId parameter, with id specified by the id parameter.

Parameters

classIdSystem.Int32The unique identifier of the class related to the group to return.
idSystem.Int32The identifier of the group

Example request

GET /api/v1/classes/40/groups/619
                                                
            {
                id: 619,
                classId: 40,
                num: 5,
                locked: true,
                state: 'Partial',
                enrollments: [
                {
                    number: 32732,
                    shortName: 'Marcelo Pereira',
                    enrollmentDate: '2011-09-23T16:24:38.9',
                    _links: {
                        student: 'http://thoth.cc.e.ipl.pt/api/v1/students/32732'
                    }
                },
                {
                    number: 35435,
                    shortName: 'Ricardo Sousa',
                    enrollmentDate: '2011-09-23T17:51:31.467',
                    _links: {
                        student: 'http://thoth.cc.e.ipl.pt/api/v1/students/35435'
                    }
                }
                ],
                _links: {
                    self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/groups/619',
                    groups: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/groups',
                    root: 'http://thoth.cc.e.ipl.pt/api/v1'
                }
            }
            
                                                

Pages

A class could contain pages with public content.

ResourceDescription
GET /classes/{classId}/pages Returns a collection with all the pages of the class specified by the given classId parameter.

Parameters

classIdSystem.Int32The unique identifier of the class related to the lectures to return.

Example request

GET /api/v1/classes/40/pages
                                                
             {
                 classPages: [
                 {
                     id: 1,
                     title: 'Home',
                     order: 1,
                     indentation: 0,
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/pages/1'
                     }
                 },
                 {
                     id: 2,
                     title: 'Programa',
                     order: 2,
                     indentation: 0,
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/pages/2'
                     }
                 },        
                 {
                     id: 3,
                     title: 'Regras de Avaliação',
                     order: 3,
                     indentation: 0,
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/pages/3'
                     }
                 },        
                 ],
                 _links: {
                     self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/64/lectures',
                     class: 'http://thoth.cc.e.ipl.pt/api/v1/classes/64',
                     root: 'http://thoth.cc.e.ipl.pt/api/v1'
                 }
             }
            
             
                                                
GET /classes/{classId}/pages?id={id} Returns a single page specified by the given id parameter.

Parameters

idSystem.Int32The unique identifier of the lecture.

Example request

GET /api/v1/pages/1
                                                
             {
                 id: 2,
                 title: 'Programa',
                 dateCreated: '2012-03-12T14:00:00',
                 dateModified: '2012-03-13T11:23:12',
                 content: '<p></p><ul><li>Introdução à Computação Gráfica<ul><li>Rasterização</li><li>Desenho 2D: Linhas e Círculos</li><li>Algoritmos de preenchimento</li></ul></li>
                           <li>Transformações Geométricas (2D e 3D)<ul><li>Translação, Rotação e Escala</li><li>Coordenadas Homogéneas</li><li>Composição de Transformações</li></ul></li>
                           <li>Modelação Geométrica<ul><li>CSG (Constructive Solid Geometry)</li></ul></li><li>VRML</li><li>Projecção<ul><li>Paradigma da câmara virtual</li>
                           <li>Tipos de projecção (paralela, oblíqua)</li></ul></li><li>OpenGL</li><li>Cor, Sombreamento e Iluminação<ul><li>Modelos de reflexão local e global</li></ul></li></ul><p></p>',
                 _links: {
                     self: 'http://thoth.cc.e.ipl.pt/api/v1/pages/2',
                     root: 'http://thoth.cc.e.ipl.pt/api/v1'
                 }
             }
            
             
                                                
GET /pages/{id}?classId={classId} Returns a collection with all the pages of the class specified by the given classId parameter.

Parameters

classIdSystem.Int32The unique identifier of the class related to the lectures to return.

Example request

GET /api/v1/classes/40/pages
                                                
             {
                 classPages: [
                 {
                     id: 1,
                     title: 'Home',
                     order: 1,
                     indentation: 0,
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/pages/1'
                     }
                 },
                 {
                     id: 2,
                     title: 'Programa',
                     order: 2,
                     indentation: 0,
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/pages/2'
                     }
                 },        
                 {
                     id: 3,
                     title: 'Regras de Avaliação',
                     order: 3,
                     indentation: 0,
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/pages/3'
                     }
                 },        
                 ],
                 _links: {
                     self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/64/lectures',
                     class: 'http://thoth.cc.e.ipl.pt/api/v1/classes/64',
                     root: 'http://thoth.cc.e.ipl.pt/api/v1'
                 }
             }
            
             
                                                
GET /pages/{id} Returns a single page specified by the given id parameter.

Parameters

idSystem.Int32The unique identifier of the lecture.

Example request

GET /api/v1/pages/1
                                                
             {
                 id: 2,
                 title: 'Programa',
                 dateCreated: '2012-03-12T14:00:00',
                 dateModified: '2012-03-13T11:23:12',
                 content: '<p></p><ul><li>Introdução à Computação Gráfica<ul><li>Rasterização</li><li>Desenho 2D: Linhas e Círculos</li><li>Algoritmos de preenchimento</li></ul></li>
                           <li>Transformações Geométricas (2D e 3D)<ul><li>Translação, Rotação e Escala</li><li>Coordenadas Homogéneas</li><li>Composição de Transformações</li></ul></li>
                           <li>Modelação Geométrica<ul><li>CSG (Constructive Solid Geometry)</li></ul></li><li>VRML</li><li>Projecção<ul><li>Paradigma da câmara virtual</li>
                           <li>Tipos de projecção (paralela, oblíqua)</li></ul></li><li>OpenGL</li><li>Cor, Sombreamento e Iluminação<ul><li>Modelos de reflexão local e global</li></ul></li></ul><p></p>',
                 _links: {
                     self: 'http://thoth.cc.e.ipl.pt/api/v1/pages/2',
                     root: 'http://thoth.cc.e.ipl.pt/api/v1'
                 }
             }
            
             
                                                

Lectures

Lectures are class sessions taught (or other) along the course operation.

ResourceDescription
GET /classes/{classId}/lectures Returns a collection with all the lectures of the class specified by the given classId parameter. The dateCreated and dateModified are expressed in UTC.

Parameters

classIdSystem.Int32The unique identifier of the class related to the lectures to return.

Example request

GET /api/v1/classes/40/lectures
                                                
             {
                 classLectures: [
                 {
                     id: 33,
                     title: 'Aula 01: Apresentação',
                     when: '2012-03-12T14:00:00',
                     dateModified: '2015-06-23 18:09:38Z',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/lectures/33'
                     }
                 },
                 {
                     id: 34,
                     title: 'Aula 02: Revisões',
                     when: '2012-03-19T14:00:00',
                     dateModified: '2015-06-23 18:09:38Z',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/lectures/34'
                     }
                 },
                 {
                     id: 35,
                     title: 'Aula 03: Recursividade',
                     when: '2012-03-26T14:00:00',
                     dateModified: '2015-06-23 18:09:38Z',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/lectures/35'
                     }
                 }
                 ],
                 _links: {
                     self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/64/lectures',
                     class: 'http://thoth.cc.e.ipl.pt/api/v1/classes/64',
                     root: 'http://thoth.cc.e.ipl.pt/api/v1'
                 }
             }
            
             
                                                
GET /classes/{classId}/lectures?id={id} Returns a single lecture specified by the given id parameter. The dateCreated and dateModified are expressed in UTC.

Parameters

idSystem.Int32The unique identifier of the lecture.

Example request

GET /api/v1/lectures/33
                                                
             {
                 id: 33,
                 title: 'Aula 01: Apresentação',
                 when: '2012-03-12T14:00:00',
                 durationMinutes: 90,
                 location: 'tbd',
                 content: '<ul><li>Apresenta&#231;&#227;o da unidade curricular <ul><li>Enquadramento</li> <li>Pr&#233;-requisitos</li> <li>Programa</li> <li>Bibliografia</li> <li>Avalia&#231;&#227;o</li> <li>Planeamento</li></ul></li></ul>  <ul><li>Revis&#245;es</li></ul>',
                 dateCreated: '2012-03-11T14:00:00',
                 dateModified: '2015-06-23 18:09:38Z',
                 resources: [
                 {
                     id: 8,
                     title: 'Design Patterns: Elements of Reusable Object-Oriented Software',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/resources/8'
                     }
                 }
                 ],
                 _links: {
                     self: 'http://thoth.cc.e.ipl.pt/api/v1/lectures/33',
                     classLectures: 'http://thoth.cc.e.ipl.pt/api/v1/classes/64/lectures',
                     class: 'http://thoth.cc.e.ipl.pt/api/v1/classes/64',
                     root: 'http://thoth.cc.e.ipl.pt/api/v1'
                 }
             }
            
             
                                                
GET /lectures/{id}?classId={classId} Returns a collection with all the lectures of the class specified by the given classId parameter. The dateCreated and dateModified are expressed in UTC.

Parameters

classIdSystem.Int32The unique identifier of the class related to the lectures to return.

Example request

GET /api/v1/classes/40/lectures
                                                
             {
                 classLectures: [
                 {
                     id: 33,
                     title: 'Aula 01: Apresentação',
                     when: '2012-03-12T14:00:00',
                     dateModified: '2015-06-23 18:09:38Z',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/lectures/33'
                     }
                 },
                 {
                     id: 34,
                     title: 'Aula 02: Revisões',
                     when: '2012-03-19T14:00:00',
                     dateModified: '2015-06-23 18:09:38Z',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/lectures/34'
                     }
                 },
                 {
                     id: 35,
                     title: 'Aula 03: Recursividade',
                     when: '2012-03-26T14:00:00',
                     dateModified: '2015-06-23 18:09:38Z',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/lectures/35'
                     }
                 }
                 ],
                 _links: {
                     self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/64/lectures',
                     class: 'http://thoth.cc.e.ipl.pt/api/v1/classes/64',
                     root: 'http://thoth.cc.e.ipl.pt/api/v1'
                 }
             }
            
             
                                                
GET /lectures/{id} Returns a single lecture specified by the given id parameter. The dateCreated and dateModified are expressed in UTC.

Parameters

idSystem.Int32The unique identifier of the lecture.

Example request

GET /api/v1/lectures/33
                                                
             {
                 id: 33,
                 title: 'Aula 01: Apresentação',
                 when: '2012-03-12T14:00:00',
                 durationMinutes: 90,
                 location: 'tbd',
                 content: '<ul><li>Apresenta&#231;&#227;o da unidade curricular <ul><li>Enquadramento</li> <li>Pr&#233;-requisitos</li> <li>Programa</li> <li>Bibliografia</li> <li>Avalia&#231;&#227;o</li> <li>Planeamento</li></ul></li></ul>  <ul><li>Revis&#245;es</li></ul>',
                 dateCreated: '2012-03-11T14:00:00',
                 dateModified: '2015-06-23 18:09:38Z',
                 resources: [
                 {
                     id: 8,
                     title: 'Design Patterns: Elements of Reusable Object-Oriented Software',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/resources/8'
                     }
                 }
                 ],
                 _links: {
                     self: 'http://thoth.cc.e.ipl.pt/api/v1/lectures/33',
                     classLectures: 'http://thoth.cc.e.ipl.pt/api/v1/classes/64/lectures',
                     class: 'http://thoth.cc.e.ipl.pt/api/v1/classes/64',
                     root: 'http://thoth.cc.e.ipl.pt/api/v1'
                 }
             }
            
             
                                                

News Items

News Items are news placed in a given class, along the class operation.

ResourceDescription
GET /classes/{classId}/newsitems Returns a collection with all the news of the class specified by the given classId parameter.

Parameters

classIdSystem.Int32The unique identifier of the class related to the news to return.

Example request

GET /api/v1/classes/40/newsitems
                                                
             {
                 newsItems: [
                 {
                     id: 175,
                     title: 'Trabalho 1',
                     when: '2012-05-04T12:21:30.44',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/newsitems/175'
                     }
                 },
                 {
                     id: 170,
                     title: 'Notas do 2º teste e teste global de CG',
                     when: '2012-02-03T10:19:50.497',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/newsitems/170'
                     }
                 },
                 {
                     id: 157,
                     title: '2º teste e 1º teste global de CG',
                     when: '2012-01-15T11:22:42.627',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/newsitems/157'
                     }
                 }
                 ],
                 _links: {
                     self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/newsitems',
                     class: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40',
                     root: 'http://thoth.cc.e.ipl.pt/api/v1'
                 }
             }
            
             
                                                
GET /classes/{classId}/newsitems?id={id} Returns a single news item specified by the given id parameter.

Parameters

idSystem.Int32The unique identifier of the news item.

Example request

GET /api/v1/newsitems/175
                                                
            {
                id: 175,
                title: 'Trabalho 1',
                when: '2012-05-04T12:21:30.44',
                content: 'Informo que o trabalho 1 est&#225; dispon&#237;vel para consulta.',
                _links: {
                    self: 'http://thoth.cc.e.ipl.pt/api/v1/newsitems/175',
                    classNewsItems: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/newsitems',
                    class: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40',
                    root: 'http://thoth.cc.e.ipl.pt/api/v1'
                }
            }
            
                                                
GET /newsitems/{id}?classId={classId} Returns a collection with all the news of the class specified by the given classId parameter.

Parameters

classIdSystem.Int32The unique identifier of the class related to the news to return.

Example request

GET /api/v1/classes/40/newsitems
                                                
             {
                 newsItems: [
                 {
                     id: 175,
                     title: 'Trabalho 1',
                     when: '2012-05-04T12:21:30.44',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/newsitems/175'
                     }
                 },
                 {
                     id: 170,
                     title: 'Notas do 2º teste e teste global de CG',
                     when: '2012-02-03T10:19:50.497',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/newsitems/170'
                     }
                 },
                 {
                     id: 157,
                     title: '2º teste e 1º teste global de CG',
                     when: '2012-01-15T11:22:42.627',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/newsitems/157'
                     }
                 }
                 ],
                 _links: {
                     self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/newsitems',
                     class: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40',
                     root: 'http://thoth.cc.e.ipl.pt/api/v1'
                 }
             }
            
             
                                                
GET /newsitems/{id} Returns a single news item specified by the given id parameter.

Parameters

idSystem.Int32The unique identifier of the news item.

Example request

GET /api/v1/newsitems/175
                                                
            {
                id: 175,
                title: 'Trabalho 1',
                when: '2012-05-04T12:21:30.44',
                content: 'Informo que o trabalho 1 est&#225; dispon&#237;vel para consulta.',
                _links: {
                    self: 'http://thoth.cc.e.ipl.pt/api/v1/newsitems/175',
                    classNewsItems: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/newsitems',
                    class: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40',
                    root: 'http://thoth.cc.e.ipl.pt/api/v1'
                }
            }
            
                                                

Work Items

Work Items are evaluation items made available by the class teacher, along the class operation.

ResourceDescription
GET /classes/{classId}/workitems Returns a collection with all the work items of the class specified by the given classId parameter.

Parameters

classIdSystem.Int32The unique identifier of the class related to the work items to return.

Example request

GET /api/v1/classes/40/workitems
                                                
             {
                 workItems: [
                 {
                     id: 170,
                     acronym: 'T1',
                     title: 'Trabalho 1',
                     requiresGroupSubmission: false,
                     startDate: '2011-10-02T17:00:00',
                     dueDate: '2011-11-01T23:00:00',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/workitems/170'
                     }
                 },
                 {
                     id: 200,
                     acronym: 'T2',
                     title: 'Trabalho 2',
                     requiresGroupSubmission: false,
                     startDate: '2011-11-13T00:00:00',
                     dueDate: '2011-11-28T05:00:00',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/workitems/200'
                     }
                 },
                 {
                     id: 228,
                     acronym: 'T3',
                     title: 'Trabalho 3',
                     requiresGroupSubmission: false,
                     startDate: '2011-12-22T11:00:00',
                     dueDate: '2012-02-13T05:00:00',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/workitems/228'
                     }
                 }
                 ],
                 _links: {
                     self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/workitems',
                     class: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40',
                     root: 'http://thoth.cc.e.ipl.pt/api/v1'
                 }
             }
            
                                                
GET /classes/{classId}/workitems?id={id} Returns a single work item specified by the given id parameter.

Parameters

idSystem.Int32The unique identifier of the work item to return.

Example request

GET /api/v1/workitems/170
                                                
                {
                    id: 170,
                    acronym: 'T1',
                    title: 'Trabalho 1',
                    requiresGroupSubmission: false,
                    startDate: '2011-10-02T17:00:00',
                    dueDate: '2011-11-01T23:00:00',
                    infoDocument: {
                        documentId: 3015,
                        fileName: '1112i_CG_LI31D-LI51D_T1.pdf',
                        _links: {}
                    },
                    attachmentsDocument: {
                        documentId: 3018,
                        fileName: '1112i_CG_LI31D-LI51D_T1_Attachment.zip',
                        _links: {}
                    },
                    acceptLateSubmission: false,
                    acceptResubmission: true,
                    reportUploadInfo: {
                        isRequired: true,
                        maxFileSizeInMB: 2,
                        acceptedExtensions: [
                        '.pdf'
                        ]
                    },
                    attachmentUploadInfo: {
                        isRequired: true,
                        maxFileSizeInMB: 4,
                        acceptedExtensions: [
                        '.zip',
                        '.rar'
                        ]
                    },
                    _links: {
                        self: 'http://thoth.cc.e.ipl.pt/api/v1/workitems/170',
                        classWorkItems: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/workitems',
                        class: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40',
                        root: 'http://thoth.cc.e.ipl.pt/api/v1'
                    }
                }        
                
                                                
GET /workitems/{id}?classId={classId} Returns a collection with all the work items of the class specified by the given classId parameter.

Parameters

classIdSystem.Int32The unique identifier of the class related to the work items to return.

Example request

GET /api/v1/classes/40/workitems
                                                
             {
                 workItems: [
                 {
                     id: 170,
                     acronym: 'T1',
                     title: 'Trabalho 1',
                     requiresGroupSubmission: false,
                     startDate: '2011-10-02T17:00:00',
                     dueDate: '2011-11-01T23:00:00',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/workitems/170'
                     }
                 },
                 {
                     id: 200,
                     acronym: 'T2',
                     title: 'Trabalho 2',
                     requiresGroupSubmission: false,
                     startDate: '2011-11-13T00:00:00',
                     dueDate: '2011-11-28T05:00:00',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/workitems/200'
                     }
                 },
                 {
                     id: 228,
                     acronym: 'T3',
                     title: 'Trabalho 3',
                     requiresGroupSubmission: false,
                     startDate: '2011-12-22T11:00:00',
                     dueDate: '2012-02-13T05:00:00',
                     _links: {
                         self: 'http://thoth.cc.e.ipl.pt/api/v1/workitems/228'
                     }
                 }
                 ],
                 _links: {
                     self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/workitems',
                     class: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40',
                     root: 'http://thoth.cc.e.ipl.pt/api/v1'
                 }
             }
            
                                                
GET /workitems/{id} Returns a single work item specified by the given id parameter.

Parameters

idSystem.Int32The unique identifier of the work item to return.

Example request

GET /api/v1/workitems/170
                                                
                {
                    id: 170,
                    acronym: 'T1',
                    title: 'Trabalho 1',
                    requiresGroupSubmission: false,
                    startDate: '2011-10-02T17:00:00',
                    dueDate: '2011-11-01T23:00:00',
                    infoDocument: {
                        documentId: 3015,
                        fileName: '1112i_CG_LI31D-LI51D_T1.pdf',
                        _links: {}
                    },
                    attachmentsDocument: {
                        documentId: 3018,
                        fileName: '1112i_CG_LI31D-LI51D_T1_Attachment.zip',
                        _links: {}
                    },
                    acceptLateSubmission: false,
                    acceptResubmission: true,
                    reportUploadInfo: {
                        isRequired: true,
                        maxFileSizeInMB: 2,
                        acceptedExtensions: [
                        '.pdf'
                        ]
                    },
                    attachmentUploadInfo: {
                        isRequired: true,
                        maxFileSizeInMB: 4,
                        acceptedExtensions: [
                        '.zip',
                        '.rar'
                        ]
                    },
                    _links: {
                        self: 'http://thoth.cc.e.ipl.pt/api/v1/workitems/170',
                        classWorkItems: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/workitems',
                        class: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40',
                        root: 'http://thoth.cc.e.ipl.pt/api/v1'
                    }
                }        
                
                                                

Resources

Resources are study items or utilities (e.g. books, files) placed in the class by the teacher, along the class operation.

ResourceDescription
GET /classes/{classId}/resources Returns a collection with all the resources of the class specified by the given classId parameter. There are three types of resource: Books, Files and Links.

Parameters

classIdSystem.Int32The unique identifier of the class related to the resources to return.

Example request

GET /api/v1/classes/40/resources
                                                
              {
                  classResources: [
                      {
                          id: 2,
                          classId: 40,
                          title: 'Opengl Programming Guide: The Official Guide to Learning Opengl, Versions 4.1',
                          description: 'With the rapid growth of new platforms, OpenGL is enjoying a resurgence 
                                        throughout the graphics industry.  This \'Red Book\' is the essential, 
                                        authoritative reference to the current OpenGL 4.1 and 4.0 standards for 
                                        graphics programmers at all levels of experience, working in any OpenGL 
                                        environment, using any OpenGL-compatible platform. ',
                          order: 1,
                          type: 'Book',
                          isPrivate: false,
                          isPublished: true,
                          isRequired: true,
                          _links: {
                              self: 'http://thoth.cc.e.ipl.pt/api/v1/resources/2'
                          }
                      },
                      {
                          id: 3,
                          classId: 40,
                          title: 'Site do Sapo',
                          description: 'Portal de apontadores portugueses.',
                          order: 1,
                          type: 'Link',
                          isPrivate: false,
                          isPublished: true,
                          isRequired: false,
                          _links: {
                              self: 'http://thoth.cc.e.ipl.pt/api/v1/resources/3'
                          }
                      },
                      {
                          id: 5,
                          classId: 40,
                          title: 'Exceptions',
                          order: 2,
                          type: 'File',
                          isPrivate: true,
                          isPublished: true,
                          isRequired: false,
                          _links: {
                              self: 'http://thoth.cc.e.ipl.pt/api/v1/resources/5'
                          }
                      }
                  ],
                  _links: {
                      self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/resources',
                      class: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40',
                      root: 'http://thoth.cc.e.ipl.pt/api/v1'
                  }
              }        
            
                                                
GET /classes/{classId}/resources?id={id} Returns a single resource specified by the given id parameter.

Parameters

idSystem.Int32The unique identifier of the resource to return.

Example request

GET /api/v1/resources/2
                                                
             {
                 id: 2,
                 classId: 40,
                 title: 'Opengl Programming Guide: The Official Guide to Learning Opengl, Versions 4.1',
                 description: 'With the rapid growth of new platforms, OpenGL is enjoying a resurgence 
                               throughout the graphics industry. This \'Red Book\' is the essential, 
                               authoritative reference to the current OpenGL 4.1 and 4.0 standards for 
                               graphics programmers at all levels of experience, working in any OpenGL 
                               environment, using any OpenGL-compatible platform. ',
                 order: 1,
                 type: 'Book',
                 isPrivate: false,
                 isPublished: true,
                 isRequired: true,
                 dateCreated: '2012-02-11T16:44:20.743',
                 dateModified: '2012-03-30T23:53:30.417',
                 details: {
                     isbn: '0321773039 ',
                     coverImage: 'http://bks3.books.google.pt/books?id=gnxUewAACAAJ&printsec=frontcover&img=1&zoom=5&source=gbs_api',
                     authors: 'Dave Shreiner, The Khronos Opengl Arb Working Group, Bill Licea-Kane, Graham Sellers'
                 },
                 _links: {
                     self: 'http://thoth.cc.e.ipl.pt/api/v1/resources/2',
                     classResources: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/resources',
                     class: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40',
                     root: 'http://thoth.cc.e.ipl.pt/api/v1'
                 }
             }
            
                                                
GET /resources/{id}?classId={classId} Returns a collection with all the resources of the class specified by the given classId parameter. There are three types of resource: Books, Files and Links.

Parameters

classIdSystem.Int32The unique identifier of the class related to the resources to return.

Example request

GET /api/v1/classes/40/resources
                                                
              {
                  classResources: [
                      {
                          id: 2,
                          classId: 40,
                          title: 'Opengl Programming Guide: The Official Guide to Learning Opengl, Versions 4.1',
                          description: 'With the rapid growth of new platforms, OpenGL is enjoying a resurgence 
                                        throughout the graphics industry.  This \'Red Book\' is the essential, 
                                        authoritative reference to the current OpenGL 4.1 and 4.0 standards for 
                                        graphics programmers at all levels of experience, working in any OpenGL 
                                        environment, using any OpenGL-compatible platform. ',
                          order: 1,
                          type: 'Book',
                          isPrivate: false,
                          isPublished: true,
                          isRequired: true,
                          _links: {
                              self: 'http://thoth.cc.e.ipl.pt/api/v1/resources/2'
                          }
                      },
                      {
                          id: 3,
                          classId: 40,
                          title: 'Site do Sapo',
                          description: 'Portal de apontadores portugueses.',
                          order: 1,
                          type: 'Link',
                          isPrivate: false,
                          isPublished: true,
                          isRequired: false,
                          _links: {
                              self: 'http://thoth.cc.e.ipl.pt/api/v1/resources/3'
                          }
                      },
                      {
                          id: 5,
                          classId: 40,
                          title: 'Exceptions',
                          order: 2,
                          type: 'File',
                          isPrivate: true,
                          isPublished: true,
                          isRequired: false,
                          _links: {
                              self: 'http://thoth.cc.e.ipl.pt/api/v1/resources/5'
                          }
                      }
                  ],
                  _links: {
                      self: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/resources',
                      class: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40',
                      root: 'http://thoth.cc.e.ipl.pt/api/v1'
                  }
              }        
            
                                                
GET /resources/{id} Returns a single resource specified by the given id parameter.

Parameters

idSystem.Int32The unique identifier of the resource to return.

Example request

GET /api/v1/resources/2
                                                
             {
                 id: 2,
                 classId: 40,
                 title: 'Opengl Programming Guide: The Official Guide to Learning Opengl, Versions 4.1',
                 description: 'With the rapid growth of new platforms, OpenGL is enjoying a resurgence 
                               throughout the graphics industry. This \'Red Book\' is the essential, 
                               authoritative reference to the current OpenGL 4.1 and 4.0 standards for 
                               graphics programmers at all levels of experience, working in any OpenGL 
                               environment, using any OpenGL-compatible platform. ',
                 order: 1,
                 type: 'Book',
                 isPrivate: false,
                 isPublished: true,
                 isRequired: true,
                 dateCreated: '2012-02-11T16:44:20.743',
                 dateModified: '2012-03-30T23:53:30.417',
                 details: {
                     isbn: '0321773039 ',
                     coverImage: 'http://bks3.books.google.pt/books?id=gnxUewAACAAJ&printsec=frontcover&img=1&zoom=5&source=gbs_api',
                     authors: 'Dave Shreiner, The Khronos Opengl Arb Working Group, Bill Licea-Kane, Graham Sellers'
                 },
                 _links: {
                     self: 'http://thoth.cc.e.ipl.pt/api/v1/resources/2',
                     classResources: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40/resources',
                     class: 'http://thoth.cc.e.ipl.pt/api/v1/classes/40',
                     root: 'http://thoth.cc.e.ipl.pt/api/v1'
                 }
             }
            
                                                

Evaluation Calendars

Evaluation calendars are entities that represent a map containing all evaluation dates for a semester for each course unit.

ResourceDescription
GET /evaluationcalendars Returns a collection with all the evaluation calendars.

Example request

GET /api/v1/evaluationcalendars
                                                
             {
                 evaluationcalendars: [
                 {
                     id: 1,
                     lectiveSemesterId: 12,
                     lectiveSemesterShortName: '1415v',
                     version: 1,
                     _links: {
                     self: 'https://adeetc.thothapp.com/api/v1/evaluationcalendars/1'
                     }
                 },
                 {
                     id: 2,
                     lectiveSemesterId: 11,
                     lectiveSemesterShortName: '1415i',
                     version: 1,
                     _links: {
                     self: 'https://adeetc.thothapp.com/api/v1/evaluationcalendars/2'
                     }
                 }
             },
            
                                                
GET /evaluationcalendars?evaluationcalendarId={evaluationcalendarId} Returns a single evaluationcalendar, specified by the given evaluation calendar id parameter. An evaluationcalendar contains one or more evaluations.

Parameters

evaluationcalendarIdSystem.Int32The unique identifier of the evaluationcalendar.

Example request

GET /api/v1/evaluationcalendars/1
                                                
              {
                     id: 1,
                     lectiveSemesterId: 12,
                     lectiveSemesterShortName: '1415v',
                     editDate: '2015-09-12T17:00:00',
                     teacherId: 1,
                     teacherShortName: 'Carlos Guedes',
                     version: 1,
                     evaluations: [
                     {
                        id: 1,
                        _links: {
                            self: 'https://adeetc.thothapp.com/api/v1/evaluations/1'
                        }
                     },
                     {
                        id: 2,
                        _links: {
                            self: 'https://adeetc.thothapp.com/api/v1/evaluations/2'
                        }
                     }
                     ],
                     _links: {
                        self: 'https://adeetc.thothapp.com/api/v1/evaluationcalendars/1'
                        evaluationCalendars: 'https://adeetc.thothapp.com/api/v1/evaluationcalendars'
                        root: 'https://adeetc.thothapp.com/api/v1'
                     }
              }
            
                                                

Evaluations

Evaluations are entities that represents a specific evaluation containing the course unit, the location, the season, and date.

ResourceDescription
GET /evaluationcalendars/{evaluationCalendarId}/evaluations Returns a collection with all the evaluations.

Parameters

evaluationCalendarIdSystem.Int32The unique identifier of the evaluation calendar related to the evaluations to return.

Example request

GET /api/v1/evaluationcalendars/1/evaluations
                                                
             {
                 evaluationcalendar_evaluations: [
                 {
                     id: 1,
                     courseunit: 'DAW',
                     location: 'G 0.24',
                     season: 'Época Normal',
                     date: '2015-09-12T17:19:00'
                     _links: {
                     self: 'https://adeetc.thothapp.com/api/v1/evaluationcalendars/1/evaluations/1'
                     }
                 },
                 {
                     id: 2,
                     courseunit: 'MPD',
                     location: 'G 0.16',
                     season: 'Época Normal',
                     date: '2015-09-12T17:10:00'
                     _links: {
                        self: 'https://adeetc.thothapp.com/api/v1/evaluationcalendars/1/evaluations/2'
                     }
                 }
                 ],
                 _links: {
                    self: 'https://adeetc.thothapp.com/v1/evaluationcalendars/1/evaluations',
                    evaluationCalendars: 'https://adeetc.thothapp.com/v1/evaluationcalendars/1',
                    root: 'https://adeetc.thothapp.com/api/v1'
            }
             },
            
                                                
GET /evaluationcalendars/{evaluationCalendarId}/evaluations/{evaluationId} Returns a single evaluation, specified by the given evaluation id parameter. An evaluationcalendar contains one or more programs.

Parameters

evaluationCalendarIdSystem.Int32The unique identifier of the evaluation calendar.
evaluationIdSystem.Int32The unique identifier of the evaluation.

Example request

GET /api/v1/evaluationcalendars/1/evaluations/1
                                                
              {
                     id: 1,
                     courseunit: 'DAW',
                     location: 'G 0.24',
                     season: 'Época Normal',
                     date: '2015-09-12T17:19:00',
                     programs: [
                        {
                            id: 1,
                            shortName = 'LEIC',
                            _links: {
                                self: 'https://adeetc.thothapp.com/api/v1/programs/1'
                            }
                        },
                        {
                            id: 2,
                            shortName = 'MEIC',
                            _links: {
                                self: 'https://adeetc.thothapp.com/api/v1/programs/2'
                            }
                        }
                     ],
                     _links: {
                     self: '/api/v1/evaluations/1'
                     },
                     _links: {
                        self: 'https://adeetc.thothapp.com/api/v1/evaluationcalendars/1/evaluations/1',
                        root: 'https://adeetc.thothapp.com/api/v1'
                     }
              }
            
                                                

Misc

Media Types

This API provides representation of resources in the following media types:

TypeDescription
application/json Media is encoded using JSON format.