Skip to content

CorrectIt: un corrector de exámenes escritos en lenguaje natural.

License

Notifications You must be signed in to change notification settings

danielsp13/CorrectIt

Repository files navigation

SuperCatch

Infraestructura Virtual (2022/23)


Autor: danielsp13 (Daniel Pérez Ruiz). Repositorio para el proyecto de la asignatura Infraestructura Virtual del Grado de Ingeniería Informática de la Universidad de Granada.


❓ Problema a resolver

En la ESO / Bachillerato, se realizan muchos exámenes para comprobar que el alumnado entiende los contenidos que se imparten en las asignaturas. Sin embargo, no todas ellas se pueden realizar en un formato tipo test con opciones, si no que se requiere respuestas complejas en lenguaje natural, como puede ser el caso de Historia. El problema reside en que la corrección de dichos exámenes es una tarea en la que se tarda mucho tiempo, ya que no es una tarea puramente objetiva, lo que impide que el profesor se pueda dedicar a otras tareas, o que realice controles / tareas de seguimiento de la clase de forma más periódica para poder ayudar a sus alumnos en su fase de aprendizaje.

💡 Solución propuesta

Se propone una solución en forma de plataforma residente en la nube con el objetivo de:

  1. Automatizar la tarea de corrección de exámenes / controles que requieren respuestas en lenguaje natural.
  2. Deducir el rendimiento general de la clase a través de los resultados de dichos controles.

📃 Documentación del Proyecto

Todo lo que se necesita saber acerca del proyecto se encuentra en las siguientes secciones:

  • 🤔 Design Thinking : Especifica el proceso de design-thinking que he seguido para modelar el problema y encontrar la solución.

  • 🗒️ Modelo : Conceptualización extendida del modelo de solución.

  • 👥 Usuarios : Se especifican los tipos de usuarios que utilizarán nuestra solución.

  • 📓 Historias de Usuario : Se especifican las historias de usuario, útiles para especificar adecuadamente las fases del proyecto y el desarrollo de la solución.

  • 🏁 Milestones : Se especifican los hitos a conseguir durante el desarrollo del proyecto.

  • ⚙️ Gestor dependencias : Se especifican los criterios establecidos para la elección del gestor de tareas. poetry.

  • 🏃 Gestor tareas : Se especifican los criterios establecidos para la elección del gestor de tareas. poethepoet.

  • 🐇 Test Runner : Se especifican los criterios establecidos para la elección del test runner. pytest

  • ✔️ Biblioteca de Aserciones : Se especifican los criterios establecidos para la elección de biblioteca de aserciones. PyHamcrest

  • 📚 Dependencias : Se especifican las bibliotecas externas utilizadas en el desarrollo del proyecto.

  • 💡 Lógica de Negocio : Se especifica la implementación realizada en las diferentes fases del proyecto consideradas en los milestones.

  • 🐋 Contenedor Docker : Se especifica los criterios para la elección de imagen base de contenedor Docker. python-slim

  • 🔀 Integración Continua : Se especifican los criterios para la elección de los sistemas de integración continua, y lo que realizan. GitHub Actions, Cirrus CI.


🐚 Órdenes de instalación y verificación

Para instalar el gestor de dependencias y de tareas, en un ámbito global al usuario:

$ pip install -r requirements.txt

Para instalar las dependencias del proyecto:

$ poe install

Se creará un entorno virtual para la instalación de las dependencias utilizadas de forma aislada.

Una vez se ha realizado la anterior orden, será necesario instalar los datos de una de las bibliotecas de las que depende el proyecto, NLTK, de la que se habla en dependencias Para ello, hay que usar la orden:

$ poe nltk_data

Esta orden descarga en el directorio HOME del usuario los datos necesarios para algunas de las fases de la lógica de negocio (concretamente, la tokenización y eliminación de stopwords).

Para comprobar la sintaxis de las fuentes:

$ poe check

Para lanzar los tests que prueben el código implementado:

$ poe test

Para construir la imagen del contenedor Docker en local (requiere tener docker instalado):

$ poe build_docker

Para ejecutar el contenedor Docker y abrir una shell sin privilegios (eliminando el contenedor tras finalizar):

$ poe run_docker

Para eliminar la imagen del contenedor Docker:

$ poe rmi_docker

Secciones de interés

Para más información adicional referente al repositorio, puede consultar los siguientes enlaces:

About

CorrectIt: un corrector de exámenes escritos en lenguaje natural.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published