/web

Primary LanguageRuby

#Version Control Paradigms# JD Hill Eric Stokes Jimmy Theis

#Professor Bingo - Ruby Web Application#

The general idea of the Professor Bingo project is as follows: an application consisting of a web service with a usable web front-end, as well as a mobile Android application will provide a sort of Bingo variant where instead of randomly drawing card locations from a mechanical ball blower, game board squares will be marked complete when professors demonstrate certain mannerisms during class. Students will connect either to the web interface or to the mobile app and enter a game session when their class begins. As time passes and their professor demonstrates his or her mannerisms, students will mark their game boards until one of them achieves a Bingo. This student’s account will be credited with a score for this win.

Note: Passwords and usernames are used for example only.

#Valid JSON Posts#

The following sections detail the valid POST variables for device login.

##Login## ###URL: /login### The JSON object should be posted in 'data' as follows:

data => 
{
    "email": "student@school.edu", 
    "password": "8bdf9067f19ae9f2614c62676792b1ecf70f47dd"
}

and will return a JSON object that looks like this:

Success

{
    "result": "Success", 
    "authcode": "8bdf9067f19ae9f2614c62676792b1ecf70f47dd"
}

Failure

Note: authcode value will be returned if the result is a failure

{
    "result": "FAIL"
}

##Logout## ###URL: /logout### The JSON object should be posted in 'data' as follows:

data => 
{
    "authcode": "8bdf9067f19ae9f2614c62676792b1ecf70f47dd"
}

and will return a JSON object that looks like this:

Success

{
    "result": "Success"
}

Failure

Note: This condition will occur if an authcode has already been logged out

{
    "result": "FAIL"
}

##Register## ###URL: /register### The JSON object should be posted in 'data' as follows:

data => 
{
    "email": "student@school.edu", 
    "password": "8bdf9067f19ae9f2614c62676792b1ecf70f47dd",
    "first": "John",
    "last": "Doe"
}

and will return a JSON object that looks like this:

Success

{
    "result": "Success"
}

Failure

Note: authcode value will be returned if the result is a failure

{
    "result": "FAIL"
}

##Status## ###URL: /status### The JSON object should be posted in 'data' as follows:

data => 
{
    "authcode": "8bdf9067f19ae9f2614c62676792b1ecf70f47dd"
}

and will return a JSON object that looks like this:

Success

{
    "result": "Success"
}

Failure

Note: This condition will occur if an authcode is NOT valid

{
    "result": "FAIL"
}

##Get Departments for School## ###URL: /department/get### The JSON object should be posted in 'data' as follows:

data => 
{
    "authcode": "8bdf9067f19ae9f2614c62676792b1ecf70f47dd"
}

and will return a JSON object that looks like this:

Success

{
    "result": "Success", 
    "departments": 
    [
        {
            "id": "1", 
            "name": "CSSE"
        }, 
        {
            "id": "2", 
            "name": "Math"
        }
    ]
}

Failure

Note: This condition will occur if an authcode is NOT valid

{
    "result": "FAIL"
}

##Get Professors for School## ###URL: /professor/get### The JSON object should be posted in 'data' as follows:

data => 
{
    "authcode": "8bdf9067f19ae9f2614c62676792b1ecf70f47dd"
    (, "departments": 
    [
        {"deptid": "1"}, 
        {"deptid": "2"}
    ])
}

The parenthesis show optional parameters.

and will return a JSON object that looks like this:

Success

{
    "result": "Success", 
    "professors": 
    [
        {
            "id": "1",
            "name": "Sriram Mohan"
        },
        {
            "id": "2",
            "name": "Curt Clifton"
        }
    ]
}

Failure

Note: This condition will occur if an authcode is NOT valid

{
    "result": "FAIL"
}

##Get Board## ###URL: /play### The JSON object should be posted in 'data' as follows:

data => 
{
    "authcode": "8bdf9067f19ae9f2614c62676792b1ecf70f47dd", 
    "professorid": "1"
}

and will return a JSON object that looks like this:

Success

{
    "result": "Success",
    "boardid": "1"
    "mannerisms": 
    [
        {
            "location": "1"
            "text": "The professor throws a marker"
            "itemid": "1"
        },
        {
            "location": "2"
            "text": "The phrase 'Valid Point' is said by the professor"
            "itemid": "45"
        },
        {
            "location": "3"
            "text": "The professor trips"
            "itemid": "3"
        },
        
        ...
        
        {
            "location": "25"
            "text": "The professor throws a marker... and makes it in the trash can"
            "itemid": "28"
        }
    ]
}

Failure

Note: This condition will occur if an authcode is NOT valid

{
    "result": "FAIL"
}