BIENVENIDO AL TRIVIAL3B

Trivial

Descripción del proyecto

El objetivo del proyecto es desarrollar el mítico juego de sobremesa, denominado trivial, para poder jugarlo desde el PC tanto en local como en red. En esta página se irán informando de los cambios que se realizaran en el proyecto. A continuación ofrecemos una serie de enlaces para que puedan bajar el proyecto y probarlo, para así ayudarnos a mejorar.

Servicios usados para el proyecto

Eclipse es un programa informático compuesto por un conjunto de herramientas de programación de código abierto multiplataforma para desarrollar. Esta plataforma, típicamente ha sido usada para desarrollar entornos de desarrollo integrados (IDE), como el IDE de Java llamado Java Development Toolkit (JDT) y el compilador (ECJ) que se entrega como parte de Eclipse (y que son usados también para desarrollar el mismo Eclipse). Sin embargo, también se puede usar para otros tipos de aplicaciones cliente, como BitTorrent o Azureus. Eclipse es también una comunidad de usuarios, extendiendo constantemente las áreas de aplicación cubiertas. Eclipse fue desarrollado originalmente por IBM como el sucesor de su familia de herramientas para VisualAge. Eclipse es ahora desarrollado por la Fundación Eclipse, una organización independiente sin ánimo de lucro que fomenta una comunidad de código abierto y un conjunto de productos complementarios, capacidades y servicios. Eclipse fue liberado originalmente bajo la Common Public License, pero después fue re-licenciado bajo la Eclipse Public License.

MongoDB es un sistema de base de datos NoSQL orientado a documentos, desarrollado bajo el concepto de código abierto. MongoDB forma parte de la nueva familia de sistemas de base de datos NoSQL. En vez de guardar los datos en tablas como se hace en las base de datos relacionales, MongoDB guarda estructuras de datos en documentos tipo JSON con un esquema dinámico (MongoDB llama ese formato BSON), haciendo que la integración de los datos en ciertas aplicaciones sea más fácil y rápida. El desarrollo de MongoDB empezó en octubre de 2007 por la compañía de software 10gen. Ahora MongoDB es una base de datos lista para su uso en producción y con muchas características. Esta base de datos se utiliza mucho en la industria. El código binario está disponible para los sistemas operativos Windows, Linux, OS X y Solaris.

Maven es una herramienta de software para la gestión y construcción de proyectos Java creada por Jason van Zyl, de Sonatype, en 2002. Es similar en funcionalidad a Apache Ant, pero tiene un modelo de configuración de construcción más simple, basado en un formato XML. Estuvo integrado inicialmente dentro del proyecto Jakarta pero ahora ya es un proyecto de nivel superior de la Apache Software Foundation. Maven utiliza un Project Object Model (POM) para describir el proyecto de software a construir, sus dependencias de otros módulos y componentes externos, y el orden de construcción de los elementos. Viene con objetivos predefinidos para realizar ciertas tareas claramente definidas, como la compilación del código y su empaquetado. Una característica clave de Maven es que está listo para usar en red. El motor incluido en su núcleo puede dinámicamente descargar plugins de un repositorio, el mismo repositorio que provee acceso a muchas versiones de diferentes proyectos Open Source en Java, de Apache y otras organizaciones y desarrolladores. Maven provee soporte no sólo para obtener archivos de su repositorio, sino también para subir artefactos al repositorio al final de la construcción de la aplicación, dejándola al acceso de todos los usuarios. Maven está construido usando una arquitectura basada en plugins que permite que utilice cualquier aplicación controlable a través de la entrada estándar.

Travis CI te permite conectar tu repositorio de Github y probar después de cada push que hagas, regenerando el proyecto. Soporta múltiples lenguajes como Clojure, Erlang, Node.js, PHP, Ruby, Python y Java. Una de las ventajas más claras de usar Travis CI es que el entorno de integración continua esta compuesto de multiples runtimes o data stores. De este modo, podemos probar nuestras librerías o aplicaciones contra distintas configuraciones sin tener que tenerlas instaladas localmente. Tienen varias maquinas virtuales preparadas para cada combinación, allí puedes instalar MySQL o lo que necesites.

Cucumber es una herramienta que da soporte a las BDD (Behaviour-Driver-Development), es decir, da la posibilidad de realizar pruebas basadas en comportamiento. Está desarrollado en Ruby y actualmente soporta múltiples lenguajes. Utiliza el Gherkin que es un lenguaje propio del Cucumber que permite describir el comportamiento del software sin detallar su implementación. Gherkin sirve para dos propósitos, documentación y pruebas automatizadas.

