Skip to content

Latest commit

 

History

History
executable file
·
477 lines (457 loc) · 9.25 KB

README.adoc

File metadata and controls

executable file
·
477 lines (457 loc) · 9.25 KB

UpperQuizz API

documentación de la API

Endpoints

POST upper-quizz.heroku.com/v1/login
  • Request body

    Attribute Type Is required?

    correo

    String

    required

    contrasena

    String

    required

    • Example

      {
        "correo" : "rodrigo@gmail.com",
        "contrasena" : "diplomado123"
      }
  • Possible responses:

    • HTTP code: 200

      {
        "message":"Usuario guardado correctamente"
      }
    • HTTP code: 400

      Algún dato fue incorrecto.

POST upper-quizz.heroku.com/v1/register
  • Request body

    Attribute Type Is required?

    correo

    String

    required

    contrasena

    String

    required

    nombre

    String

    required

    apellidos

    String

    required

    • Example

      {
        "correo" : "rodrigo@gmail.com",
        "contrasena" : "diplomado123",
        "nombre" : "Rodrigo",
        "apellidos" : "Francisco Pablo"
      }
  • Possible responses:

    • HTTP code: 200

      {
        "message": "El usuario se registro correctamente"
      }
    • HTTP code: 400

      Fala algún dato para poder registrar al usuario

    • HTTP code: 500

      Error del sistema para guardar al usuario

GET upper-quizz.heroku.com/v1/evaluacion
  • Login required

  • Obtiene todas las evaluaciones del usuario

  • NO body required

  • Possible responses:

    • HTTP code: 200

      • The responses has the following attributes

        1. [array], cada elemento contiene:

          1. evaluacion_id [Int]

          2. examen_id [Int]

          3. status [String], pueden tener solo los siguientes valores:

            Nombre status Type

            INCONCLUSO

            Este estado se da cuando un alumno inició un examen, pero aún no lo termina de contestar.

            TERMINADO

            Este estado se da cuando un alumno termina de contestar el examen y recibe su puntaje

            NUNCA

            Este estado se da cuendo nunca se ha abierto la evaluación

          4. aciertos_totales [Int]

          5. num_intento [Int]

      • Example

        [
          {
            "evaluacion_id": 5,
            "examen_id": 1,
            "status": "NUNCA",
            "aciertos_totales": 0,
            "num_intento": 0
          },
          {
            "evaluacion_id": 6,
            "examen_id": 5,
            "status": "NUNCA",
            "aciertos_totales": 0,
            "num_intento": 0
          },
          {
            "evaluacion_id": 4,
            "examen_id": 7,
            "status": "NUNCA",
            "aciertos_totales": 0,
            "num_intento": 0
          }
        ]
    • NOTA En caso de que no haya evaluaciones se regresa una array vacío

GET upper-quizz.heroku.com/v1/evaluacion/:id
  • Obtiene los datos un examen, para pintar una por una las preguntas

  • NO body required

  • Possible responses:

    • HTTP code: 200

      • The responses has the following attributes

        1. [Array], cada elemento contiene:

          1. texto_pregunta [String]

          2. opcion_correcta_id [Int]

          3. materia_id [Int]

          4. pregunta_id [Int]

          5. opciones [Array], cada elemento contiene:

            1. opcion_id [Int]

            2. texto_opcion [String]

      • Example

        [
          {
            "materia_id": 1,
              "opcion_correcta_id": 1,
              "opciones": [
                {
                  "opcion_id": 1,
                  "texto_opcion": "Especially value use."
                },
                {
                  "opcion_id": 2,
                  "texto_opcion": "Very garden memory rise."
                },
                {
                  "opcion_id": 3,
                  "texto_opcion": "Special they almost down quickly article."
                },
                {
                  "opcion_id": 4,
                  "texto_opcion": "Environmental various still success training."
                }
              ],
              "pregunta_id": 1,
              "texto_pregunta": "Card station seem relate sister fall."
          },
          {
            "materia_id": 1,
            "opcion_correcta_id": 8,
            "opciones": [
              {
                "opcion_id": 5,
                "texto_opcion": "Middle job skill success no establish."
              },
              {
                "opcion_id": 6,
                "texto_opcion": "Artist ball by decide activity above."
              },
              {
                "opcion_id": 7,
                "texto_opcion": "Indeed population everything couple whatever research."
              },
              {
                "opcion_id": 8,
                "texto_opcion": "Hotel star current democratic."
              }
            ],
            "pregunta_id": 2,
            "texto_pregunta": "Out audience the away law. Crime may boy agree."
          }
        ]
    • HTTP code: 400

      {
        "message": "No se encontró la evaluación solicitada"
      }
