]> git.llucax.com Git - z.facultad/75.43/tp1.git/blob - docs/informe/informe.html
Mi modificacion del informe. Hecho con el ultimo aliento
[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>80367</td>
36                 <td>Actualización de información de interés de otros sitios y comentarios</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_faqs">Modulo de FAQs</a></h2>
139                                 <h3><a name="faq_listarPreguntas_php">faq.listarPreguntas.php</a></h3>
140         <p>
141             Esta pagina muestra la lista de preguntas ingresadas al sistema. Permite acceder
142                                                 a las respuestas, y en caso de ser posible, darlas de alta. A los administradores,
143                                                 tambien les permite acceder a la baja de preguntas.
144         </p>
145         <div align="center">
146             <img src="faq.listarPreguntas.jpg"
147                 alt="Captura de pantalla de faq.listarPreguntas.php" />
148         </div>
149                                 <h3><a name="faq_listarRespuestas_php">faq.listarRespuestas.php</a></h3>
150         <p>
151             Para cada una de las preguntas, se pueden ver desde esta pantalla las respuestas dadas
152                                                 de alta. Las muestra por ranking. En caso de que la respuesta no haya sido calificada
153                                                 aun y quien esta logueado es el autor de la pregunta, permite acceder a la pantalla de 
154                                                 calificaciones.
155         </p>
156         <div align="center">
157             <img src="faq.listarRespuestas.jpg"
158                 alt="Captura de pantalla de faq.listarRespuestas.php" />
159         </div>
160                                 <h3><a name="faq_ingresarPregunta_php">faq.ingresarPregunta.php</a></h3>
161         <p>
162             Permite dar de alta una pregunta en el sistema. Es necesario que el usuario sea un asesor, o
163                                                 tenga los creditos suficientes. 
164         </p>
165         <div align="center">
166             <img src="faq.ingresarPregunta.jpg"
167                 alt="Captura de pantalla de faq.ingresarPregunta.php" />
168         </div>
169                                 <h3><a name="faq_responderPregunta_php">faq.responderPregunta.php</a></h3>
170         <p>
171             La pantalla permite ingresar la respuesta a una pregunta seleccionada. Esta respuesta deberá
172                                                 ser calificada por el autor de la pregunta posteriormente, y le permitirá al que responde, obtener 
173                                                 créditos.
174         </p>
175         <div align="center">
176             <img src="faq.responderPregunta.jpg"
177                 alt="Captura de pantalla de faq.responderPregunta.php" />
178         </div>
179                                 <h3><a name="faq_calificarRespuesta_php">faq.calificarRespuesta.php</a></h3>
180         <p>
181             A esta pantalla solo accede el autor de la pregunta. Desde la misma puede calificar la respuesta.
182                                                 Dependiendo de la calidad de la respuesta, quien la formulo podra obtener mas o menos créditos, para
183                                                 de esta manera poder efectuar nuevas preguntas.
184         </p>
185         <div align="center">
186             <img src="faq.calificarRespuesta.jpg"
187                 alt="Captura de pantalla de faq.calificarRespuesta.php" />
188         </div>
189                                 <h3><a name="faq_desactivarPregunta_php">faq.desactivarPregunta.php</a></h3>
190         <p>
191                                          La pantalla de baja de preguntas solo puede ser accedida por un administrador. Permite que la pregunta
192                                          y sus respuestas no sean listadas mas, pero queden logueadas en un historico.
193         </p>
194         <div align="center">
195             <img src="faq.desactivarPregunta.jpg"
196                 alt="Captura de pantalla de faq.desactivarPregunta.php" />
197         </div>
198         <h2><a name="modulo_info">Modulo de Info</a></h2>
199         <h3><a name="info_ingresarTemas_php">info.ingresarTemas.php</a></h3>
200         <p>
201                 Permite al usuario el ingreso/modificación de nuevos Temas.
202         </p>
203         <div align="center">
204             <img src="info.ingresarTemas.php.jpg"
205                 alt="Captura de pantalla de info.ingresarTemas.php" />
206         </div>
207         <h3><a name="info_listarTemas_php">info.listarTemas.php</a></h3>
208         <p>
209                 Permite ver la lista de temas disponibles para ingresar informaciones.
210         </p>
211         <div align="center">
212             <img src="info.listarTemas.php.jpg"
213                 alt="Captura de pantalla de info.listarTemas.php" />
214         </div>
215         <h3><a name="info_ingresarInfo_php">info.ingresarInfo.php</a></h3>
216         <p>
217                 Permite al usuario ingresar nuevas informaciones a los temas actuales.
218         </p>
219         <div align="center">
220             <img src="info.ingresarInfo.php.jpg"
221                 alt="Captura de pantalla de info.ingresarInfo.php" />
222         </div>
223         <h3><a name="info_listarInfo_php">info.listarInfo.php</a></h3>
224         <p>
225                 Permite al usuario puede ver la lista de informaciones disponibles ordenadas por ranking,
226                 o por tema y ranking.
227         </p>
228         <div align="center">
229             <img src="info.listarInfo.php.jpg"
230                 alt="Captura de pantalla de info.listarInfo.php" />
231         </div>
232         <h3><a name="info_listarComentarios_php">info.listarComentarios.php</a></h3>
233         <p>
234                 Permite ver los comentarios agregados hasta el momento.
235         </p>
236         <div align="center">
237             <img src="info.listarComentarios.php.jpg"
238                 alt="Captura de pantalla de info.listarComentarios.php" />
239         </div>
240         <h3><a name="info_ingresarComentario_php">info.ingresarComentario.php</a></h3>
241         <p>
242                 Permite al usuario ingresar nuevos comentarios a informaciones existentes.
243         </p>
244         <div align="center">
245             <img src="info.ingresarComentario.php.jpg"
246                 alt="Captura de pantalla de info.ingresarComentario.php" />
247         </div>
248         <h3><a name="info_mencionEspecial_php">info.mencionEspecial.php</a></h3>
249         <p>
250                 Permite ver la lista de el o los usuarios que hayan publicado informaciones con alto ranking.
251         </p>
252         <div align="center">
253             <img src="info.mencionEspecial.php.jpg"
254                 alt="Captura de pantalla de info.mencionEspecial.php" />
255         </div>
256         <h1><a name="desarrollo">Desarrollo</a></h1>
257         <h2><a name="desarrollo_diseño">Diseño del sistema</a></h2>
258                                 <p>
259                                          Los siguientes dos graficos describen como fue pensado el sistema a nivel
260                                          clases, y como se integrarian las diferentes partes, para que, pese a contar
261                                          con tres modulos separados, quede una unica aplicacion homogenea. Como punto de 
262                                          partida entonces se realizaron estos dos graficos que sirvieron como guia, y 
263                                          a lo largo del desarrollo fueron actualizandose. Se adjuntan aqui sus versiones 
264                                          finales.
265                                 </p>
266                                 <h3><a name="desarrollo_diagrama_clases">Diagrama de Clases</a></h3>
267                                 <p>
268                                          El diagrama de clases se penso con el fin de poder reutilizar la mayor cantidad
269                                          de codigo posible, y de dividir de forma mas clara las tareas. La idea de estas
270                                          clases, principalmente, es que sean las entidades que son persistidas en los archivos
271                                          de texto, para tener un manejo mas sencillo y eficiente de la informacion.
272                                 </p>
273                                 <div align="center">
274             <img src="clases.jpg"
275                 alt="Diagrama de clases" />
276         </div>
277                                 <h3><a name="desarrollo_diagrama_navegacion">Gráfico de Navegación</a></h3>
278                                 <p>
279                                          Este esquema permite ver la interrelación entre las diferentes pantallas del sistema
280                                          y como se puede acceder de una a la otra. Ademas, da una idea a alto nivel de como funciona
281                                          y como aparecen integrados los diferentes elementos.
282                                 </p>
283                                 <div align="center">
284             <img src="graficoNavegacion.jpg"
285                 alt="Gráfico de Navegación" />
286         </div>
287                                 <h2><a name="desarrollo_archivos">Formato de Archivos</a></h2>
288         <p>
289             Todos los archivos del sistema se almacenan en el directorio data.
290             Varios archivos son creados en <em>tiempo de ejecución</em> por el
291             servidor web, por lo tanto este directorio debe tener permisos de
292             escritura para el usuario con el que corre dicho servidor.
293             Además las fotos de los usuarios se guardan en el directorio fotos y
294             también se crean en <em>tiempo de ejecución</em>, por lo tanto este
295             directorio también debe tener permisos de escritura para el servidor
296             web. El nombre del archivo de la foto de un usuario es su número de
297             registro (si es socio) o código (si es asesor).
298         </p>
299         <p>
300             A continuación se describe el formato de cada archivo.
301         </p>
302         <h3><a name="desarrollo_archivos_int_2005_txt">int_2005.txt</a></h3>
303         <p>
304             Este archivo tiene formato <acronym lang="en"
305             title="Comma Separated Values">CSV</acronym> y está cargado previo
306             a la ejecución del sistema con todos los integrantes que
307             potencialmente serán <em>socios</em> del sistema.
308             Los campos del archivo son:
309         </p>
310         <ol>
311             <li>Número de registro</li>
312             <li>Nombre del usuario</li>
313             <li>Apellido del usuario</li>
314         </ol>
315         <h3><a name="desarrollo_archivos_ase_2005_txt">ase_2005.txt</a></h3>
316         <p>
317             Este archivo tiene formato <acronym lang="en"
318             title="Comma Separated Values">CSV</acronym> y está cargado previo
319             a la ejecución del sistema con todos los integrantes que
320             potencialmente serán <em>asesores</em> del sistema.
321             Los campos del archivo son:
322         </p>
323         <ol>
324             <li>Código (formato A+año+número correlativo)</li>
325             <li>Nombre del usuario</li>
326             <li>Apellido del usuario</li>
327         </ol>
328         <h3><a name="desarrollo_archivos_users_csv">users.csv</a></h3>
329         <p>
330             Este archivo tiene formato <acronym lang="en"
331             title="Comma Separated Values">CSV</acronym> y se crea en
332             <em>tiempo de ejecución</em>. En él se almacenan los usuarios
333             registrados en el sistema.
334             Los campos del archivo son:
335         </p>
336         <ol>
337             <li>
338                 Número de registro/Código (dependiendo de si es socio o
339                 asesor)
340             </li>
341             <li>Contraseña del usuario</li>
342             <li>Dirección de correo electrónico del usuario</li>
343         </ol>
344         <h3><a name="desarrollo_archivos_admin_txt">admin.txt</a></h3>
345         <p>
346             Este archivo tiene formato de texto plano y almacena un número de
347             registro o código (según sea socio o asesor) por línea (aunque
348             también puede ser visto como un archivo <acronym lang="en"
349             title="Comma Separated Values">CSV</acronym> con un sólo campo).
350             Su función es almacenar los identificadores de los 2 administradores
351             del sistema y es creado en <em>tiempo de ejecución</em>.
352         </p>
353         <h3><a name="desarrollo_archivos_creditos_csv">creditos.*.csv</a></h3>
354         <p>
355             Este archivo tiene formato <acronym lang="en"
356             title="Comma Separated Values">CSV</acronym> modificado, ya que
357             incluye en los primeros 11 bytes un <em>índice</em> a la última
358             entrada. Es decir, en los primeros 11 bytes se almacena la posición
359             del archivo en la que se encuentra el último <em>registro</em> CSV.
360             Dicha posición, se almacena en codificación ASCII como un número de
361             10 cifras (con ceros delante) y un caracter de fin de línea al
362             final. Como normalmente sólo importa el último registro del archivo,
363             esto acelera mucho, ya que no hay que recorrerlo completo para
364             obtener dicho registro. De esta manera el acceso es casi directo y
365             se conserva la historia de la variación de los créditos.
366         </p>
367         <p>
368             Este archivo se crea en <em>tiempo de ejecución</em>, uno por cada
369             socio, en el momento en que se registra en el sistema. El nombre
370             del archivo incluye el número de registro del socio
371             (creditos.[nro_registro].csv) y en él se almacena la
372             historia de créditos de dicho usuario.
373             Los campos del archivo son:
374         </p>
375         <ol>
376             <li>Timestamp con la fecha en la que se creó la entrada</li>
377             <li>Cantidad de créditos que tiene el socio</li>
378             <li>
379                 Cantidad de respuestas con <span lang="en">ranking</span>
380                 2 o más que le falta para obtener los 5 créditos extra
381             </li>
382             <li>Cantidad de días que lleva sin preguntar</li>
383         </ol>
384         <p>
385             Este archivo se actualiza en etapas distintas (siempre que se
386             actualiza, se agrega un nuevo registro con los nuevos datos y se
387             actualiza el <em>índice</em>). Cuando el usuario ingresa al sistema,
388             se recalculan los créditos para ver si se le deben restar por
389             cantidad de días sin preguntar. Se resta 1 crédito por cada 30 días
390             sin responder. El cálculo realizado es el siguiente:
391         </p>
392         <p>
393             Llamaremos FECHA al campo 1 del registro del archivo leído, CREDITOS
394             al campo 2 y DIAS al campo 4. Llamaremos FECHA_ACTUAL a la fecha del
395             instante del login. Ambas fechas expresadas como timestamps. Para
396             calcular la diferencia en días entre 2 fechas, simplemente se restan
397             y se divide por 86400 (cantidad de segundos en un día). Entonces
398             para saber la cantidad de días que hace que no se pregunta en el
399             instante del login (DIAS_NUEVO), se realiza: <code>DIAS_NUEVO =
400             DIAS + (FECHA_ACTUAL - FECHA) / 86400</code>. Luego, si DIAS_NUEVO
401             es más que 30, se calculan los nuevos créditos (CREDITOS_NUEVO) como
402             <code>CREDITOS_NUEVO = CREDITOS - (DIAS_NUEVO / 30)</code> y la
403             nueva cantidad de días sin preguntar restantes (DIAS_RESTO) como
404             <code>DIAS_RESTO = DIAS_NUEVO % 30</code> (siendo % el resto de la
405             división entera), ya que estos días sin preguntar <em>extra</em> que
406             todavía no llegan a sumar 30 como para restar créditos, deben ser
407             considerados para futuros cálculos. Finalmente en el archivo de
408             créditos se guarda un nuevo registro con los datos CREDITOS_NUEVO y
409             DIAS_RESTO en los campos 2 y 4 respectivamente. El resto de los
410             campos (exceptuando la fecha, que siempre se guarda con la fecha de
411             modificación del archivo) quedan intactos.
412         </p>
413         <p>
414             El otro caso en donde se actualiza este archivo (se actualizan los
415             créditos) es cuando un socio realiza una pregunta. En este caso,
416             solamente se resta un crédito (campo 2) y pone se resetean los días
417             sin preguntar (el campo 4 se pone en cero).
418         </p>
419         <p>
420             Finalmente, el último caso en donde se actualiza este archivo (se
421             recalculan los créditos) es cuando un usuario califica una
422             respuesta. Se suma a CREDITOS la calificación de dicha respuesta y
423             si la respuesta está calificada con un valor igual o superior a 2
424             se suma uno al campo 3 (BONUS) y se verifica si es igual o superior
425             a 5 (en realidad jamás será superior a 5). Si lo es, se pone en cero
426             BONUS y se suma 5 CREDITOS.
427         </p>
428         <h3><a name="desarrollo_archivos_log_csv">log.*.csv</a></h3>
429         <p>
430             Este archivo tiene formato <acronym lang="en"
431             title="Comma Separated Values">CSV</acronym>. y se crea en
432             <em>tiempo de ejecución</em>, uno por cada usuario, en el momento
433             en que se registra en el sistema. El nombre del archivo incluye el
434             número de registro del socio o código del asesor según el caso
435             (log.[nro_registro/codigo].csv) y en él se almacena la el log de
436             actividades (es decir, cada vez que el usuario realiza una acción en
437             el sistema, se agrega una entrada a este archivo que la describe).
438             Los campos del archivo son:
439         <ol>
440             <li>Timestamp con la fecha en la que se creó la entrada</li>
441             <li>Descripción de la acción realizada</li>
442         </ol>
443                                 <h3><a name="desarrollo_archivos_preguntas_csv">preguntas.csv</a></h3>
444         <p>
445             Este archivo tiene formato <acronym lang="en"
446             title="Comma Separated Values">CSV</acronym>. y se crea en
447             <em>tiempo de ejecución</em>. A medida que se van dando de alta las
448                                                 preguntas, se agrega una línea al final. Se guarda toda la información
449                                                 necesaria para poder operar con las preguntas. Cuando una pregunta se 
450                                                 da de baja, <em>no</em> es eliminada de este archivo. De esta forma, 
451                                                 queda un registro histórico de las preguntas que fueron dadas de alta en 
452                                                 el sistema.
453                                                 Los campos del archivo son:
454         <ol>
455             <li>Id de la pregunta</li>
456             <li>Id del usuario autor de la pregunta</li>
457                                                 <li>Timestamp con la fecha de creación de la pregunta</li>
458                                                 <li>Texto de la pregunta</li>
459         </ol>
460                                 <h3><a name="desarrollo_archivos_respuestas_csv">respuestas.csv</a></h3>
461         <p>
462             Este archivo tiene formato <acronym lang="en"
463             title="Comma Separated Values">CSV</acronym>. y se crea en
464             <em>tiempo de ejecución</em>. Cuando se da de alta una respuesta a una
465                                                 pregunta, se da de alta un nuevo registro en este archivo. El id de las 
466                                                 respuestas es simplemente el orden en el que fueron loguadas. Se guarda información
467                                                 de la pregunta que se esta respondiendo para que sea mas sencilla la operatoria con 
468                                                 las respuestas, y pueda trabajar de manera independiente a las preguntas.
469                                                 Los campos del archivo son:
470         <ol>
471             <li>Id de la pregunta que se esta respondiendo</li>
472             <li>Id del usuario autor de la pregunta que se esta respondiendo</li>
473                                                 <li>Id del usuario autor de la respuesta</li>
474                                                 <li>Timestamp con la fecha de creación de la respuesta</li>
475                                                 <li>Texto de la respuesta</li>
476         </ol>
477                                 <h3><a name="desarrollo_archivos_calificacion_csv">calificacion.csv</a></h3>
478         <p>
479             Este archivo tiene formato <acronym lang="en"
480             title="Comma Separated Values">CSV</acronym>. y se crea en
481             <em>tiempo de ejecución</em>. Cuando un usuario autor de una pregunta
482                                                 califica las respuestas a dicha pregunta, se da de alta un registro en este archivo.
483                                                 Luego, se asociara al calificacion a la respuesta correspondiente. Si una respuesta 
484                                                 no aparece en este archivo, es que todavía no fue calificada.
485                                                 Los campos del archivo son:
486         <ol>
487             <li>Id de la respuesta calificada</li>
488             <li>Puntaje</li>
489         </ol>
490                                 <h3><a name="desarrollo_archivos_desactivadas_csv">desactivadas.csv</a></h3>
491         <p>
492             Este archivo tiene formato <acronym lang="en"
493             title="Comma Separated Values">CSV</acronym>. y se crea en
494             <em>tiempo de ejecución</em>. Cuando un administrador da de baja una pregunta,
495                                                 simplemente se ingresa el id de la misma en este archivo. A partir de ese momento, el 
496                                                 listador la ignorará al momento de mostrar las preguntas por pantalla.
497                                                 Los campos del archivo son:
498         <ol>
499             <li>Id de la pregunta</li>
500             <li>Timestamp con la fecha de baja</li>
501         </ol>
502         <h3><a name="temas_csv">temas.csv</a></h3>
503         <p>
504             Este archivo tiene formato <acronym lang="en"
505             title="Comma Separated Values">CSV</acronym>. Se va cargando por los administradores durante
506             la ejecución del sistema.
507             Los campos del archivo son:
508         </p>
509         <ol>
510             <li>ID que identifica unívocamente a los temas.</li>
511             <li>Usuario que cargo el mismo.</li>
512             <li>Nombre del mismo.</li>
513             <li>Ruta al icono del mismo.</li>
514             <li>Breve descripción.</li>
515             <li>Fecha de alta/modificación.</li>
516         </ol>
517         <h3><a name="infos_csv">infos.csv</a></h3>
518         <p>
519             Este archivo tiene formato <acronym lang="en"
520             title="Comma Separated Values">CSV</acronym>. Se va cargando por los asesores/socios durante
521             la ejecución del sistema.
522             Los campos del archivo son:
523         </p>
524         <ol>
525             <li>ID que identifica univocamente a las informaciones.</li>
526             <li>ID del tema al cual pertenece.</li>
527             <li>URL (link) a la información otorgada.</li>
528             <li>Usuario que cargo el mismo.</li>
529             <li>Breve descripción.</li>
530             <li>Cantidad de visitas a la URL (link) proporcionada.</li>
531             <li>Fecha de alta/modificación.</li>
532         </ol>
533         <h3><a name="comentarios_csv">comentarios.*.csv</a></h3>
534         <p>
535             Este archivo tiene formato <acronym lang="en"
536             title="Comma Separated Values">CSV</acronym>. Se va cargando por los asesores/socios durante
537             la ejecución del sistema.
538             Los campos del archivo son:
539         </p>
540         <ol>
541                 <li>ID que identifica univocamente a las informaciones.</li>
542             <li>Usuario que cargó el mismo.</li>
543             <li>Comentario.</li>
544             <li>Fecha de alta/modificación.</li>
545         </ol>
546         <h1><a name="herramientas">Herramientas de desarrollo</a></h1>
547         <p>
548             Cada integrante eligió herramientas de desarrollo propias, más allá
549             de las herramientas obligatorias que había que usar
550             indefectiblemente para realizar el TP (como PHP y Apache).
551             A continuación se enumeran las herramientas utilizadas por cada
552             integrante.
553         </p>
554         <h2>Leandro Lucarella</h2>
555         <dl>
556             <dt>Navegador</dt>
557             <dd><p>Mozilla Firefox, w3m</p></dd>
558             <dt>Editor de texto</dt>
559             <dd><p>VIM</p></dd>
560             <dt>Validador</dt>
561             <dd><p>Herramientas de w3c: tidy y el servicio de validación
562                 online (http://validator.w3.org/)</p></dd>
563             <dt>Herramientas de diseño de HTML</dt>
564             <dd><p>Ninguna</p></dd>
565         </dl>
566         <h2>Jonathan Schein</h2>
567         <dl>
568             <dt>Navegador</dt>
569             <dd><p>Mozilla Firefox, Internet Explorer 6</p></dd>
570             <dt>Editor de texto</dt>
571             <dd><p>HTML-Kit, Notepad</p></dd>
572             <dt>Validador</dt>
573             <dd><p>Herramientas de w3c: tidy y el servicio de validación
574                 online (http://validator.w3.org/)</p></dd>
575             <dt>Herramientas de diseño de HTML</dt>
576             <dd><p>Ninguna</p></dd>
577         </dl>
578         <h2>Sebastián Arena</h2>
579         <dl>
580             <dt>Navegador</dt>
581             <dd><p>Mozilla Firefox, Internet Explorer 6</p></dd>
582             <dt>Editor de texto</dt>
583             <dd><p>EmEditor</p></dd>
584             <dt>Validador</dt>
585             <dd><p>Herramientas de w3c: tidy y el servicio de validación
586                 online (http://validator.w3.org/)</p></dd>
587             <dt>Herramientas de diseño de HTML</dt>
588             <dd><p>Ninguna</p></dd>
589         </dl>
590         <h1><a name="configuracion">Configuración del servidor</a></h1>
591         <p>
592             El servidor no debe ser configurado de ninguna forma en particular,
593             sólo debe tener activado el módulo de PHP y la extensión user_dir de
594             apache si va a ser instalado en el directorio public_html de un
595             usuario. El resto de las configuración se realizan desde el mismo
596             sistema, por lo que no es necesario hacer modificaciones ni a la
597             configuración del apache ni a la del PHP.
598         </p>
599         <p>
600             Si no estuviera configurado el módulo user_dir, habría que agregar
601             al apache las siguiente líneas:
602         </p>
603         <pre>
604 LoadModule userdir_module libexec/mod_userdir.so
605 AddModule mod_userdir.c
606 UserDir public_html
607         </pre>
608         <p>
609             Si no estuviera configurado el módulo de php, habría que agregar
610             al apache las siguiente líneas:
611         </p>
612         <pre>
613 LoadModule php4_module libexec/libphp4.so
614 AddModule mod_php4.c
615 AddType application/x-httpd-php .php
616         </pre>
617         <p>
618             El archivo php.ini no necesita modificaciones a los valores por
619             omisión que trae cuando se instala.
620         </p>
621         <h1><a name="instalacion">Instalación</a></h1>
622         <p>
623             Sólo debe ejecutar el script ./install.sh que se encuentra en el
624             disquette. El script crea el directorio public_html en el directorio
625             del usuario actual (si no existiese) y copia los archivos
626             necesarios, con los permisos pertinentes para que el apache pueda
627             leer o escribir según corresponda. Una vez instalado, el sistema se
628             puede acceder en
629             <a href="http://localhost/~sisdis10/">http://localhost/~sisdis10/</a>
630             (si se instala con el usuario sisdis10, por supuesto).
631         </p>
632         <h1><a name="uso">Modo de uso</a></h1>
633         <h2><a name="uso_modulo_admin">Modulo de Administración</a></h2>
634         <p>
635             Este módulo se compone escencialmente de las páginas descriptas en
636             la sección de <a href="#modulo_admin">desarrollo del módulo de
637             administración</a>. A continuación se describe coloquialmente, en
638             orden lo más cronológico posible, como se usa el módulo.
639         </p>
640         <p>
641             Al sistema siempre se accede por la página
642             <a href="#index_php">index.php</a>, la primera vez que se ejecuta,
643             muestra la <a href="#admin_asociarse_php">página para asociarse</a>,
644             que se ejecuta de un modo especial, haciendo a los usuarios que se
645             asocien administradores hasta que el sistema tenga 2
646             administradores. Es decir, no se puede ingresar al sistema hasat que
647             no hayan 2 usuarios administradores y siempre los 2 primeros
648             usuarios que se asocien, serán administradores.
649         </p>
650         <p>
651             Una vez especificados los 2 administradores, el sistema comienza su
652             ciclo de vida <em>normal</em>, mostrando la pantalla de
653             <a href="#admin_login_php">ingreso</a>, en la cual hay un enlace a
654             la <a href="#admin_asociarse_php">página para asociarse</a>, para
655             que usuarios aún no asociados, puedan hacerlo (esta vez como
656             usuarios comunes, no como administradores). Para asociarse el
657             usuario debe ingresar el número de registro o código (si es asesor),
658             ingresar 2 veces (para evitar errores de tipeo) la contraseña que
659             desea usar, especificar su e-mail y foto que lo identifica.
660         </p>
661         <p>
662             Una vez dentro del sistema, se muestra la
663             <a href="#admin_log_php">página con el log de actividades</a> del
664             usuario, mostrando también la cantidad de créditos disponible (si no
665             es un asesor). Por omisión se muestran las actividades del día
666             actual, pero se puede elegir la fecha desde la cual mostrar las
667             actividades, o incluso mostrar todo.
668         </p>
669         <p>
670             Si el usuario es administrador, se presenta el submenú
671             <strong>Admin</strong>, que posee 2 opciones:
672             <strong>Créditos</strong> y <strong>Cambio de Admin</strong>.
673             La primera presenta la <a href="#admin_creditos_php">página para
674             agregar créditos</a>. Se presentan los usuarios no asesores en
675             una lista, un campo donde ingresar la cantidad de créditos a
676             agregarle y un campo para ingresar la contraseña, ya que es una
677             operación privilegiada que necesita una seguridad extra. La segunda
678             opción presenta <a href="#admin_admin_php">página de cambio de
679             administrador</a>. En esta página se muestra una lista de usuario
680             que no sean administradores, para elegir a quien <em>ceder</em> los
681             permisos de administrador. Al igual que la opción anterior, hay que
682             reingresar la contraseña, por ser una operación <em>delicada</em>.
683             Los permisos de administración se <em>ceden</em> al usuario
684             seleccionado, dejando de ser administrador el usuario actual, para
685             cumplir la restricción de que siempre hayan 2 y sólo 2
686             administradores en el sistema.
687         </p>
688         <p>
689             Finalmente está la opción <strong>Salir</strong> que permite al
690             usuario <a href="#admin_logout_php">salir del sistema</a>. Si el
691             usuario no sale del sistema pero está inactivo por más de media
692             hora, la sesión caduca y el usuario deberá volver a ingresar. Si
693             el usuario cierra el navegador o se va del sistema de otra forma,
694             y luego, antes de que se cumpla media hora de inactividad, retorna
695             al sistema, la <a href="#index_php">página de inicio</a> reconocerá
696             la sesión, y hará que el usuario continúe en la misma pantalla
697             donde había abandonado la sesión.
698         </p>
699         <h2><a name="uso_modulo_faqs">Modulo de FAQs</a></h2>
700                                 <p>
701                         El módulo se encarga de la administracion de el subsistema de preguntas y
702                                                 respuestas. Maneja altas y bajas, asi como tambien ingreso de respuestas y 
703                                                 ranking de cada una. Mientras mejor es la respuesta de un usuario (que será
704                                                 calificado por el autor de una pregunta), mejor será su puntuación. Esos puntos
705                                                 son créditos para poder seguir efectuando preguntas.
706         </p>
707                                 <p>
708                                           La página <a href="#faq_listarPreguntas_php">Listar Preguntas</a> muestra 
709                                                 las preguntas ingresadas en el sistema. Para cada pregunta, se muestra la fecha 
710                                                 de creación, el nombre de autor, con su correspondiente foto, la pregunta en si, 
711                                                 la posibilidad de accederá a todas las respuestas para dicha pregunta, así como 
712                                                 también la posibilidad de responder la pregunta ( solo en caso que quien esta 
713                                                 logueado en el sistema no sea el mismo usuario que formulo la pregunta ). El listado 
714                                                 de preguntas aparece paginado cada 2 ( se muestran dos preguntas por pantalla ). 
715                                                 Debajo de las preguntas aparece el navegador. En caso que el usuario logueado sea un 
716                                                 administrador, en la parte inferior de cada pantalla aparece un link que permite
717                                                 acceder a la página de <a href="#faq_desactivarPregunta_php">Baja de Preguntas.</a>
718                                 </p>
719                                 <p>
720                                           El <a href="#faq_listarRespuestas_php">listador de respuestas</a> muestra ordenadas por ranking 
721                                                 las respuestas a una pregunta seleccionada. Utiliza el paginador, al igual que el listador de preguntas, 
722                                                 y también lo hace de a dos respuestas por pantalla. Muestra la información del usuario
723                                                 que genero la respuesta ( foto y nombre ), la respuesta y el ranking de la misma. Si la
724                                                 respuesta todavía no fue evaluada por el autor de la pregunta, muestra un mensaje que 
725                                                 indica que no hay ranking para esa pregunta. Si el usuario que esta accediendo a la lista
726                                                 de respuestas es el mismo que formulo la pregunta y todavía no calificó a la misma, aparece 
727                                                 un botón que lo redirecciona a la página de calificación de preguntas. 
728                                 </p>
729                                 <p>
730                                           Desde el menú de la aplicación se puede acceder a la página que permite <a href="#faq_ingresarPregunta_php">
731                                                 agregar una pregunta</a>. En caso de que el usuario logueado tenga los créditos para hacerlo, podrá formular 
732                                                 una pregunta que se publicara en la <a href="#faq_listarPreguntas_php">lista de preguntas</a>. Si el usuario no
733                                                 contara con los créditos suficientes, un warning lo alertara y le sugerirá que pida créditos al administrador 
734                                                 del sistema. El usuario podrá ingresas desde esta pantalla tantas preguntas como créditos tenga.
735                                 </p>
736                                 <p>
737                                                 Desde el listado de preguntas se puede acceder a la pantalla que permite <a href="#faq_responderPregunta_php"> 
738                                                 responder la pregunta </a>. La misma muestra en el encabezado la pregunta que se esta respondiendo. 
739                                                 Al lograr un ingreso satisfactorio de una respuesta, aparece un mensaje que avisa al 
740                                                 usuario que su respuesta fue dada de alta en el sistema. Esta respuesta quedara pendiente
741                                                 de calificar por parte del autor de la pregunta que se esta respondiendo. Cualquier usuario
742                                                 logueado en el sistema puede acceder a responder preguntas. Únicamente no podrá responder una
743                                                 pregunta el autor de la misma. 
744                                 </p>
745                                 <p>
746                                           La pantalla de <a href="#faq_calificarRespuesta_php">calificación de respuesta</a> solo puede ser accedida 
747                                                 por el autor de la pregunta que tiene dicho ítem como respuesta. En esta pantalla, desde un combo, se
748                                                 puede elegir alguna de las cuatro categorías de calificación ( a cada una le corresponde un 
749                                                 puntaje ). Inmediatamente se le acreditara a quien pregunta tantos créditos como puntos valgan la 
750                                                 calificación de la respuesta. La respuesta solo podrá ser calificada una vez, luego de ser calificada,
751                                                 desaparecerá el botón que permite acceder a la pantalla para ese ítem. 
752                                 </p>
753                                 <p>
754                                           Si un administrador lo desea, desde la pantalla de <a href="#faq_listarPreguntas_php">listado de preguntas</a>
755                                                 es posible acceder a la pantalla de <a href="#faq_desactivarPregunta_php">baja de preguntas</a> y pasar una pregunta 
756                                                 a un log historico. De esta manera ni la pregunta ni sus respuestas seran mostradas mas por el listador. La lista de preguntas
757                                                 a desactivar aparece para seleccionar de un combo.  
758                                 </p>
759         <h2><a name="uso_modulo_info">Modulo de Info</a></h2>
760         <p>
761                 El módulo de info permite el ingreso de temas, informaciones y comentarios,
762                 y para la interaccion con el mismo se definieron distintos menúes en base
763                 a los roles presentes en la plataforma.
764                 El siguiente menu es el que se le presenta al asesor o socio.
765         </p>
766         <div align="center">
767             <img src="info.menu.asesor.jpg"
768                 alt="Captura de pantalla de info.menu.asesor.jpg" />
769         </div>
770         <p>
771                 El siguiente menu es el que se le presenta al administrador.
772         </p>
773         <div align="center">
774             <img src="info.menu.administrador.jpg"
775                 alt="Captura de pantalla de info.menu.administrador.jpg" />
776         </div>
777         <p>
778                 Desde <a href="#info_ingresarTemas_php">info.ingresarTemas.php</a> el usuario puede ingresar nuevos temas.
779                 (Solo pueden acceder los usuarios administradores).<br />Los campos a completar son:
780                 </p>
781                 <ul>
782                 <li><strong>Tema</strong>: Nombre del Tema.</li>
783                 <li><strong>Icono</strong>: Cada Tema tiene un ícono asociado.</li>
784                 <li><strong>Descripción</strong>: Cada Tema tiene un descripción asociada.</li>
785                 </ul>
786                 <p>
787                 Una vez completados se procede a "Guardar Tema".<br />
788                 Se mostrará un mensaje indicando si la operación fue exitosa o no.
789                 En cualquiera de los dos casos se mantienen los datos en los campos, y se 
790                 permite la modificación de lo recien insertado, a modo de correccion de posibles errores 
791                 del usuario al tipear.<br />De retirarse de la página,  o presionar sobre "Nuevo Tema" 
792                 se pierde la posibilidad de modificar (al presionar sobre "Nuevo Tema" se pedirá la confirmación
793                 antes de cambiar de contexto).
794         </p>
795         <p>
796                 Desde <a href="#info_listarTemas_php">info.listarTemas.php</a> el usuario puede ver la lista de temas disponibles 
797                 para ingresar informaciones. La página se muestra paginada de a 5 temas por vez, se puede acceder a 
798                 las diferentes páginas navegando el menu superior. (La página actual queda marcada en negrita).
799                 </p>
800         <p>
801                 Desde <a href="#info_ingresarInfo_php">info.ingresarInfo.php</a> el usuario puede ingresar nuevas informaciones.
802                 Los campos a completar son:
803         </p>
804                 <ul>
805                 <li><strong>Tema</strong>: se debe seleccionar el tema de la lista disponible.</li>
806                 <li><strong>URL</strong>: es la URL hacia la información que se está ingresando.</li>
807                 <li><strong>Comentario</strong>: una breve descripción de la información provista.</li>
808                 </ul>
809                 <p>
810                 Una vez completados se procede a "Guardar Información".<br />
811                 Se mostrará un mensaje indicando si la operación fue exitosa o no.
812                 Se mantienen los datos en los campos, y se permite la modificación de lo recién insertado, 
813                 a modo de correccion de posibles errores del usuario al tipear.<br />De retirarse de la página, 
814                 o presionar sobre "Nueva Información" se pierde la posibilidad de modificar (al presionar sobre 
815                 "Nueva Información" se pedirá la confirmación antes de cambiar de contexto).
816         </p>
817         <p>
818                 Desde <a href="#info_listarInfo_php">info.listarInfo.php</a> el usuario puede ver la lista de informaciones disponibles.
819                 La página se muestra paginada de a 5 informaciones por vez, se puede acceder a las diferentes
820                 páginas navegando el menu superior. (La página actual queda marcada en negrita).<br />
821                 Se despliega el icono del tema al cual pertenece, así como la imagen del usuario que cargó
822                 dicha información. A continuación se muestra la URL correspondiente, con su comentario.
823                 Por último el ranking ( que es la cantidad de accesos que hubo a dicha URL ) y se puede
824                 acceder finalmente a la sección de comentarios sobre la información haciendo click en
825                 "Ver Comentarios".<br />
826                 Esta sección está disponible ordenada por ranking de acceso a la URL, o, eligiendo en "Ver Tema",
827                 se listan las informaciones del tema, y luego dentro de ahi las mismas ordenadas por ranking.
828         </p>
829         <p>
830                 Esta página es accedida desde "Ver Comentarios" que se encuentra disponible para cada información presente.
831                 La misma muestra los comentarios agregados hasta el momento.
832                 La página se muestra paginada de a 5 temas por vez, se puede acceder a las diferentes
833                 páginas navegando el menu superior. (La página actual queda marcada en negrita).
834                 Se presenta el ícono del tema al cual pertenece la información, y por supuesto el comentario en cuestión.
835                 Luego se presenta el ícono y apellido del usuario que cargó el comentario (si el usuario que cargó el comentario
836                 es el mismo que cargó la información entonces se muestra solamente el apellido), y finalmente se muestra el comentario.
837                 Se puede acceder a cargar un nuevo comentario desde "Ingresar Comentario" (esto solo puede ser realizado por los asesores
838                 o socios.
839         </p>
840         <p>
841                 Desde <a href="#info_ingresarComentario_php">info.ingresarComentario.php</a> el usuario puede ingresar nuevos comentarios a informaciones existentes.
842                 El campo a completar es:
843         </p>
844         <ul>
845                         <li><strong>Comentario</strong></li>
846                 </ul>
847                 <p>
848                 Una vez completados se procede a "Guardar Comentario".<br />
849                 Se mostrará un mensaje indicando si la operacion fue exitosa o no.
850                 Se mantienen los datos en los campos, y se permite la modificación de lo recién insertado,
851                         a modo de correccion de posibles errores del usuario al tipear.<br />De retirarse de la página, 
852                         o presionar sobre "Nuevo Comentario" se pierde la posibilidad de modificar (al presionar sobre "Nuevo Comentario" 
853                         se pedirá la confirmación antes de cambiar de contexto).
854         </p>
855         <p>
856                 En <a href="#info_mencionEspecial_php">info.mencionEspecial.php</a> se lista el o los usuarios que hayan publicado informaciones con alto ranking.
857                 Se suma para cada usuario los rankings de las páginas publicadas, y luego se muestran aquellos que con el
858                 ranking mas alto ( se muestra mas de uno cuando el ranking es el mismo para varios usuarios ).
859         </p>
860     </body>
861 </html>
862 <!-- vim: set et sw=4 sts=4 : -->