HSQLDB (Hyperthreaded Structured Query Language Database) es un sistema gestor de bases de datos libre escrito en Java. La suite ofimática OpenOffice.org lo incluye desde su versión 2.0 para dar soporte a la aplicación Base. HSQLDB está basado en HypersonicSQL, un proyecto de Thomas Mueller que estaba abandonado en la actualidad. Ahora está en la versión 2.3.1. Sus principales características es que está escrito completamente en Java, que consta de un completo sistema gestor de bases de datos relacional y que tiene un tiempo de arranque mínimo y una gran velocidad para realizar las operaciones: INSERT, SELECT, DELETE y UPDATE. También incluye Triggers y procedimientos almacenados en Java.

Play es un framework de código abierto de aplicación web , está escrito en Scala y Java, y sigue el patrón arquitectónico modelo-vista-controlador (MVC). Su objetivo es optimizar la productividad del desarrollador utilizando la recarga del código en caliente y usando visualización de errores en el navegador. El apoyo al lenguaje Scala ha estado disponible desde la versión 1.1. En la versión 2.0, el núcleo fue reescrito en Scala.

Selenium es un entorno de pruebas de software para aplicaciones basadas en la web. Selenium provee una herramienta de grabar/reproducir para crear pruebas sin usar un lenguaje de scripting para pruebas (Selenium IDE). Incluye también un lenguaje específico de dominio para pruebas (Selanese) para escribir pruebas en un amplio número de lenguajes de programación populares incluyendo Java, C#, Ruby, Groovy, Perl, Php y Python. Las pruebas pueden ejecutarse entonces usando la mayoría de los navegadores web modernos en diferentes sistemas operativos como Windows, Linux y OSX.

Manual de usuario

El propósito de este manual es facilitar al usuario el uso de la aplicación y la consulta de la información que se administra en la aplicación Trivial3b. La aplicación, en un primer paso, se encarga de leer ficheros con los enunciados y respuestas de preguntas, procesar dichas preguntas indicando si hay errores o son correctas y guardarlas en un fichero intermedio de salida.
En un segundo paso, se encarga de subir esas preguntas (una vez el operario las haya revisado, si así lo desea) a una base de datos MongoDB.

1-Implementación del sistema

A) Requerimientos de hardware:
a. Ordenador.
B) Requerimientos de software:
a. Sistema operativo con Java 1.7+.
b. Una base MongoDB en local (Para usar el guardado en base de datos)

2-Acceso y funcionalidad del sistema

A la aplicación se puede acceder con roles diferentes que se detallaran a continuación.

a) Rol de Usuario

Nada más ejecutar la aplicación apareceremos en esta pantalla en la cual si pulsamos partida rápida nos llevara a la pantalla de login para posteriormente empezar a jugar. Si pulsamos sobre registrarse nos llevara a una pantalla de registro, en la que un nuevo jugador de nuestra aplicación podrá registrarse en el sistema, esto se hará efectivo cuando se pulse el botón registrar. Pulsando el botón volver volveremos a la pantalla principal.

Pulsando partida rápida llegaremos a la pantalla de login, donde primero se han de seleccionar el número de jugadores y posteriormente introducir el usuario y contraseña de todos ellos, si todos los usuarios se encuentran registrados en el sistema pulsando el botón jugar se procederá a la elección del tablero donde seleccionaremos si preferimos un tablero circular o uno cuadrado.

Elijamos el tablero que elijamos la distribución será la misma. Al lado izquierdo se situara el tablero de juego, y al lado derecho en la parte superior el dado y en la inferior los paneles con los nombres y quesitos de los jugadores activos. Cuando caigamos en un quesito de pregunta nos aparecerá un dialogo como el de la segunda imagen, en el cual la barra superior es el tiempo que tenemos disponible para contestar la pregunta, y si este se acaba la pregunta se dará como no contestada y pasará el turno al siguiente jugador. Los puntos negros que se observan en la tercera imagen, especifica a donde podemos movernos una vez tirado el dado.
b) Rol de Administrador

Como administrador en la pantalla principal podremos pulsar en el archivo estadísticas, lo cual nos llevara a una página como la mostrada en la imagen. Donde logueandonos con una cuenta de administrador e iniciando sesión podremos ver las estadísticas.

Autores de la aplicación

Nombre Apellidos UO
Joel Pérez Alcalá UO226321
Raúl Morán Fernández UO180365
Daniel García García UO231763
Sergio Llana Pérez UO229817
Jairo López Soto UO218230
Cristian Javier Santos Navia UO229778
José Manuel Fernández García UO231490