Después de resolver la tarea 3, usted será capaz de:
Los usuarios de WhatsApp generalmente tienen la curiosidad de los datos estadísticos que se pueden obtener de sus conversaciones, por ejemplo saber quien manda más mensajes o que palabra es la que más usan. Para resolver estas y otras incógnitas llega WhatsAppy, un programa Web al cual deberán implementar las siguientes funcionalidades:
Para permitir que el sitio web cumpla con las funciones anteriores, se les entregará un conjunto de archivos que les proveerá de algunas funciones ya implementadas y otras que ustedes deben implementar con su equipo para el correcto funcionamiento.
Los archivos que se le entregarán los puede descargar acá. A continuación se mencionan los distintos archivos y la función que cumplen dentro del sistema.
Además pueden obtener su propio archivo de chat de WhatsApp siguiendo los siguientes pasos en su celular:
Una vez descargado el archivo para comenzar la tarea, descomprímalo y ejecute el archivo main.py. Se abrirá una ventana como la que se muestra a continuación:
# Iniciando WhatsAppy en http://localhost:8080
Este mensaje indica que el servidor web que contiene el sitio se está ejecutando de manera local. Abra su navegador preferido (chrome, internet explorer, safari u otro) y escriba la dirección http://localhost:8080/, se debería mostrar la página Web principal.
El sitio se divide en las siguientes secciones:
El sitio cuenta con una barra de navegación que permite entrar a cada uno de los sitios mostrados anteriormente.
Cada línea de un archivo de chat de WhatsApp puede ser de dos tipos. Que sea el envió de un mensaje por parte de un integrante, donde la estructura es:
# dia/mes/año, hr:mm - usuario: mensaje
O puede ser una acción del tipo participante abandona grupo, cambiar foto de grupo, cambiar nombre de grupo, etc. y la estructura es:
# dia/mes/año, hr:mm - usuario acción_realizada
Las funciones que usted debe implementar con su equipo de trabajo son las siguientes:
listar_integrantes(nomarch): esta función recibe como parámetro el nombre del archivo de chat (sin .txt) y debe retornar un conjunto con los participantes del grupo.
topN_palabras(nomarch, N): esta función recibe como parámetro el nombre del archivo de chat (sin .txt) y debe retornar una lista ordenada de mayor a menor (según cantidad de apariciones) de las N palabras más usadas en el grupo. Esta lista debe estar compuesta por tuplas que contienen:
(palabra, cant. de apariciones, prob. de encontrar la palabra en un mensaje)
La probabilidad de encontrar una palabra en un mensaje está dado por el cuociente entre la cantidad de mensajes en los que aparece la palabra y la cantidad total de mensajes en el chat.
listar_por_mensaje(nomarch): esta función recibe como parámetro el nombre del archivo chat (sin .txt) y debe retornar una lista con tuplas, donde cada tupla está compuesta por el nombre de un participante y el número de mensajes que ha escrito dicho participante en el grupo. La lista debe estar ordenada por número de mensajes.
chat_censurar(nomarch, palabra): esta función debe modificar el archivo de chat que recibe, censurando todas las apariciones de palabra, reemplazando estas por un caracter de censura (ej: #) según el largo de la palabra. Por ejemplo si se reemplaza la palabra tarea en la frase hice la tarea de progra, debería quedar como hice la ##### de progra.
chat_filtrar(nomarch, usuario): esta función, a partir del archivo chat que recibe, debe crear un nuevo archivo quitando las intervenciones de usuario del chat. El nuevo archivo debe ser nombrado siguiendo las siguientes reglas, si nomarch es MiGrupo_OK y se elimina al participante Esteban, el nuevo archivo debe llamarse MiGrupo_OK_sin_Esteban.txt.
La tarea debe ser resuelta en equipos de dos o tres personas.
Sólo uno de los integrantes del equipo debe subir la tarea en la sección Tareas de la plataforma Aula, en el ramo de Programación IWI131.
Se debe entregar un archivo comprimido (.zip) que debe contener todos los archivos para hacer funcionar la tarea con el nombre tarea-3-RUT.zip, reemplazando RUT con el RUT del integrante que subirá la tarea. Sólo debe ir la parte del RUT hasta antes de la raya. Por ejemplo: tarea-3-18000123.zip.
Al principio del archivo funciones.py se debe poner un comentario indicando los RUT de los integrantes del equipo como en el siguiente ejemplo:
# Integrantes:
# 18000123-0 Perico Los Palotes
# 18000456-7 Fulanita de Tal
# 18000890-k Federico Santa Maria
No se puede subir ningún archivo adicional.
Revise la fecha de entrega en Aula. Evite dejar para última hora la entrega de la tarea. Cerca del plazo final, la plataforma seguramente estará sobrecargada.
Las tareas atrasadas (máximo un día de retraso) tendrán el descuento especificado en la rúbrica de corrección. NO se recibirán tareas por por correo electrónico.
Los equipos de trabajo pueden ser los mismos de la tarea anterior, pero recuerde que deben ser de 2 ó 3 personas.
Usted puede discutir la tarea con compañeros de otros grupos, pero bajo ningún motivo puede compartir o copiar el código de su tarea. Cada equipo debe escribir su propio código.
Las políticas de copia de la asignatura rigen para la tarea.
En caso de tener problemas con el desarrollo de la tarea, asista a las ayudantías o consulte en el grupo de facebook.