GET upper-quizz.heroku.com/v1/historial
  • Login required

  • Devuelve los puntajes de todas las evaluaciones terminadas

  • NO body required

  • Possible responses:

    • HTTP code: 200

      • The responses has the following attributes

        1. [Array], cada elemento contiene:

          1. aciertos_totales [Int]

          2. evaluacion_id [Int]

          3. fecha_aplicacion [Date]

          4. nombre_examen [String]

      • Example

        [
          {
            "aciertos_totales": 60,
              "evaluacion_id": 5,
              "fecha_aplicacion": "Thu, 06 May 2021 15:03:03 GMT",
              "nombre_examen": "Simulación UNAM 2012"
          }
        ]
    • NOTA En caso de que no haya evaluaciones se regresa una objeto vacío

GET upper-quizz.heroku.com/v1/historial/:id
  • Login required

  • Obtiene los puntajes de cada materia

  • NO body required

  • Possible responses:

    • HTTP code: 200

      • The responses has the following attributes

        1. [Obj]

          1. aciertos_totales [Int]

          2. evaluacion_id [Int]

          3. num_intento [Int]

          4. puntaje_materia [Array], cada elemento es un objeto que contiene

            1. materia_id [Int]

            2. nombre_materia [String]

            3. puntaje [Int]

      • Example

        {
            "aciertos_totales": 60,
            "evaluacion_id": "5",
            "num_intento": 1,
            "puntaje_materia": [
                {
                    "materia_id": 1,
                    "nombre_materia": "Matemáticas",
                    "puntaje": 10
                },
                {
                    "materia_id": 2,
                    "nombre_materia": "Español",
                    "puntaje": 8
                },
                {
                    "materia_id": 3,
                    "nombre_materia": "Física",
                    "puntaje": 5
                },
                {
                    "materia_id": 4,
                    "nombre_materia": "Química",
                    "puntaje": 3
                },
                {
                    "materia_id": 5,
                    "nombre_materia": "Biología",
                    "puntaje": 1
                },
                {
                    "materia_id": 6,
                    "nombre_materia": "Historia Universal",
                    "puntaje": 6
                },
                {
                    "materia_id": 7,
                    "nombre_materia": "Historia de México",
                    "puntaje": 0
                },
                {
                    "materia_id": 8,
                    "nombre_materia": "Literatura",
                    "puntaje": 4
                },
                {
                    "materia_id": 9,
                    "nombre_materia": "Geografía",
                    "puntaje": 1
                },
                {
                    "materia_id": 10,
                    "nombre_materia": "Filosofía",
                    "puntaje": 8
                }
            ]
        }
    • HTTP code: 400

      {
        "message":"No existe la evaluación solicitada"
      }
POST upper-quizz.heroku.com/v1/evaluacion/:id/pregunta/:pregunta-id
  • Login required

  • Registra la opción seleccionada en un pregunta dada una evaluación

  • Request body

    Attribute Type Is required?

    opcion_seleccionada

    Int

    required

    • Example

      {
        "opcion_seleccionada": 1,
      }
  • Possible responses:

    • HTTP code: 200

      {
        "message": "Opción guardada exitosamente"
      }
    • HTTP code: 400

      {
        "message": "El usuario no mando la opción correcta"
      }
    • HTTP code: 500

      {
        "message": "El sistema tuvo problemas para guardar la respuesta"
      }
POST upper-quizz.heroku.com/v1/evaluacion/:id/calificar
  • Login required

  • Registra el puntaje obtenido por cada una de las materias del examen y el puntaje general.

  • Request body

    Attribute Type Is required?

    evaluacion_id

    Int

    required

    fecha_aplicacion

    String

    required

    puntaje_materia

    Array

    required

    Puntaje materia attributes:

    Attribute Type Is required?

    materia_id

    Int

    required

    puntaje

    Int

    required

    • Example

      {
        "aciertos_totales": 60,
        "fecha_aplicacion": "2021-05-06 15:03:03",
        "puntaje_materia": [
          {
            "materia_id": 1,
            "puntaje": 10
          },
          {
            "materia_id": 2,
            "puntaje": 8
          },
          {
            "materia_id": 3,
            "puntaje": 5
          },
          {
            "materia_id": 4,
            "puntaje": 3
          },
          {
            "materia_id": 5,
            "puntaje": 1
          },
          {
            "materia_id": 6,
            "puntaje": 6
          },
          {
            "materia_id": 7,
            "puntaje": 0
          },
          {
            "materia_id": 8,
            "puntaje": 4
          },
          {
            "materia_id": 9,
            "puntaje": 1
          },
          {
            "materia_id": 10,
            "puntaje": 8
          }
        ]
      }
  • Possible responses:

    • HTTP code: 200

      {
        "message": "Evaluación guardada correctamente"
      }
    • HTTP code: 400

      Mensajes de error en caso de que no se proporcionen adeacuadamente los datos

    • HTTP code; 500

      {
        "message": "El sistema tuvo problemas para guardar las calificaciones"
      }