Skip to content

Classrooms

Maxwell Carter edited this page Jul 18, 2017 · 4 revisions

Classrooms

GET

/classrooms

Retrieve a list of all classrooms

Request

GET https://smart-classroom-ece452.mybluemix.net/api/v1/classrooms

Response

[
    {
        "_id": "596ba65a50d5880032e80cf3",
        "teacher": "596ba3c350d5880032e80cf1",
        "title": "Martial Arts",
        "year": 1,
        "__v": 0,
        "quizHistory": [],
        "students": [
            "596ba3a650d5880032e80ce9",
            "596ba3af50d5880032e80ceb",
            "596ba3b550d5880032e80ced",
            "596ba3ba50d5880032e80cef"
        ],
        "level": "academic",
        "courseCode": "ninja101",
        "description": "Ninja training"
    }
]

/classrooms/:id

Retrieve a classroom

Request

GET https://smart-classroom-ece452.mybluemix.net/api/v1/classrooms/596ba65a50d5880032e80cf3

Response

{
    "_id": "596ba65a50d5880032e80cf3",
    "teacher": "596ba3c350d5880032e80cf1",
    "title": "Martial Arts",
    "year": 1,
    "__v": 0,
    "quizHistory": [],
    "students": [
        "596ba3a650d5880032e80ce9",
        "596ba3af50d5880032e80ceb",
        "596ba3b550d5880032e80ced",
        "596ba3ba50d5880032e80cef"
    ],
    "level": "academic",
    "courseCode": "ninja101",
    "description": "Ninja training"
}

/classrooms/:id/students

Retrieve a list of all students in a classroom

Request

GET https://smart-classroom-ece452.mybluemix.net/api/v1/classrooms/596ba65a50d5880032e80cf3/students

Response

[
    {
        "_id": "596d93f427ee8e22438743b2",
        "lastName": "Turtle",
        "firstName": "Donatello",
        "username": "donnie",
        "__v": 2,
        "goals": [],
        "attendanceHistory": [
            "596d9c93a2668e2379ca3c32"
        ],
        "quizHistory": [],
        "classrooms": [
            {
                "_id": "596d96ae07e88022896c62a4",
                "teacher": "596d961a07e88022896c62a2",
                "title": "Martial Arts",
                "year": 1,
                "__v": 1,
                "attendanceHistory": [
                    "596d9c93a2668e2379ca3c32"
                ],
                "quizHistory": [],
                "students": [
                    "596d93f427ee8e22438743b2"
                ],
                "level": "academic",
                "courseCode": "ninja101",
                "description": "Ninja training"
            }
        ],
        "displayName": "Donnie"
    }
]

/classrooms/:id/quizzes

Retrieve a list of all quizzes in a classroom

Request

GET https://smart-classroom-ece452.mybluemix.net/api/v1/classrooms/596ba65a50d5880032e80cf3/quizzes

Response

[
    {
        "_id": "596c0bf4ba50a0156a05dce8",
        "title": "Sample Test",
        "createdDate": null,
        "__v": 0,
        "questions": [
            {
                "question": "When was the war of 1812?",
                "options": [
                    {
                        "text": "1812",
                        "correct": true
                    }
                ]
            }
        ],
        "activated": false,
        "description": "A sample test."
    }
]

/classrooms/:id/quizzes/activated

Retrieve a list of all activated quizzes in a classroom

Request

GET https://smart-classroom-ece452.mybluemix.net/api/v1/classrooms/596ba65a50d5880032e80cf3/quizzes/activated

Response

[
    {
        "_id": "596c0bf4ba50a0156a05dce8",
        "title": "Sample Test",
        "createdDate": null,
        "__v": 0,
        "questions": [
            {
                "question": "When was the war of 1812?",
                "options": [
                    {
                        "text": "1812",
                        "correct": true
                    }
                ]
            }
        ],
        "activated": true,
        "description": "A sample test."
    }
]

/classrooms/:id/attendances

Retrieves a list of all past attendances in a classroom. Requires Teacher or student authentication.

Request

GET https://smart-classroom-ece452.mybluemix.net/api/v1/classrooms/596ba65a50d5880032e80cf3/attendances

Response

[
    {
        "_id": "596d9c93a2668e2379ca3c32",
        "classroom": "596d96ae07e88022896c62a4",
        "__v": 2,
        "presences": [
            {
                "student": {
                    "_id": "596d93f427ee8e22438743b2",
                    "lastName": "Turtle",
                    "firstName": "Donatello",
                    "username": "donnie",
                    "__v": 2,
                    "goals": [],
                    "attendanceHistory": [
                        "596d9c93a2668e2379ca3c32"
                    ],
                    "quizHistory": [],
                    "classrooms": [
                        "596d96ae07e88022896c62a4"
                    ],
                    "displayName": "Donnie"
                },
                "present": true
            }
        ],
        "activated": false,
        "date": "2017-07-18T05:28:51.336Z",
        "title": "Attendance for 18/7/2017"
    }
]

POST

/classrooms

Creates a Classroom

Request

POST https://smart-classroom-ece452.mybluemix.net/api/v1/classrooms

