X-Git-Url: https://git.llucax.com/software/sercom-old.git/blobdiff_plain/2629d689134a52c5d3210e371758931b99692a84..5fbd64ffbcf2259aed83351dcf00ee47a75ff931:/doc/README?ds=sidebyside diff --git a/doc/README b/doc/README index 8df4df8..65b6d46 100644 --- a/doc/README +++ b/doc/README @@ -1,4 +1,85 @@ Corrector Automático para Taller de Programación I (75.42) Universidad de Buenos Aires - Facultad de Ingeniería +Este programa requiere el siguiente los siguientes programas y bibliotecas: +* php4-cli +* php4-imap +* php4-pear +* php4 PEAR DB_DataObject (1.7.2 o superior) (# pear install -a DB_DataObject) +* make +* python2.4 +* python2.4-sqlobject (0.6.2 o superior) +La base de datos a utilizar es a elección, pero se recomienda SQLite, con la +que fue desarrollado y la única probada, por lo tanto los siguientes paquetes +son también necesarios en condiciones normales: +* sqlite (para crear la base de datos y tareas de mantenimiento) +* php4-sqlite +* python2.4-sqlite + +En el directorio /etc/sercom se encuentran los archivos de configuración, +debería darle una mirada antes de correr el servidor. + +/etc/sercom/log.ini es un poco más complejo y sirve para configurar el nivel +de log. El formato está descripto en: +http://docs.python.org/lib/logging-config-fileformat.html +Se lo provee de una forma bastante razonable, probablemente haya que cambiar +la sección [handler_mail] para poner un servidor SMTP y direcciones de mail +válidas solamente. + +Los archivos de configuración originales se encuentran en +/usr/share/doc/sercom/examples, por si fuera necesario recuperarlos. + +En /var/lib/sercom están los archivos de datos del programa. Contiene: +- Makefile de ejemplo ('Makefile' para C y 'Makefile-cpp' para C++). +- Directorio 'intentos' donde los intentos de entrega que llegan por mail + de los alumnos. Su estructura es: + intentos/año.cuatrimestre/curso.ejercicio.entrega/padron.intento + dentro de cada directorio están los archivos fuente enviados por el alumno. +- Directorio 'ejercicios' donde los datos sobre los ejercicios deben ser + guardados, incluyendo los archivos para casos de prueba. Su estructura es: + ejercicios/[id]/Makefile + casos_de_prueba/[nombre]/{stdin} + {stdout} + {stderr} + {entradas/[archivo]} + {salidas/[archivo]} + [algo] significa que algo es una variable. {algo} indica que puede no existir. + id: es el identificador de ejercicio en la base de datos. + nombre: es el nombre del caso de prueba + stdin/stdout/stderr: es la entrada estándar, salida estándar y salida de error + esperada (la entrada es la que espera el programa a probar y las salidas son + las que espera el corrector para saber si la corrida fue correcta). + entradas: los 'archivo's de entradas son los archivos que espera tener + presente el programa para correr el caso de prueba. + salidas: los 'archivo's de salidas son los archivos que espera que genere (o + modifique si estaba presente también en entradas) el corrector y con el que + serán comparados dichos archivos generados para evaluar si la corrida fue + correcta. +- Archivo de base de datos: la configuración por omisión espera la base de datos + en /var/lib/sercom/corrector.sqlite, con la estructura descripta en + /usr/share/doc/sercom/schema.sql. Para crear la base de datos vacía: + sqlite /var/lib/sercom/corrector.sqlite < /usr/share/doc/sercom/schema.sql + Pero recuerde que también habrá que cargar la base de datos con los datos + mínimos para que el corrector funcione (entregas, ejercicios, cursos, + docentes, inscriptos, casos de prueba). + Para agregar o listas 'objetos' de la base de datos, se puede utilizar el + programa sc_dbq, que permite ABMCL sobre la DB de manera simple. + +Por omisión el programa guarda el archivo de log en /var/log/sercom.log. + +Una aclaración sobre el servidor de correo a utilizar. El corrector, al +finalizar una entrega, envía un mail a cada alumno avisando qué intento fue +tomado como final para corregir. Esto significa que el corrector enviará una +ráfaga de N mails (siendo N la cantidad de alumnos que entregaron, generalmente +en el orden de los 100 para la primera entrega). Generalmente los servidores de +mail tienen una protección y aceptan M conexiones por minuto, siendo M del orden +de 50 (claro que puede variar, y mucho). +En el caso particular de inetd, esto se puede configurar, agregando un punto '.' +y la cantidad máxima de conexiones a aceptar por minuto luego del parámetro +'wait' (o 'no wait'). Por ejemplo, una configuración apropiada para utilizar el +corrector bajo inetd+exim sería: +smtp stream tcp nowait.200 mail /usr/sbin/exim exim -bs +(donde el 200 significa que se aceptan hasta 200 conexiones por minuto) + + -- Leandro Lucarella , sáb mar 5 22:16:29 ART 2005