X-Git-Url: https://git.llucax.com/z.facultad/75.43/tp1.git/blobdiff_plain/6e6538b18dfeef58d5db02165f80162c727d5092..92f54d177f40f428855f21b6618c856f54c424e0:/docs/informe/informe.html diff --git a/docs/informe/informe.html b/docs/informe/informe.html index eb81573..ac1d567 100644 --- a/docs/informe/informe.html +++ b/docs/informe/informe.html @@ -6,7 +6,7 @@
Introducción a Sistemas Distribuídos (75.43)
+Introducción a Sistemas Distribuidos (75.43)
Trabajo Práctico Número 1
Esta página es el punto de partida del sistema. Normalmente se
encarga de mostrar el
-
Es la página que realmente se encarga de hacer el
login. Debe ingresarse el código de usuario
@@ -70,7 +71,7 @@
-
Esta página, al igual que index.php, no
tiene contenido propio, sino que se encarga de borrar todos los
@@ -80,7 +81,7 @@
Si el usuario no existe, o si está mal el password, etc, se muestra
el correspondiente mensaje de error.
Esta página asocia a un integrante del grupo (presente en el archivo
int_2005.txt si es socio o ase_2005.txt si es asesor). Si el sistema
@@ -95,7 +96,7 @@
-
Esta página muestra el log de actividades del
usuario. Permite elegir la fecha desde la cual se quieren ver las
@@ -105,7 +106,7 @@
-
En esta página el administrador puede agregar créditos a los
usuarios. Para realizar esta tarea el administrador debe ingresar su
@@ -121,7 +122,7 @@
-
A través de esta página un administrador puede ceder sus
permisos de administración. Una vez cedidos, este usuario dejará de
@@ -134,24 +135,156 @@
-
+ Los siguientes dos graficos describen como fue pensado el sistema a nivel
+ clases, y como se integrarian las diferentes partes, para que, pese a contar
+ con tres modulos separados, quede una unica aplicacion homogenea. Como punto de
+ partida entonces se realizaron estos dos graficos que sirvieron como guia, y
+ a lo largo del desarrollo fueron actualizandose. Se adjuntan aqui sus versiones
+ finales.
+
+ El diagrama de clases se penso con el fin de poder reutilizar la mayor cantidad
+ de codigo posible, y de dividir de forma mas clara las tareas. La idea de estas
+ clases, principalmente, es que sean las entidades que son persistidas en los archivos
+ de texto, para tener un manejo mas sencillo y eficiente de la informacion.
+
+ Este esquema permite ver la interrelación entre las diferentes pantallas del sistema
+ y como se puede acceder de una a la otra. Ademas, da una idea a alto nivel de como funciona
+ y como aparecen integrados los diferentes elementos.
+
Todos los archivos del sistema se almacenan en el directorio data.
Varios archivos son creados en tiempo de ejecución por el
@@ -249,11 +382,12 @@
- Este archivo se actualiza en etapas distintas. Cuando el usuario
- ingresa al sistema, se recalculan los créditos para ver si se le
- deben restar por cantidad de días sin preguntar. Se resta 1 crédito
- por cada 30 días sin responder. El cálculo realizado es el
- siguiente:
+ Este archivo se actualiza en etapas distintas (siempre que se
+ actualiza, se agrega un nuevo registro con los nuevos datos y se
+ actualiza el índice). Cuando el usuario ingresa al sistema,
+ se recalculan los créditos para ver si se le deben restar por
+ cantidad de días sin preguntar. Se resta 1 crédito por cada 30 días
+ sin responder. El cálculo realizado es el siguiente:
Llamaremos FECHA al campo 1 del registro del archivo leído, CREDITOS
@@ -268,7 +402,7 @@
Finalmente, el último caso en donde se actualiza este archivo (se
- recalculan los créditos) es cuando un usuario califica una respuesta
- con un valor igual o superior a 2. En este caso se suma uno al campo
- 3 y se verifica si es igual o superior a 5 (en realidad jamás será
- superior a 5). Si lo es, se pone en cero y se agregan 5 créditos.
+ recalculan los créditos) es cuando un usuario califica una
+ respuesta. Se suma a CREDITOS la calificación de dicha respuesta y
+ si la respuesta está calificada con un valor igual o superior a 2
+ se suma uno al campo 3 (BONUS) y se verifica si es igual o superior
+ a 5 (en realidad jamás será superior a 5). Si lo es, se pone en cero
+ BONUS y se suma 5 CREDITOS.
@@ -303,6 +439,109 @@
+ Este archivo tiene formato CSV. y se crea en
+ tiempo de ejecución. A medida que se van dando de alta las
+ preguntas, se agrega una línea al final. Se guarda toda la información
+ necesaria para poder operar con las preguntas. Cuando una pregunta se
+ da de baja, no es eliminada de este archivo. De esta forma,
+ queda un registro histórico de las preguntas que fueron dadas de alta en
+ el sistema.
+ Los campos del archivo son:
+
+ Este archivo tiene formato CSV. y se crea en
+ tiempo de ejecución. Cuando se da de alta una respuesta a una
+ pregunta, se da de alta un nuevo registro en este archivo. El id de las
+ respuestas es simplemente el orden en el que fueron loguadas. Se guarda información
+ de la pregunta que se esta respondiendo para que sea mas sencilla la operatoria con
+ las respuestas, y pueda trabajar de manera independiente a las preguntas.
+ Los campos del archivo son:
+
+ Este archivo tiene formato CSV. y se crea en
+ tiempo de ejecución. Cuando un usuario autor de una pregunta
+ califica las respuestas a dicha pregunta, se da de alta un registro en este archivo.
+ Luego, se asociara al calificacion a la respuesta correspondiente. Si una respuesta
+ no aparece en este archivo, es que todavía no fue calificada.
+ Los campos del archivo son:
+
+ Este archivo tiene formato CSV. y se crea en
+ tiempo de ejecución. Cuando un administrador da de baja una pregunta,
+ simplemente se ingresa el id de la misma en este archivo. A partir de ese momento, el
+ listador la ignorará al momento de mostrar las preguntas por pantalla.
+ Los campos del archivo son:
+
+ Este archivo tiene formato CSV. Se va cargando por los administradores durante
+ la ejecución del sistema.
+ Los campos del archivo son:
+
+ Este archivo tiene formato CSV. Se va cargando por los asesores/socios durante
+ la ejecución del sistema.
+ Los campos del archivo son:
+
+ Este archivo tiene formato CSV. Se va cargando por los asesores/socios durante
+ la ejecución del sistema.
+ Los campos del archivo son:
+
@@ -327,41 +566,297 @@
Mozilla Firefox, Internet Explorer 6 HTML-Kit, Notepad Herramientas de w3c: tidy y el servicio de validación
+ online (http://validator.w3.org/) Ninguna Mozilla Firefox, Internet Explorer 6 EmEditor Herramientas de w3c: tidy y el servicio de validación
+ online (http://validator.w3.org/) Ninguna
- COMPLETAR!!! Por ahora nada, sólo que ande PHP.
+ El servidor no debe ser configurado de ninguna forma en particular,
+ sólo debe tener activado el módulo de PHP y la extensión user_dir de
+ apache si va a ser instalado en el directorio public_html de un
+ usuario. El resto de las configuración se realizan desde el mismo
+ sistema, por lo que no es necesario hacer modificaciones ni a la
+ configuración del apache ni a la del PHP.
+
+ Si no estuviera configurado el módulo user_dir, habría que agregar
+ al apache las siguiente líneas:
+
+ Si no estuviera configurado el módulo de php, habría que agregar
+ al apache las siguiente líneas:
+
+ El archivo php.ini no necesita modificaciones a los valores por
+ omisión que trae cuando se instala.
- COMPLETAR!!! Supongo que es suficiente con copiar los archivos de
- src/ al public_html, ponerle permisos de lectura para el apache en
- todo y permisos de escritura en el directorio data/ y fotos/.
+ Sólo debe ejecutar el script ./install.sh que se encuentra en el
+ disquette. El script crea el directorio public_html en el directorio
+ del usuario actual (si no existiese) y copia los archivos
+ necesarios, con los permisos pertinentes para que el apache pueda
+ leer o escribir según corresponda. Una vez instalado, el sistema se
+ puede acceder en
+ http://localhost/~sisdis10/
+ (si se instala con el usuario sisdis10, por supuesto).
+ Este módulo se compone escencialmente de las páginas descriptas en
+ la sección de desarrollo del módulo de
+ administración. A continuación se describe coloquialmente, en
+ orden lo más cronológico posible, como se usa el módulo.
+
+ Al sistema siempre se accede por la página
+ index.php, la primera vez que se ejecuta,
+ muestra la página para asociarse,
+ que se ejecuta de un modo especial, haciendo a los usuarios que se
+ asocien administradores hasta que el sistema tenga 2
+ administradores. Es decir, no se puede ingresar al sistema hasat que
+ no hayan 2 usuarios administradores y siempre los 2 primeros
+ usuarios que se asocien, serán administradores.
+
+ Una vez especificados los 2 administradores, el sistema comienza su
+ ciclo de vida normal, mostrando la pantalla de
+ ingreso, en la cual hay un enlace a
+ la página para asociarse, para
+ que usuarios aún no asociados, puedan hacerlo (esta vez como
+ usuarios comunes, no como administradores). Para asociarse el
+ usuario debe ingresar el número de registro o código (si es asesor),
+ ingresar 2 veces (para evitar errores de tipeo) la contraseña que
+ desea usar, especificar su e-mail y foto que lo identifica.
+
+ Una vez dentro del sistema, se muestra la
+ página con el log de actividades del
+ usuario, mostrando también la cantidad de créditos disponible (si no
+ es un asesor). Por omisión se muestran las actividades del día
+ actual, pero se puede elegir la fecha desde la cual mostrar las
+ actividades, o incluso mostrar todo.
+
+ Si el usuario es administrador, se presenta el submenú
+ Admin, que posee 2 opciones:
+ Créditos y Cambio de Admin.
+ La primera presenta la página para
+ agregar créditos. Se presentan los usuarios no asesores en
+ una lista, un campo donde ingresar la cantidad de créditos a
+ agregarle y un campo para ingresar la contraseña, ya que es una
+ operación privilegiada que necesita una seguridad extra. La segunda
+ opción presenta página de cambio de
+ administrador. En esta página se muestra una lista de usuario
+ que no sean administradores, para elegir a quien ceder los
+ permisos de administrador. Al igual que la opción anterior, hay que
+ reingresar la contraseña, por ser una operación delicada.
+ Los permisos de administración se ceden al usuario
+ seleccionado, dejando de ser administrador el usuario actual, para
+ cumplir la restricción de que siempre hayan 2 y sólo 2
+ administradores en el sistema.
+
+ Finalmente está la opción Salir que permite al
+ usuario salir del sistema. Si el
+ usuario no sale del sistema pero está inactivo por más de media
+ hora, la sesión caduca y el usuario deberá volver a ingresar. Si
+ el usuario cierra el navegador o se va del sistema de otra forma,
+ y luego, antes de que se cumpla media hora de inactividad, retorna
+ al sistema, la página de inicio reconocerá
+ la sesión, y hará que el usuario continúe en la misma pantalla
+ donde había abandonado la sesión.
+
+ El módulo se encarga de la administracion de el subsistema de preguntas y
+ respuestas. Maneja altas y bajas, asi como tambien ingreso de respuestas y
+ ranking de cada una. Mientras mejor es la respuesta de un usuario (que será
+ calificado por el autor de una pregunta), mejor será su puntuación. Esos puntos
+ son créditos para poder seguir efectuando preguntas.
+
+ La página Listar Preguntas muestra
+ las preguntas ingresadas en el sistema. Para cada pregunta, se muestra la fecha
+ de creación, el nombre de autor, con su correspondiente foto, la pregunta en si,
+ la posibilidad de accederá a todas las respuestas para dicha pregunta, así como
+ también la posibilidad de responder la pregunta ( solo en caso que quien esta
+ logueado en el sistema no sea el mismo usuario que formulo la pregunta ). El listado
+ de preguntas aparece paginado cada 2 ( se muestran dos preguntas por pantalla ).
+ Debajo de las preguntas aparece el navegador. En caso que el usuario logueado sea un
+ administrador, en la parte inferior de cada pantalla aparece un link que permite
+ acceder a la página de Baja de Preguntas.
+
+ El listador de respuestas muestra ordenadas por ranking
+ las respuestas a una pregunta seleccionada. Utiliza el paginador, al igual que el listador de preguntas,
+ y también lo hace de a dos respuestas por pantalla. Muestra la información del usuario
+ que genero la respuesta ( foto y nombre ), la respuesta y el ranking de la misma. Si la
+ respuesta todavía no fue evaluada por el autor de la pregunta, muestra un mensaje que
+ indica que no hay ranking para esa pregunta. Si el usuario que esta accediendo a la lista
+ de respuestas es el mismo que formulo la pregunta y todavía no calificó a la misma, aparece
+ un botón que lo redirecciona a la página de calificación de preguntas.
+
+ Desde el menú de la aplicación se puede acceder a la página que permite
+ agregar una pregunta. En caso de que el usuario logueado tenga los créditos para hacerlo, podrá formular
+ una pregunta que se publicara en la lista de preguntas. Si el usuario no
+ contara con los créditos suficientes, un warning lo alertara y le sugerirá que pida créditos al administrador
+ del sistema. El usuario podrá ingresas desde esta pantalla tantas preguntas como créditos tenga.
+
+ Desde el listado de preguntas se puede acceder a la pantalla que permite
+ responder la pregunta . La misma muestra en el encabezado la pregunta que se esta respondiendo.
+ Al lograr un ingreso satisfactorio de una respuesta, aparece un mensaje que avisa al
+ usuario que su respuesta fue dada de alta en el sistema. Esta respuesta quedara pendiente
+ de calificar por parte del autor de la pregunta que se esta respondiendo. Cualquier usuario
+ logueado en el sistema puede acceder a responder preguntas. Únicamente no podrá responder una
+ pregunta el autor de la misma.
+
+ La pantalla de calificación de respuesta solo puede ser accedida
+ por el autor de la pregunta que tiene dicho ítem como respuesta. En esta pantalla, desde un combo, se
+ puede elegir alguna de las cuatro categorías de calificación ( a cada una le corresponde un
+ puntaje ). Inmediatamente se le acreditara a quien pregunta tantos créditos como puntos valgan la
+ calificación de la respuesta. La respuesta solo podrá ser calificada una vez, luego de ser calificada,
+ desaparecerá el botón que permite acceder a la pantalla para ese ítem.
+
+ Si un administrador lo desea, desde la pantalla de listado de preguntas
+ es posible acceder a la pantalla de baja de preguntas y pasar una pregunta
+ a un log historico. De esta manera ni la pregunta ni sus respuestas seran mostradas mas por el listador. La lista de preguntas
+ a desactivar aparece para seleccionar de un combo.
+
+ El módulo de info permite el ingreso de temas, informaciones y comentarios,
+ y para la interaccion con el mismo se definieron distintos menúes en base
+ a los roles presentes en la plataforma.
+ El siguiente menu es el que se le presenta al asesor o socio.
+
+ El siguiente menu es el que se le presenta al administrador.
+
+ Desde info.ingresarTemas.php el usuario puede ingresar nuevos temas.
+ (Solo pueden acceder los usuarios administradores).
+ Una vez completados se procede a "Guardar Tema".
+ Desde info.listarTemas.php el usuario puede ver la lista de temas disponibles
+ para ingresar informaciones. La página se muestra paginada de a 5 temas por vez, se puede acceder a
+ las diferentes páginas navegando el menu superior. (La página actual queda marcada en negrita).
+
+ Desde info.ingresarInfo.php el usuario puede ingresar nuevas informaciones.
+ Los campos a completar son:
+
+ Una vez completados se procede a "Guardar Información".
+ Desde info.listarInfo.php el usuario puede ver la lista de informaciones disponibles.
+ La página se muestra paginada de a 5 informaciones por vez, se puede acceder a las diferentes
+ páginas navegando el menu superior. (La página actual queda marcada en negrita).
+ Esta página es accedida desde "Ver Comentarios" que se encuentra disponible para cada información presente.
+ La misma muestra los comentarios agregados hasta el momento.
+ La página se muestra paginada de a 5 temas por vez, se puede acceder a las diferentes
+ páginas navegando el menu superior. (La página actual queda marcada en negrita).
+ Se presenta el ícono del tema al cual pertenece la información, y por supuesto el comentario en cuestión.
+ Luego se presenta el ícono y apellido del usuario que cargó el comentario (si el usuario que cargó el comentario
+ es el mismo que cargó la información entonces se muestra solamente el apellido), y finalmente se muestra el comentario.
+ Se puede acceder a cargar un nuevo comentario desde "Ingresar Comentario" (esto solo puede ser realizado por los asesores
+ o socios.
+
+ Desde info.ingresarComentario.php el usuario puede ingresar nuevos comentarios a informaciones existentes.
+ El campo a completar es:
+
+ Una vez completados se procede a "Guardar Comentario".
- COMPLETAR!!! Mucho de esto por ahora está en la descripción del
- diseño...
+ En info.mencionEspecial.php se lista el o los usuarios que hayan publicado informaciones con alto ranking.
+ Se suma para cada usuario los rankings de las páginas publicadas, y luego se muestran aquellos que con el
+ ranking mas alto ( se muestra mas de uno cuando el ranking es el mismo para varios usuarios ).
admin.login.php
+ admin.login.php
admin.logout.php
+ admin.logout.php
admin.asociarse.php
+ admin.asociarse.php
admin.log.php
+ admin.log.php
admin.creditos.php
+ admin.creditos.php
admin.admin.php
+ admin.admin.php
Desarrollo
- AGREGAR DESCRIPCION DE LO HECHO!!!!
- Formato de Archivos
+ Diseño del sistema
+ Diagrama de Clases
+ Gráfico de Navegación
+ Formato de Archivos
CREDITOS_NUEVO = CREDITOS - (DIAS_NUEVO / 30)
y la
nueva cantidad de días sin preguntar restantes (DIAS_RESTO) como
DIAS_RESTO = DIAS_NUEVO % 30
(siendo % el resto de la
- división entera), ya que estos días sin pregutnar extra que
+ división entera), ya que estos días sin preguntar extra que
todavía no llegan a sumar 30 como para restar créditos, deben ser
considerados para futuros cálculos. Finalmente en el archivo de
créditos se guarda un nuevo registro con los datos CREDITOS_NUEVO y
@@ -284,10 +418,12 @@
log.*.csv
+ preguntas.csv
+
+
+ respuestas.csv
+
+
+ calificacion.csv
+
+
+ desactivadas.csv
+
+
+ temas.csv
+
+
+ infos.csv
+
+
+ comentarios.*.csv
+
+
Herramientas de desarrollo
Jonathan Schein
Sebastián Arena
Configuración del servidor
+LoadModule userdir_module libexec/mod_userdir.so
+AddModule mod_userdir.c
+UserDir public_html
+
+
+LoadModule php4_module libexec/libphp4.so
+AddModule mod_php4.c
+AddType application/x-httpd-php .php
+
+ Instalación
+ Instalación
Modo de uso
+ Modulo de Administración
+ Modulo de FAQs
+ Modulo de Info
+
Los campos a completar son:
+
+
+
+ Se mostrará un mensaje indicando si la operación fue exitosa o no.
+ En cualquiera de los dos casos se mantienen los datos en los campos, y se
+ permite la modificación de lo recien insertado, a modo de correccion de posibles errores
+ del usuario al tipear.
De retirarse de la página, o presionar sobre "Nuevo Tema"
+ se pierde la posibilidad de modificar (al presionar sobre "Nuevo Tema" se pedirá la confirmación
+ antes de cambiar de contexto).
+
+
+
+ Se mostrará un mensaje indicando si la operación fue exitosa o no.
+ Se mantienen los datos en los campos, y se permite la modificación de lo recién insertado,
+ a modo de correccion de posibles errores del usuario al tipear.
De retirarse de la página,
+ o presionar sobre "Nueva Información" se pierde la posibilidad de modificar (al presionar sobre
+ "Nueva Información" se pedirá la confirmación antes de cambiar de contexto).
+
+ Se despliega el icono del tema al cual pertenece, así como la imagen del usuario que cargó
+ dicha información. A continuación se muestra la URL correspondiente, con su comentario.
+ Por último el ranking ( que es la cantidad de accesos que hubo a dicha URL ) y se puede
+ acceder finalmente a la sección de comentarios sobre la información haciendo click en
+ "Ver Comentarios".
+ Esta sección está disponible ordenada por ranking de acceso a la URL, o, eligiendo en "Ver Tema",
+ se listan las informaciones del tema, y luego dentro de ahi las mismas ordenadas por ranking.
+
+
+
+ Se mostrará un mensaje indicando si la operacion fue exitosa o no.
+ Se mantienen los datos en los campos, y se permite la modificación de lo recién insertado,
+ a modo de correccion de posibles errores del usuario al tipear.
De retirarse de la página,
+ o presionar sobre "Nuevo Comentario" se pierde la posibilidad de modificar (al presionar sobre "Nuevo Comentario"
+ se pedirá la confirmación antes de cambiar de contexto).
+