Back to top

ORM - Tests Take

Presentación de exámenes para la ORM

Seguridad

Procesos para ingresar en la presentación de la prueba

Obtener datos iniciales del examen

Devuelve los datos iniciales del evento.

setup
GET/security/setup{?eventid}

Example URI

GET https://vpskromasys2.hostnetcom.com/~ormv/dev/academies/api/security/setup?eventid=
URI Parameters
HideShow
eventid
required number (required) 

identificador del evento

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "logo": "http://....logo.png",
  "eventname": "ORM",
  "eventyear": "2024"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "msg": "Error en la llamada del servicio"
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "msg": "Evento no encontrado"
}
Response  500
HideShow
Headers
Content-Type: application/json
Body
{
  "msg": "Error inteno"
}

Validación Código

Se busca y valida que el código del alumno tenga alguna prueba asignada en el evento El código del alumno se validará de la siguiente forma: El código debe tener 8 dígitos El código serán los 8 caracteres de la derecha, luego de concatenar el CRC del ID considerando 10 digitos del alumno. Por ejemplo: Código enviado: 12345699 ID: 0000123456 CRC=1233768764374699 tomar unir ID y 2 caracteres de la derecha del CRC 000012345699 comparar solo con los 8 de más a la derecha 12345699 Debe validarse que esté activo, asociado en la tabla inscripted a un colegio que tenga el tests y que corresponda con el grado del alumno en la inscripción Debe devolver una lista de 4 colegios aleatorios que pertenezcan al MISMO PAíS. Siendo solo uno el verdadero

checkcode
POST/security/checkcode{?eventid,pupilcode}

Example URI

POST https://vpskromasys2.hostnetcom.com/~ormv/dev/academies/api/security/checkcode?eventid=&pupilcode=
URI Parameters
HideShow
eventid
required number (required) 

identificador del evento

pupilcode
required string (required) 

código del alumno

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
    "schools": [
        {
            "id": 1,
            "name": "Colegio UNO",
            "dsc": "Estado - Municipio (Si Tiene)"
        },
        ...
    ]

}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "msg": "Error en la llamada del servicio"
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
    "msg": "No tenemos ningún alumno registrado con ese código",
    "instructions": "Si necesitas ayuda comunícate con 0800-ORMVE" // Texto fijo
}
Response  500
HideShow
Headers
Content-Type: application/json
Body
{
  "msg": "error retornado al programador desde mysql_error()"
}

Validación Colegio

Se valida que el alumno pertenezca al colegio y esté inscrito en la prueba y corresponda el grado. Si todo está OK, se debe generar un sessionid para proseguir el examen

checkschool
POST/security/checkschool{?pupilcode,schoolid}

Example URI

POST https://vpskromasys2.hostnetcom.com/~ormv/dev/academies/api/security/checkschool?pupilcode=&schoolid=
URI Parameters
HideShow
pupilcode
required string (required) 

código del alumno

schoolid
required number (required) 

identificador del colegio

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
    "sessionid": "876879876876876876976987",
    "fullname": "José Manuel Pérez Gutierrez",
    "schoolname": "Colegio Santiago de León de Caracas",
    "schooladdress": "Miranda - Chacao",
    "tests": [
        {
            "id": 1
            "name": "Examen UNO"
        },
        ...
    ]
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "msg": "Error en la llamada del servicio"
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "msg": "Combinación test-pupil-school inválida"
}
Response  500
HideShow
Headers
Content-Type: application/json
Body
{
  "msg": "error retornado al programador desde mysql_error()"
}

Actualizar Inscrito

Se actualiza la información del alumno.

updatepupil
POST/security/updatepupil{?sessionid,email,FOTO}

Example URI

POST https://vpskromasys2.hostnetcom.com/~ormv/dev/academies/api/security/updatepupil?sessionid=&email=&FOTO=
URI Parameters
HideShow
sessionid
required string (required) 

identificador de la sessión

email
optional string (required) 

correo electrónico

FOTO
optional file (required) 

fotografía

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
    "id": 1,  // identificador de actualización
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "msg": "Error en la llamada del servicio"
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "msg": "Sesión expirada o inválida"
}
Response  500
HideShow
Headers
Content-Type: application/json
Body
{
  "msg": "error retornado al programador desde mysql_error()"
}

Examen

Procesos para realizar el examen

Preparación del la respuesta del examen

Devuelve los datos iniciales del examen. Se registra la información que relaciona el inscripted con el test en la tabla testtakers

setup
GET/tests/setup{?sessionid,testid}

Example URI