{
    "students":["596ba3a650d5880032e80ce9"],
    "teacher": "596ba3c350d5880032e80cf1",
    "title": "Martial Arts",
    "description": "Ninja training",
    "courseCode": "ninja101",
    "year": 1,
    "level": "academic"
}

Response

{
    "_id": "596ba65a50d5880032e80cf3",
    "teacher": "596ba3c350d5880032e80cf1",
    "title": "Martial Arts",
    "year": 1,
    "__v": 0,
    "quizHistory": [],
    "students": [
        "596ba3a650d5880032e80ce9",
    ],
    "level": "academic",
    "courseCode": "ninja101",
    "description": "Ninja training"
}

/classrooms/:id/quizzes

Creates a classroom quiz.

Request

POST https://smart-classroom-ece452.mybluemix.net/api/v1/classrooms/596ba65a50d5880032e80cf3/quizzes
{
	"title": "Sample Test",
	"description": "A sample test.",
	"createdDate": "",
	"activated": false,
	"questions": [{
		"question": "When was the war of 1812?",
		"options": [{
			"text": "1812",
			"correct": true
		}]
	}]
}

Response

{
    "__v": 0,
    "title": "Sample Test",
    "createdDate": null,
    "_id": "596c0bf4ba50a0156a05dce8",
    "questions": [
        {
            "question": "When was the war of 1812?",
            "options": [
                {
                    "text": "1812",
                    "correct": true
                }
            ]
        }
    ],
    "activated": false,
    "description": "A sample test."
}

/classrooms/:id/attendances

Creates and starts a new attendance for the specified classroom. Requires teacher authentication token.

Request

POST https://smart-classroom-ece452.mybluemix.net/api/v1/classrooms/596ba65a50d5880032e80cf3/attendances

Response

{
    "_id": "596d9c93a2668e2379ca3c32",
    "classroom": "596d96ae07e88022896c62a4",
    "__v": 1,
    "presences": [],
    "activated": true,
    "date": "2017-07-18T05:28:51.336Z",
    "title": "Attendance for 18/7/2017"
}

/classrooms/:id/attendances/:attendanceId/start

Starts an existing attendance for a specific classroom. Requires teacher authentication token.

Request

POST https://smart-classroom-ece452.mybluemix.net/api/v1/classrooms/596ba65a50d5880032e80cf3/attendances/596d9c93a2668e2379ca3c32/start

Response

{
    "_id": "596d9c93a2668e2379ca3c32",
    "classroom": "596d96ae07e88022896c62a4",
    "__v": 2,
    "presences": [
        {
            "student": {
                "_id": "596d93f427ee8e22438743b2",
                "lastName": "Turtle",
                "firstName": "Donatello",
                "username": "donnie",
                "__v": 2,
                "goals": [],
                "attendanceHistory": [
                    "596d9c93a2668e2379ca3c32"
                ],
                "quizHistory": [],
                "classrooms": [
                    "596d96ae07e88022896c62a4"
                ],
                "displayName": "Donnie"
            },
            "present": true
        }
    ],
    "activated": true,
    "date": "2017-07-18T05:28:51.336Z",
    "title": "Attendance for 18/7/2017"
}

/classrooms/:id/attendances/:attendanceId/stop

Stops an existing attendance for a specific classroom. Requires teacher authentication token.

The response will contain an array of all the students that are present.

Request

POST https://smart-classroom-ece452.mybluemix.net/api/v1/classrooms/596ba65a50d5880032e80cf3/attendances/596d9c93a2668e2379ca3c32/stop

Response

{
    "_id": "596d9c93a2668e2379ca3c32",
    "classroom": "596d96ae07e88022896c62a4",
    "__v": 2,
    "presences": [
        {
            "student": {
                "_id": "596d93f427ee8e22438743b2",
                "lastName": "Turtle",
                "firstName": "Donatello",
                "username": "donnie",
                "__v": 2,
                "goals": [],
                "attendanceHistory": [
                    "596d9c93a2668e2379ca3c32"
                ],
                "quizHistory": [],
                "classrooms": [
                    "596d96ae07e88022896c62a4"
                ],
                "displayName": "Donnie"
            },
            "present": true
        }
    ],
    "activated": false,
    "date": "2017-07-18T05:28:51.336Z",
    "title": "Attendance for 18/7/2017"
}

/classrooms/:id/students/:studentId/signIn

Marks a student as present on an active attendance. Will return a 404 error response if no attendance is active. Requires student authentication token.

Request

POST https://smart-classroom-ece452.mybluemix.net/api/v1/classrooms/596d96ae07e88022896c62a4/students/596d948027ee8e22438743b4/signIn

Response

{
    "accepted": true
}

DELETE

/classrooms/:id

Deletes a classroom

Request

DELETE https://smart-classroom-ece452.mybluemix.net/api/v1/classrooms/596ba65a50d5880032e80cf3

Response

{
    "_id": "596ba65a50d5880032e80cf3",
    "teacher": "596ba3c350d5880032e80cf1",
    "title": "Martial Arts",
    "year": 1,
    "__v": 0,
    "quizHistory": [],
    "students": [
        "596ba3a650d5880032e80ce9"
    ],
    "level": "academic",
    "courseCode": "ninja101",
    "description": "Ninja training"
}