]> git.llucax.com Git - software/sercom-old.git/blobdiff - doc/README
Se ordenan las entregas rechazadas.
[software/sercom-old.git] / doc / README
index 8df4df85d76526a06a2c66567c1fbeedbf1eb53e..65b6d46582d57a9c528bace97d139126b43b2ebf 100644 (file)
@@ -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 <llucare@fi.uba.ar>, sáb mar  5 22:16:29 ART 2005