Home - nshandra/practica_final-ISI_18-19 GitHub Wiki

URL del sitio web: https://pfinalisi.herokuapp.com/

######## OBJETIVO ########

  • Hacer un sitio web para aficionados de cine donde puedan encontrar datos de películas y un árbol/grafo que mida la distancia que existe entre películas que haya hecho el mismo actor/actriz.

  • Todo lo que hagamos de esta práctica debe estar enfocado en lo que hemos aprendido de bases de datos y de testing, teniendo que hacer tests de todos los códigos que usemos y los que escribamos nosotros tendrán que ser con el método de crear los test de caja negra y a partir de ahi escribir el código. No es necesario hacer tests para el código dedicado a la interacción web.

##################### RECURSOS / MATERIALES #####################

  • Vamos a tener dos fuentes de información que son los ficheros de texto y el código, que se adjuntan en el material de la asignatura, y la base de datos en sqlite que usamos en el examen llamada dvdrentals. Esta base de datos no solo contiene información sobre las películas, actores/actrices y demás, sino también información sobre la facturación de la tienda, sus clientes, empleados, etc.

  • Tenemos que pensar qué haremos con los datos de los ficheros, si meterlos en la BD existente (dvdrentals) o no.

  • Para realizar nuestras pruebas, tendremos que usar un subconjunto de toda la información que hay en "cast.all.txt".

############# DOCUMENTACIÓN #############

############ HERRAMIENTAS ############

  • Usaremos travis.

  • Usaremos heroku para desplegar nuestro sitio web. Heroku también nos permite crear BD gratis con PostgreSQL. Por ello, seguramente acabaremos teniendo la BD en PostgreSQL.

  • Usaremos JDBC para relacionar sql con java.

######### SITIO WEB #########

  • Vamos a usar el framework spark-java.

  • El diseño del sitio web puede ser muy simple (HTML básico con formularios). No nos va a evaluar la inclusión de hojas de estilo CSS ni nada que esté dedicado a hacer el diseño "más bonito".

################ CONSEJOS / OTROS ################

  • Es muy importante aislar del core del programa todo aquello que sea específico, por lo que deberemos crear subsistemas que nos hagan dichas funciones como por ejemplo manejar las tablas de sqlite.

  • Tendremos que crearnos una lista de tareas. Es recomendable que las tareas sean cortas y concretas (con una duración estimada de 2-3 días como mucho). Si pensamos que algo nos va a llevar más tiempo, mejor dividir esa tarea en subtareas más pequeñas. Para organizar todo lo relativo a las tareas, podemos usar Pivotal Tracker.

  • Es importante hacer una wiki donde vayamos añadiendo explicaciones sobre la documentación, lo que vamos haciendo, etc.