GET https://vpskromasys2.hostnetcom.com/~ormv/dev/academies/api/tests/setup?sessionid=&testid=
URI Parameters
HideShow
sessionid
required string (required) 

identificador de la sesión

testid
required number (required) 

identificador del examen

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
    "instructions": [
        {
            "id": 1,
            "content": "<html>...</html>",
            "usepicture": true,
            "backallowed": true,
            "image": {
                "url": "http:/..../archivo.png",
                "type": "image/png"
            }
        },
        ...
    ]
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "msg": "Error en la llamada del servicio"
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "msg": "Sesión expirada o inválida"
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "msg": "Prueba no encontrada"
}
Response  500
HideShow
Headers
Content-Type: application/json
Body
{
  "msg": "Error inteno"
}

Próxima Pregunta

Va a la siguiente pregunta de la prueba considerando lo siguiente:

  • Si está vacío el campo startedat de la tabla testtakers se le coloca el NOW

  • Según el campo randomshow de la tabla tests intercambiar aleatoriamente las preguntas

  • Si no hay más preguntas disponibles llenar el campo finishedat de la tabla testtakers

  • Si no hay más preguntas disonibles cambiar el retorno colo car finished = true

NOTA: La aleatoriedad de las preguntas debe respetar la dificultad de las misma

next
POST/tests/next{?back,sessionid}

Example URI

POST https://vpskromasys2.hostnetcom.com/~ormv/dev/academies/api/tests/next?back=&sessionid=
URI Parameters
HideShow
back
optional number (required) 

por defecto vale 0. (1=ir hacia atrás, 0=ir hacia adelante)

sessionid
required string (required) 

identificador de la sesión

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
    "finished": false,
    "lefttime": [           // tiempo transcurrido desde el inicio de la prueba
        "days": 0,
        "hours": 4,
        "minutes": 23,
        "seconds": 12
    ],
    "actualquestion": 1,
    "totalquestions": 23,
    "question": {
        "id": 1,            // identificador de la pregunta
        "content": "",      // richtext
        "displaytype": {
            "id": 1, // 1=richtext, 2=SCORM
            "name": "Richtext"
        },
        "scorm": {
            "mode": 1,  // 0=Ventana Nueva, 1=Embebido, 2=Flotante
            "utl": : "http://...",   // ESTO NO ESTOY MUY SEGURO
        },
        "type": 1,      // 1=seleccion simple, 2=seleccion multiple, 3=texto corto, 4=desarrollo
        "options": [     // cuando type es 1 o 2
            {
                "id": 1,    // deben venir ordenadas por ord
                "value": "Valor UNO", // string si texto, url si imagen
                "contettype": "text/plain", //"text/plain", "image/png", "image/jpg"
            },
            ...
        ],
        "type4": {     // cuando es type 4 (desarrollo)
                "admittext": true,
                "attachcount": 3
        }
    },
    "answer": "{ 'questiontype1id': 1 }"  // revisar formato del tests/answer
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
    "finished": true,
    "finishtime": [           // tiempo total de la prueba transcurrido
        "days": 0,
        "hours": 4,
        "minutes": 23,
        "seconds": 12
    ]
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "msg": "Error en la llamada del servicio"
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "msg": "Sesión expirada o inválida"
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "msg": "Prueba no encontrada"
}
Response  500
HideShow
Headers
Content-Type: application/json
Body
{
  "msg": "Error inteno"
}

Actualizar Respuesta

Incluye/actualiza la respuesta a una pregunta

Formato del Response:

  • Sel Simple { “questiontype1id”: 1 }

  • Sel Multiple { “questiontype2id”: [1,2,3,4] }

  • Completación Simple { “response”: “Azul” }

  • Desarrollo { “text”: “…”, “attachments”: [ { “filename”: “attachuno.pdf”, “mimetype”: “application/pdf” }, … ] }

answer
POST/tests/answer{?sessionid,questionid,response}

Example URI

POST https://vpskromasys2.hostnetcom.com/~ormv/dev/academies/api/tests/answer?sessionid=&questionid=&response=
URI Parameters
HideShow
sessionid
required string (required) 

identificador de la sesión

questionid
required number (required) 

identificador de la pregunta

response
required json (required) 

Ver explicación arriba

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
    "id": 1         // identificador actualizado
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "msg": "Error en la llamada del servicio"
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "msg": "Sesión expirada o inválida"
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "msg": "Prueba no encontrada"
}
Response  500
HideShow
Headers
Content-Type: application/json
Body
{
  "msg": "Error inteno"
}

Generated by aglio on 22 Apr 2026