]> git.llucax.com Git - z.facultad/75.43/tp1.git/blob - docs/informe/informe.html
Pongo los títulos de los php como h3 y pongo como h2 el título del módulo al que...
[z.facultad/75.43/tp1.git] / docs / informe / informe.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html lang="es">
3     <head>
4         <title>Informe Trabajo Práctico 1</title>
5         <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" >
6     </head>
7     <body>
8         <h1>Carátula</h1>
9         <p><strong>Introducción a Sistemas Distribuidos (75.43)</strong></p>
10         <p>Trabajo Práctico Número 1</p>
11         <h2>Grupo</h2>
12         <dl>
13             <dt>Número de grupo:</dt>
14             <dd><p>10</p></dd>
15             <dt>Nombre del host:</dt>
16             <dd><p>lb10</p></dd>
17             <dt>Nombre de usuario:</dt>
18             <dd><p>sisdis10</p></dd>
19         </dl>
20         <table border="1" summary="Integrantes">
21             <caption>Integrantes</caption>
22             <tr><th>Nombre</th><th>Padrón</th><th>Módulo desarrollado</th></tr>
23             <tr>
24                 <td>Leandro Lucarella</td>
25                 <td>77891</td>
26                 <td>Actualización de socios y administración de créditos</td>
27             </tr>
28             <tr>
29                 <td>Jonathan Schein</td>
30                 <td>80083</td>
31                 <td>Actualización de información de FAQ's</td>
32             </tr>
33             <tr>
34                 <td>Sebastián Arena</td>
35                 <td>COMPLETAR</td>
36                 <td>COMPLETAR</td>
37             </tr>
38         </table>
39         <h1>Índice</h1>
40         <ol>
41             <li><a href="#disenio">Diseño de las páginas</a></li>
42             <li><a href="#desarrollo">Desarrollo</a></li>
43             <li><a href="#herramientas">Herramientas de desarrollo</a></li>
44             <li><a href="#configuracion">Configuración del servidor</a></li>
45             <li><a href="#instalacion">Instalación</a></li>
46             <li><a href="#uso">Modo de uso</a></li>
47         </ol>
48         <h1><a name="disenio">Diseño de las páginas</a></h1>
49         <h2><a name="modulo_admin">Modulo de Administración</a></h2>
50         <h3><a name="index_php">index.php</a></h3>
51         <p>
52             Esta página es el punto de partida del sistema. Normalmente se
53             encarga de mostrar el <a href="#admin_login_php"><span
54             lang="en">login</span></a>, pero puede encargarse también de
55             resumir la sesión o de ir directo a la <a
56             href="#admin_asociarse_php">asociación</a> de administradores si
57             correspondiese (por ejemplo, si se cerró el navegador y se vuelve
58             a abrir en un corto período de tiempo; o si es la primera vez que
59             se usa el sistema y todavía no hay 2 administradores asignados;
60             respectivamente).
61         </p>
62         <h3><a name="admin_login_php">admin.login.php</a></h3>
63         <p>
64             Es la página que realmente se encarga de hacer el
65             <span lang="en">login</span>. Debe ingresarse el código de usuario
66             (sea socio o asesor) y el password.
67             Si el usuario no existe, o si está mal el password, etc, se muestra
68             el correspondiente mensaje de error.
69         </p>
70         <div align="center">
71             <img src="admin.login.jpg"
72                 alt="Captura de pantalla de admin.login.php" />
73         </div>
74         <h3><a name="admin_logout_php">admin.logout.php</a></h3>
75         <p>
76             Esta página, al igual que <a href="#index_php">index.php</a>, no
77             tiene contenido propio, sino que se encarga de borrar todos los
78             datos de la sesión del usuario y luego muestra la pantalla de <a
79             href="#admin_login_php"><span lang="en">login</span></a>
80             ingresarse el código de usuario (sea socio o asesor) y el password.
81             Si el usuario no existe, o si está mal el password, etc, se muestra
82             el correspondiente mensaje de error.
83         </p>
84         <h3><a name="admin_asociarse_php">admin.asociarse.php</a></h3>
85         <p>
86             Esta página asocia a un integrante del grupo (presente en el archivo
87             int_2005.txt si es socio o ase_2005.txt si es asesor). Si el sistema
88             todavía no tiene 2 administradores asignados, los usuarios que se
89             asocien, serán administradores (el sistema lo advierte, si es el
90             caso). Una vez asignados 2 administradores, la única forma de
91             cambiarlos es a través de la <a href="#admin_admin_php">página para
92             ceder los permisos de administración</a> (accesible sólo por los
93             administradores).
94         </p>
95         <div align="center">
96             <img src="admin.asociarse.jpg"
97                 alt="Captura de pantalla de admin.asociarse.php" />
98         </div>
99         <h3><a name="admin_log_php">admin.log.php</a></h3>
100         <p>
101             Esta página muestra el <span lang="en">log</span> de actividades del
102             usuario. Permite elegir la fecha desde la cual se quieren ver las
103             actividades.
104         </p>
105         <div align="center">
106             <img src="admin.log.jpg"
107                 alt="Captura de pantalla de admin.log.php" />
108         </div>
109         <h3><a name="admin_creditos_php">admin.creditos.php</a></h3>
110         <p>
111             En esta página el administrador puede agregar créditos a los
112             usuarios. Para realizar esta tarea el administrador debe ingresar su
113             password para corroborar su identidad como un mecanismo de seguridad
114             extra (ya que de todas formas sólo un usuario con permisos de
115             administrador puede realizar esta tarea). De esta manera, si por
116             alguna razón un usuario se quedara sin créditos para preguntar,
117             podría solicitar al administrador que le asigne algunos créditos.
118             Las razones de aprobación y la cantidad de créditos otorgados, queda
119             enteramente a consideración del administrador.
120         </p>
121         <div align="center">
122             <img src="admin.creditos.jpg"
123                 alt="Captura de pantalla de admin.creditos.php" />
124         </div>
125         <h3><a name="admin_admin_php">admin.admin.php</a></h3>
126         <p>
127             A través de esta página un administrador puede <em>ceder</em> sus
128             permisos de administración. Una vez cedidos, este usuario dejará de
129             ser administrador y comenzará a serlo el nuevo usuario asignado.
130             Al ser esta acción de un compromiso considerable, el administrador
131             debe volver a ingresar su password para confirmarlo (aunque ya esté
132             logueado y sólo los administradores puedan realizar esta acción).
133         </p>
134         <div align="center">
135             <img src="admin.admin.jpg"
136                 alt="Captura de pantalla de admin.admin.php" />
137         </div>
138         <h2><a name="modulo_admin">Modulo de FAQs</a></h2>
139                                 <h3><a name="faq_listarPreguntas_php">faq.listarPreguntas.php</a></h3>
140         <p>
141             Esta página lista las preguntas ingresadas en el sistema. Para cada
142                                                 pregunta, se muestra la fecha de creación, el nombre de autor, con su 
143                                                 correspondiente foto, la pregunta en si, la posibilidad de accederá a 
144                                                 todas las respuestas para dicha pregunta, así como también la posibilidad
145                                                 de responder la pregunta ( solo en caso que quien esta logueado en el sistema
146                                                 no sea el mismo usuario que formulo la pregunta ). El listado de preguntas 
147                                                 aparece paginado cada 2 ( se muestran dos preguntas por pantalla ). Debajo de
148                                                 las preguntas aparece el navegador. En caso que el usuario logueado sea un 
149                                                 administrador, en la parte inferior de cada pantalla aparece un link que permite
150                                                 acceder a la página de baja de preguntas.
151         </p>
152         <div align="center">
153             <img src="faq.listarPreguntas.jpg"
154                 alt="Captura de pantalla de faq.listarPreguntas.php" />
155         </div>
156                                 <h3><a name="faq_listarRespuestas_php">faq.listarRespuestas.php</a></h3>
157         <p>
158             El listador de respuestas muestra ordenadas por ranking las respuestas a una 
159                                                 pregunta seleccionada. Utiliza el paginador, al igual que el listador de preguntas, 
160                                                 y también lo hace de a dos respuestas por pantalla. Muestra la información del usuario
161                                                 que genero la respuesta ( foto y nombre ), la respuesta y el ranking de la misma. Si la
162                                                 respuesta todavía no fue evaluada por el autor de la pregunta, muestra un mensaje que 
163                                                 indica que no hay ranking para esa pregunta. Si el usuario que esta accediendo a la lista
164                                                 de respuestas es el mismo que formulo la pregunta y todavía no calificó a la misma, aparece 
165                                                 un botón que lo redirecciona a la página de calificación de preguntas. 
166         </p>
167         <div align="center">
168             <img src="faq.listarRespuestas.jpg"
169                 alt="Captura de pantalla de faq.listarRespuestas.php" />
170         </div>
171                                 <h3><a name="faq_ingresarPregunta_php">faq.ingresarPregunta.php</a></h3>
172         <p>
173             Desde el menú de la aplicación se puede acceder a esta página. En caso de que el 
174                                                 usuario logueado tenga los créditos para hacerlo, podrá formular una pregunta que 
175                                                 se publicara en la lista de preguntas ( faq.listarPreguntas.php ). Si el usuario no
176                                                 contara con los créditos suficientes, un warning lo alertara y le sugerirá que 
177                                                 pida créditos al administrador del sistema. El usuario podrá ingresas desde esta pantalla
178                                                 tantas preguntas como créditos tenga. 
179         </p>
180         <div align="center">
181             <img src="faq.ingresarPregunta.jpg"
182                 alt="Captura de pantalla de faq.ingresarPregunta.php" />
183         </div>
184                                 <h3><a name="faq_responderPregunta_php">faq.responderPregunta.php</a></h3>
185         <p>
186             Desde el listado de preguntas se puede acceder a la pantalla que permite responder 
187                                                 la pregunta. La misma muestra en el encabezado la pregunta que se esta respondiendo. 
188                                                 Al lograr un ingreso satisfactorio de una respuesta, aparece un mensaje que avisa al 
189                                                 usuario que su respuesta fue dada de alta en el sistema. Esta respuesta quedara pendiente
190                                                 de calificar por parte del autor de la pregunta que se esta respondiendo. Cualquier usuario
191                                                 logueado en el sistema puede acceder a responder preguntas. Únicamente no podrá responder una
192                                                 pregunta el autor de la misma 
193         </p>
194         <div align="center">
195             <img src="faq.responderPregunta.jpg"
196                 alt="Captura de pantalla de faq.responderPregunta.php" />
197         </div>
198                                 <h3><a name="faq_calificarRespuesta_php">faq.calificarRespuesta.php</a></h3>
199         <p>
200             La pantalla de calificación de respuesta solo puede ser accedida por el autor de
201                                                 la pregunta que tiene dicho ítem como respuesta. En esta pantalla, desde un combo, se
202                                                 puede elegir alguna de las cuatro categorías de calificación ( a cada una le corresponde un 
203                                                 puntaje ). Inmediatamente se le acreditara a quien pregunta tantos créditos como puntos valgan la 
204                                                 calificación de la respuesta. La respuesta solo podrá ser calificada una vez, luego de ser calificada,
205                                                 desaparecerá el botón que permite acceder a la pantalla para ese ítem. 
206         </p>
207         <div align="center">
208             <img src="faq.calificarRespuesta.jpg"
209                 alt="Captura de pantalla de faq.calificarRespuesta.php" />
210         </div>
211                                 <h3><a name="faq_desactivarPregunta_php">faq.desactivarPregunta.php</a></h3>
212         <p>
213                                          Desde esta pantalla, los administradores pueden dar de baja una pregunta. De todas formas la pregunta
214                                          seguirá existiendo, con sus respuestas, pero no sera mostrada mas por el listador. Para acceder a la pantalla
215                                          de baja de preguntas, se debe hacer click sobre el link que aparece en la página listarPreguntas.php. Este link
216                                          solo aparece en caso que el usuario logueado tenga privilegios de administrador. 
217         </p>
218         <div align="center">
219             <img src="faq.desactivarPregunta.jpg"
220                 alt="Captura de pantalla de faq.desactivarPregunta.php" />
221         </div>
222         <h2><a name="modulo_info">Modulo de Info</a></h2>
223         <p>
224                 El siguiente menu es el que se le presenta al asesor o socio para
225                 interactuar con el modulo de info.
226         </p>
227         <div align="center">
228             <img src="info.menu.asesor.jpg"
229                 alt="Captura de pantalla de info.menu.asesor.jpg" />
230         </div>
231         <p>
232                 El siguiente menu es el que se le presenta al administrador para
233                 interactuar con el modulo de info.
234         </p>
235         <div align="center">
236             <img src="info.menu.administrador.jpg"
237                 alt="Captura de pantalla de info.menu.administrador.jpg" />
238         </div>
239         <h3><a name="info_ingresarTemas_php">info.ingresarTemas.php</a></h3>
240         <p>
241                 Desde aquí el usuario puede ingresar nuevos temas. (Solo pueden acceder
242                 los usuarios administradores)
243                 Los campos a completar son:
244                         <strong>Tema</strong>: Nombre del Tema.
245                         <strong>Icono</strong>: Cada Tema tiene un ícono asociado.
246                         <strong>Descripción</strong>: Cada Tema tiene un descripción asociada.
247                 Una vez completados se procede a "Guardar Tema".
248                 Se mostrará un mensaje indicando si la operación fue exitosa o no.
249                 Se mantienen los datos en los campos, y se permite la modificación de lo recien insertado.
250                 De retirarse de la página, o presionar sobre "Nuevo Tema" se pierde la posibilidad de modificar.
251         </p>
252         <div align="center">
253             <img src="info.ingresarTemas.php.jpg"
254                 alt="Captura de pantalla de info.ingresarTemas.php" />
255         </div>
256         <h3><a name="info_listarTemas_php">info.listarTemas.php</a></h3>
257         <p>
258                 Desde aquí el usuario puede ver la lista de temas disponibles para ingresar informaciones.
259                 La página se muestra paginada de a 5 temas por vez, se puede acceder a las diferentes
260                 páginas navegando el menu superior. (La página actual queda marcada en negrita).
261         </p>
262         <div align="center">
263             <img src="info.listarTemas.php.jpg"
264                 alt="Captura de pantalla de info.listarTemas.php" />
265         </div>
266         <h3><a name="info_ingresarInfo_php">info.ingresarInfo.php</a></h3>
267         <p>
268                 Desde aquí el usuario puede ingresar nuevas informaciones.
269                 Los campos a completar son:
270         </p>
271                 <ul>
272                         <li><strong>Tema</strong>: se debe seleccionar el tema de la lista disponible.</li>
273                         <li><strong>URL</strong>: es la URL hacia la información que se está ingresando.</li>
274                         <li><strong>Comentario</strong>: una breve descripción de la información provista.</li>
275                 </ul>
276         <p>
277                 Una vez completados se procede a "Guardar Información"
278                 Se mostrará un mensaje indicando si la operación fue exitosa o no.
279                 Se mantienen los datos en los campos, y se permite la modificación de lo recién insertado.
280                 De retirarse de la página, o presionar sobre "Nuevo Información" se pierde la posibilidad de modificar.
281         </p>
282         <div align="center">
283             <img src="info.ingresarInfo.php.jpg"
284                 alt="Captura de pantalla de info.ingresarInfo.php" />
285         </div>
286         <h3><a name="info_listarInfo_php">info.listarInfo.php</a></h3>
287         <p>
288                 Desde aquí el usuario puede ver la lista de informaciones disponibles.
289                 La página se muestra paginada de a 5 informaciones por vez, se puede acceder a las diferentes
290                 páginas navegando el menu superior. (La página actual queda marcada en negrita).
291                 Se despliega el icono del tema al cual pertenece, así como la imagen del usuario que cargó
292                 dicha información. A continuación se muestra la URL correspondiente, con su comentario.
293                 Por último el ranking ( que es la cantidad de accesos que hubo a dicha URL ) y se puede
294                 acceder finalmente a la sección de comentarios sobre la información haciendo click en
295                 "Ver Comentarios".
296                 Esta sección está disponible ordenada por ranking de acceso a la URL, o, eligiendo en "Ver Tema",
297                 se listan las informaciones del tema, y luego dentro de ahi las mismas ordenadas por ranking.
298         </p>
299         <div align="center">
300             <img src="info.listarInfo.php.jpg"
301                 alt="Captura de pantalla de info.listarInfo.php" />
302         </div>
303         <h3><a name="info_listarComentarios_php">info.listarComentarios.php</a></h3>
304         <p>
305                 Esta página es accedida desde "Ver Comentarios" que se encuentra disponible para cada información presente.
306                 La misma muestra los comentarios agregados hasta el momento.
307                 La página se muestra paginada de a 5 temas por vez, se puede acceder a las diferentes
308                 páginas navegando el menu superior. (La página actual queda marcada en negrita).
309                 Se presenta el ícono del tema al cual pertenece la información, y por supuesto el comentario en cuestión.
310                 Luego se presenta el ícono y apellido del usuario que cargó el comentario (si el usuario que cargó el comentario
311                 es el mismo que cargó la información entonces se muestra solamente el apellido), y finalmente se muestra el comentario.
312                 Se puede acceder a cargar un nuevo comentario desde "Ingresar Comentario" (esto solo puede ser realizado por los asesores
313                 o socios.
314         </p>
315         <div align="center">
316             <img src="info.listarComentarios.php.jpg"
317                 alt="Captura de pantalla de info.listarComentarios.php" />
318         </div>
319         <h3><a name="info_ingresarComentario_php">info.ingresarComentario.php</a></h3>
320         <p>
321                 Desde aquí el usuario puede ingresar nuevos comentarios a informaciones existentes.
322                 El campo a completar es:
323         </p>
324                 <ul>
325                         <li><strong>Comentario</strong></li>
326                 </ul>
327         <p>
328                 Una vez completados se procede a "Guardar Comentario".
329                 Se mostrará un mensaje indicando si la operacion fue exitosa o no.
330                 Se mantienen los datos en los campos, y se permite la modificación de lo recién insertado.
331                 De retirarse de la página, o presionar sobre "Nuevo Comentario" se pierde la posibilidad de modificar.
332         </p>
333         <div align="center">
334             <img src="info.ingresarComentario.php.jpg"
335                 alt="Captura de pantalla de info.ingresarComentario.php" />
336         </div>
337         <h3><a name="info_mencionEspecial_php">info.mencionEspecial.php</a></h3>
338         <p>
339                 En esta pagina se lista el o los usuarios que hayan publicado informaciones con alto ranking.
340                 Se suma para cada usuario los rankings de las páginas publicadas, y luego se muestran aquellos que con el
341                 ranking mas alto ( se muestra mas de uno cuando el ranking es el mismo para varios usuarios ).
342         </p>
343         <div align="center">
344             <img src="info.mencionEspecial.php.jpg"
345                 alt="Captura de pantalla de info.mencionEspecial.php" />
346         </div>
347         
348         <h1><a name="desarrollo">Desarrollo</a></h1>
349         AGREGAR DESCRIPCION DE LO HECHO!!!!
350         <h2><a name="desarrollo_archivos">Formato de Archivos</a></h2>
351         <p>
352             Todos los archivos del sistema se almacenan en el directorio data.
353             Varios archivos son creados en <em>tiempo de ejecución</em> por el
354             servidor web, por lo tanto este directorio debe tener permisos de
355             escritura para el usuario con el que corre dicho servidor.
356             Además las fotos de los usuarios se guardan en el directorio fotos y
357             también se crean en <em>tiempo de ejecución</em>, por lo tanto este
358             directorio también debe tener permisos de escritura para el servidor
359             web. El nombre del archivo de la foto de un usuario es su número de
360             registro (si es socio) o código (si es asesor).
361         </p>
362         <p>
363             A continuación se describe el formato de cada archivo.
364         </p>
365         <h3><a name="desarrollo_archivos_int_2005_txt">int_2005.txt</a></h3>
366         <p>
367             Este archivo tiene formato <acronym lang="en"
368             title="Comma Separated Values">CSV</acronym> y está cargado previo
369             a la ejecución del sistema con todos los integrantes que
370             potencialmente serán <em>socios</em> del sistema.
371             Los campos del archivo son:
372         </p>
373         <ol>
374             <li>Número de registro</li>
375             <li>Nombre del usuario</li>
376             <li>Apellido del usuario</li>
377         </ol>
378         <h3><a name="desarrollo_archivos_ase_2005_txt">ase_2005.txt</a></h3>
379         <p>
380             Este archivo tiene formato <acronym lang="en"
381             title="Comma Separated Values">CSV</acronym> y está cargado previo
382             a la ejecución del sistema con todos los integrantes que
383             potencialmente serán <em>asesores</em> del sistema.
384             Los campos del archivo son:
385         </p>
386         <ol>
387             <li>Código (formato A+año+número correlativo)</li>
388             <li>Nombre del usuario</li>
389             <li>Apellido del usuario</li>
390         </ol>
391         <h3><a name="desarrollo_archivos_users_csv">users.csv</a></h3>
392         <p>
393             Este archivo tiene formato <acronym lang="en"
394             title="Comma Separated Values">CSV</acronym> y se crea en
395             <em>tiempo de ejecución</em>. En él se almacenan los usuarios
396             registrados en el sistema.
397             Los campos del archivo son:
398         </p>
399         <ol>
400             <li>
401                 Número de registro/Código (dependiendo de si es socio o
402                 asesor)
403             </li>
404             <li>Contraseña del usuario</li>
405             <li>Dirección de correo electrónico del usuario</li>
406         </ol>
407         <h3><a name="desarrollo_archivos_admin_txt">admin.txt</a></h3>
408         <p>
409             Este archivo tiene formato de texto plano y almacena un número de
410             registro o código (según sea socio o asesor) por línea (aunque
411             también puede ser visto como un archivo <acronym lang="en"
412             title="Comma Separated Values">CSV</acronym> con un sólo campo).
413             Su función es almacenar los identificadores de los 2 administradores
414             del sistema y es creado en <em>tiempo de ejecución</em>.
415         </p>
416         <h3><a name="desarrollo_archivos_creditos_csv">creditos.*.csv</a></h3>
417         <p>
418             Este archivo tiene formato <acronym lang="en"
419             title="Comma Separated Values">CSV</acronym> modificado, ya que
420             incluye en los primeros 11 bytes un <em>índice</em> a la última
421             entrada. Es decir, en los primeros 11 bytes se almacena la posición
422             del archivo en la que se encuentra el último <em>registro</em> CSV.
423             Dicha posición, se almacena en codificación ASCII como un número de
424             10 cifras (con ceros delante) y un caracter de fin de línea al
425             final. Como normalmente sólo importa el último registro del archivo,
426             esto acelera mucho, ya que no hay que recorrerlo completo para
427             obtener dicho registro. De esta manera el acceso es casi directo y
428             se conserva la historia de la variación de los créditos.
429         </p>
430         <p>
431             Este archivo se crea en <em>tiempo de ejecución</em>, uno por cada
432             socio, en el momento en que se registra en el sistema. El nombre
433             del archivo incluye el número de registro del socio
434             (creditos.[nro_registro].csv) y en él se almacena la
435             historia de créditos de dicho usuario.
436             Los campos del archivo son:
437         </p>
438         <ol>
439             <li>Timestamp con la fecha en la que se creó la entrada</li>
440             <li>Cantidad de créditos que tiene el socio</li>
441             <li>
442                 Cantidad de respuestas con <span lang="en">ranking</span>
443                 2 o más que le falta para obtener los 5 créditos extra
444             </li>
445             <li>Cantidad de días que lleva sin preguntar</li>
446         </ol>
447         <p>
448             Este archivo se actualiza en etapas distintas (siempre que se
449             actualiza, se agrega un nuevo registro con los nuevos datos y se
450             actualiza el <em>índice</em>). Cuando el usuario ingresa al sistema,
451             se recalculan los créditos para ver si se le deben restar por
452             cantidad de días sin preguntar. Se resta 1 crédito por cada 30 días
453             sin responder. El cálculo realizado es el siguiente:
454         </p>
455         <p>
456             Llamaremos FECHA al campo 1 del registro del archivo leído, CREDITOS
457             al campo 2 y DIAS al campo 4. Llamaremos FECHA_ACTUAL a la fecha del
458             instante del login. Ambas fechas expresadas como timestamps. Para
459             calcular la diferencia en días entre 2 fechas, simplemente se restan
460             y se divide por 86400 (cantidad de segundos en un día). Entonces
461             para saber la cantidad de días que hace que no se pregunta en el
462             instante del login (DIAS_NUEVO), se realiza: <code>DIAS_NUEVO =
463             DIAS + (FECHA_ACTUAL - FECHA) / 86400</code>. Luego, si DIAS_NUEVO
464             es más que 30, se calculan los nuevos créditos (CREDITOS_NUEVO) como
465             <code>CREDITOS_NUEVO = CREDITOS - (DIAS_NUEVO / 30)</code> y la
466             nueva cantidad de días sin preguntar restantes (DIAS_RESTO) como
467             <code>DIAS_RESTO = DIAS_NUEVO % 30</code> (siendo % el resto de la
468             división entera), ya que estos días sin preguntar <em>extra</em> que
469             todavía no llegan a sumar 30 como para restar créditos, deben ser
470             considerados para futuros cálculos. Finalmente en el archivo de
471             créditos se guarda un nuevo registro con los datos CREDITOS_NUEVO y
472             DIAS_RESTO en los campos 2 y 4 respectivamente. El resto de los
473             campos (exceptuando la fecha, que siempre se guarda con la fecha de
474             modificación del archivo) quedan intactos.
475         </p>
476         <p>
477             El otro caso en donde se actualiza este archivo (se actualizan los
478             créditos) es cuando un socio realiza una pregunta. En este caso,
479             solamente se resta un crédito (campo 2) y pone se resetean los días
480             sin preguntar (el campo 4 se pone en cero).
481         </p>
482         <p>
483             Finalmente, el último caso en donde se actualiza este archivo (se
484             recalculan los créditos) es cuando un usuario califica una
485             respuesta. Se suma a CREDITOS la calificación de dicha respuesta y
486             si la respuesta está calificada con un valor igual o superior a 2
487             se suma uno al campo 3 (BONUS) y se verifica si es igual o superior
488             a 5 (en realidad jamás será superior a 5). Si lo es, se pone en cero
489             BONUS y se suma 5 CREDITOS.
490         </p>
491         <h3><a name="desarrollo_archivos_log_csv">log.*.csv</a></h3>
492         <p>
493             Este archivo tiene formato <acronym lang="en"
494             title="Comma Separated Values">CSV</acronym>. y se crea en
495             <em>tiempo de ejecución</em>, uno por cada usuario, en el momento
496             en que se registra en el sistema. El nombre del archivo incluye el
497             número de registro del socio o código del asesor según el caso
498             (log.[nro_registro/codigo].csv) y en él se almacena la el log de
499             actividades (es decir, cada vez que el usuario realiza una acción en
500             el sistema, se agrega una entrada a este archivo que la describe).
501             Los campos del archivo son:
502         <ol>
503             <li>Timestamp con la fecha en la que se creó la entrada</li>
504             <li>Descripción de la acción realizada</li>
505         </ol>
506                                 <h3><a name="desarrollo_archivos_preguntas_csv">preguntas.csv</a></h3>
507         <p>
508             Este archivo tiene formato <acronym lang="en"
509             title="Comma Separated Values">CSV</acronym>. y se crea en
510             <em>tiempo de ejecución</em>. A medida que se van dando de alta las
511                                                 preguntas, se agrega una línea al final. Se guarda toda la información
512                                                 necesaria para poder operar con las preguntas. Cuando una pregunta se 
513                                                 da de baja, <em>no</em> es eliminada de este archivo. De esta forma, 
514                                                 queda un registro histórico de las preguntas que fueron dadas de alta en 
515                                                 el sistema.
516                                                 Los campos del archivo son:
517         <ol>
518             <li>Id de la pregunta</li>
519             <li>Id del usuario autor de la pregunta</li>
520                                                 <li>Timestamp con la fecha de creación de la pregunta</li>
521                                                 <li>Texto de la pregunta</li>
522         </ol>
523                                 <h3><a name="desarrollo_archivos_respuestas_csv">respuestas.csv</a></h3>
524         <p>
525             Este archivo tiene formato <acronym lang="en"
526             title="Comma Separated Values">CSV</acronym>. y se crea en
527             <em>tiempo de ejecución</em>. Cuando se da de alta una respuesta a una
528                                                 pregunta, se da de alta un nuevo registro en este archivo. El id de las 
529                                                 respuestas es simplemente el orden en el que fueron loguadas. Se guarda información
530                                                 de la pregunta que se esta respondiendo para que sea mas sencilla la operatoria con 
531                                                 las respuestas, y pueda trabajar de manera independiente a las preguntas.
532                                                 Los campos del archivo son:
533         <ol>
534             <li>Id de la pregunta que se esta respondiendo</li>
535             <li>Id del usuario autor de la pregunta que se esta respondiendo</li>
536                                                 <li>Id del usuario autor de la respuesta</li>
537                                                 <li>Timestamp con la fecha de creación de la respuesta</li>
538                                                 <li>Texto de la respuesta</li>
539         </ol>
540                                 <h3><a name="desarrollo_archivos_calificacion_csv">calificacion.csv</a></h3>
541         <p>
542             Este archivo tiene formato <acronym lang="en"
543             title="Comma Separated Values">CSV</acronym>. y se crea en
544             <em>tiempo de ejecución</em>. Cuando un usuario autor de una pregunta
545                                                 califica las respuestas a dicha pregunta, se da de alta un registro en este archivo.
546                                                 Luego, se asociara al calificacion a la respuesta correspondiente. Si una respuesta 
547                                                 no aparece en este archivo, es que todavía no fue calificada.
548                                                 Los campos del archivo son:
549         <ol>
550             <li>Id de la respuesta calificada</li>
551             <li>Puntaje</li>
552         </ol>
553                                 <h3><a name="desarrollo_archivos_desactivadas_csv">desactivadas.csv</a></h3>
554         <p>
555             Este archivo tiene formato <acronym lang="en"
556             title="Comma Separated Values">CSV</acronym>. y se crea en
557             <em>tiempo de ejecución</em>. Cuando un administrador da de baja una pregunta,
558                                                 simplemente se ingresa el id de la misma en este archivo. A partir de ese momento, el 
559                                                 listador la ignorará al momento de mostrar las preguntas por pantalla.
560                                                 Los campos del archivo son:
561         <ol>
562             <li>Id de la pregunta</li>
563             <li>Timestamp con la fecha de baja</li>
564         </ol>
565         <h3><a name="temas_csv">temas.csv</a></h3>
566         <p>
567             Este archivo tiene formato <acronym lang="en"
568             title="Comma Separated Values">CSV</acronym>. Se va cargando por los administradores durante
569             la ejecución del sistema.
570             Los campos del archivo son:
571         </p>
572         <ol>
573             <li>ID que identifica unívocamente a los temas.</li>
574             <li>Usuario que cargo el mismo.</li>
575             <li>Nombre del mismo.</li>
576             <li>Ruta al icono del mismo.</li>
577             <li>Breve descripción.</li>
578             <li>Fecha de alta/modificación.</li>
579         </ol>
580         <h3><a name="infos_csv">infos.csv</a></h3>
581         <p>
582             Este archivo tiene formato <acronym lang="en"
583             title="Comma Separated Values">CSV</acronym>. Se va cargando por los asesores/socios durante
584             la ejecución del sistema.
585             Los campos del archivo son:
586         </p>
587         <ol>
588             <li>ID que identifica univocamente a las informaciones.</li>
589             <li>ID del tema al cual pertenece.</li>
590             <li>URL (link) a la información otorgada.</li>
591             <li>Usuario que cargo el mismo.</li>
592             <li>Breve descripción.</li>
593             <li>Cantidad de visitas a la URL (link) proporcionada.</li>
594             <li>Fecha de alta/modificación.</li>
595         </ol>
596         <h3><a name="comentarios_csv">comentarios.*.csv</a></h3>
597         <p>
598             Este archivo tiene formato <acronym lang="en"
599             title="Comma Separated Values">CSV</acronym>. Se va cargando por los asesores/socios durante
600             la ejecución del sistema.
601             Los campos del archivo son:
602         </p>
603         <ol>
604                 <li>ID que identifica univocamente a las informaciones.</li>
605             <li>Usuario que cargó el mismo.</li>
606             <li>Comentario.</li>
607             <li>Fecha de alta/modificación.</li>
608         </ol>
609         <h1><a name="herramientas">Herramientas de desarrollo</a></h1>
610         <p>
611             Cada integrante eligió herramientas de desarrollo propias, más allá
612             de las herramientas obligatorias que había que usar
613             indefectiblemente para realizar el TP (como PHP y Apache).
614             A continuación se enumeran las herramientas utilizadas por cada
615             integrante.
616         </p>
617         <h2>Leandro Lucarella</h2>
618         <dl>
619             <dt>Navegador</dt>
620             <dd><p>Mozilla Firefox, w3m</p></dd>
621             <dt>Editor de texto</dt>
622             <dd><p>VIM</p></dd>
623             <dt>Validador</dt>
624             <dd><p>Herramientas de w3c: tidy y el servicio de validación
625                 online (http://validator.w3.org/)</p></dd>
626             <dt>Herramientas de diseño de HTML</dt>
627             <dd><p>Ninguna</p></dd>
628         </dl>
629         <h2>Jonathan Schein</h2>
630         <dl>
631             <dt>Navegador</dt>
632             <dd><p>Mozilla Firefox, Internet Explorer 6</p></dd>
633             <dt>Editor de texto</dt>
634             <dd><p>HTML-Kit, Notepad</p></dd>
635             <dt>Validador</dt>
636             <dd><p>Herramientas de w3c: tidy y el servicio de validación
637                 online (http://validator.w3.org/)</p></dd>
638             <dt>Herramientas de diseño de HTML</dt>
639             <dd><p>Ninguna</p></dd>
640         </dl>
641         <h2>Sebastián Arena</h2>
642         <dl>
643             <dt>Navegador</dt>
644             <dd><p>Mozilla Firefox, Internet Explorer 6</p></dd>
645             <dt>Editor de texto</dt>
646             <dd><p>EmEditor</p></dd>
647             <dt>Validador</dt>
648             <dd><p>Herramientas de w3c: tidy y el servicio de validación
649                 online (http://validator.w3.org/)</p></dd>
650             <dt>Herramientas de diseño de HTML</dt>
651             <dd><p>Ninguna</p></dd>
652         </dl>
653         <h1><a name="configuracion">Configuración del servidor</a></h1>
654         <p>
655             El servidor no debe ser configurado de ninguna forma en particular,
656             sólo debe tener activado el módulo de PHP y la extensión user_dir de
657             apache si va a ser instalado en el directorio public_html de un
658             usuario. El resto de las configuración se realizan desde el mismo
659             sistema, por lo que no es necesario hacer modificaciones ni a la
660             configuración del apache ni a la del PHP.
661         </p>
662         <p>
663             Si no estuviera configurado el módulo user_dir, habría que agregar
664             al apache las siguiente líneas:
665         </p>
666         <pre>
667 LoadModule userdir_module libexec/mod_userdir.so
668 AddModule mod_userdir.c
669 UserDir public_html
670         </pre>
671         <p>
672             Si no estuviera configurado el módulo de php, habría que agregar
673             al apache las siguiente líneas:
674         </p>
675         <pre>
676 LoadModule php4_module libexec/libphp4.so
677 AddModule mod_php4.c
678 AddType application/x-httpd-php .php
679         </pre>
680         <p>
681             El archivo php.ini no necesita modificaciones a los valores por
682             omisión que trae cuando se instala.
683         </p>
684         <h1><a name="instalacion">Instalación</a></h1>
685         <p>
686             Sólo debe ejecutar el script ./install.sh que se encuentra en el
687             disquette. El script crea el directorio public_html en el directorio
688             del usuario actual (si no existiese) y copia los archivos
689             necesarios, con los permisos pertinentes para que el apache pueda
690             leer o escribir según corresponda. Una vez instalado, el sistema se
691             puede acceder en
692             <a href="http://localhost/~sisdis10/">http://localhost/~sisdis10/</a>
693             (si se instala con el usuario sisdis10, por supuesto).
694         </p>
695         <h1><a name="uso">Modo de uso</a></h1>
696         <p>
697             COMPLETAR!!! Mucho de esto por ahora está en la descripción del
698             diseño... Habría que hacer una descripción de un circuito completo
699             que vaya por toas las páginas...
700         </p>
701     </body>
702 </html>
703 <!-- vim: set et sw=4 sts=4 : -->