- SmartestPhone
Table of contents generated with markdown-toc
SmartestPhone es una web para comparar teléfonos móviles (a partir de ahora smartphones) que se basará en las aportaciones de los usuarios introduciendo smartphones nuevos que no esten en la base de datos para asi ampliarla. Se podrán consultar las especificaciones técnicas de cada smartphone en apartados ya creados (ej. dimensiones de pantalla, procesador, cámara) y también ver las últimas noticias añadidas por los usuarios del smarphone.
- Parte Pública: Se podrán ver las características y noticias de cada smartphone.
- Parte Privada: Se podrán crear y editar smartphones, añadir procesadores, camaras y noticias y borrar cualquiera de estos.
- Usuario: Los usuarios pueden añadir nuevos smartphones, procesadores, cámaras y noticias a la base de datos.
- Administrador: Puede borrar cualquier smartphone, procesador, cámara y noticia del servidor asi como cualquier cosa que pueda hacer el usuario normal.
- Smartphone: Es cada teléfono móvil que se puede consultar o añadir en la web con varias características básicas como atributos.
- Procesador y cámara - Son entidades separadas del smartphone que pueden ser utilizables por varios smartphones a la vez y no dependen de estos.
- Noticias: Son las noticias añadidas por los usuarios a cada smartphone o marca.
La web tendrá un servicio de mail que enviará un correo electronico a cada usuario cuando se registre un nuevo smartphone o una nueva noticia.
- Rafael Jerez Molinero r.jerez@alumnos.urjc.es https://github.com/JerezRafael
- David Pleite Domingo d.pleite@alumnos.urjc.es https://github.com/dpleite94
Aquí se puede observar como se puede pasar de una página a otra en la web.
Modelo representando las tablas creadas en MySQL.
Modelo E/R en el que un smartphone esta compuesto de una pantalla, unas dimensiones, una cámara, un procesador y forma parte de 0 o N noticias. Una cámara puede formar parte de 0 o N smartphones, al igual que un procesador, y una noticia puede hablar de 1 o N smartphones.
Es la página inicial, desde esta se puede acceder a todas las demás, podemos buscar un smartphone y acceder a la web de detalles y podemos tambien ir a añadir un nuevo smartphone, procesador, cámara o noticia, a la página de gestión y ver las noticias.
Esta web es unicamente para añadir un smartphone nuevo, una vez puestas todas las caracteristicas se puede añadir y ya volver a la página de inicio.
Esta pantalla permite añadir una cámara. Todas las camaras que se vayan añadiendo se podrán reutilizar desde la pantalla de añadir smartphone.
Esta pantalla permite añadir un procesador. Al igual que las cámaras, todos los procesadores que se vayan añadiendo se podrán reutilizar desde la pantalla de añadir smartphone.
Esta pantalla permite añadir una noticia. Se deberá rellenar un título de noticia, añadir un enlace que redireccione a la noticia y uno o varios smartphones con los que esté relacionada dicha noticia.
En esta web se ven todas las características de un smartphone.
En esta web se pueden modificar todas las características de un smartphone.
Pantalla en la que se podrán consultar todas las noticias o solo las relacionadas con cada smartphone.
Página en la que solo puede acceder el administrador y que te permite borrar smartphones, cámaras, procesadores y noticias.
Aquí se puede observar como se puede pasar de una página a otra en la web, pero como existen diferentes tipos de usuarios vamos a mostrar la navegación para cada tipo:
Azul = Controladores; Rosa = Templates; Naranja = Repositorios; Verde claro = Entidades; Verde oscuro = Clases normales.
Es la página inicial, desde esta se puede acceder a todas las demás, podemos buscar un smartphone y acceder a la web de detalles y podemos tambien ir a añadir un nuevo smartphone, procesador, cámara o noticia (antes se tiene que iniciar sesión, o en caso de no tener cuenta, registrarse), ver las noticias y también ir a la página de gestión (sólo aparece si se ha iniciado sesión como administrador).
Esta web es unicamente para añadir un smartphone nuevo, una vez puestas todas las caracteristicas se puede añadir y ya volver a la página de inicio.
Esta pantalla permite añadir una cámara. Todas las camaras que se vayan añadiendo se podrán reutilizar desde la pantalla de añadir smartphone.
Esta pantalla permite añadir un procesador. Al igual que las cámaras, todos los procesadores que se vayan añadiendo se podrán reutilizar desde la pantalla de añadir smartphone.
Esta pantalla permite añadir una noticia. Se deberá rellenar un título de noticia, añadir un enlace que redireccione a la noticia y uno o varios smartphones con los que esté relacionada dicha noticia.
En esta web se ven todas las características de un smartphone.
En esta web se pueden modificar todas las características de un smartphone.
Pantalla en la que se podrán consultar todas las noticias o sólo las relacionadas con cada smartphone.
Página en la que solo puede acceder el administrador y que te permite borrar smartphones, cámaras, procesadores y noticias.
Página para poder iniciar sesión ya se tenga rol de usuario o rol de administrador. Te permite añadir smartphones, cámaras, procesadores y noticias si eres usuario normal y si eres adminitrador además, entrar en la web de gestión.
Página para registrarse si no se tiene cuenta.
La interfaz entre el servicio interno y la aplicación web consiste en un controlador REST en el servidor de mail por el que la aplicación web mediante un cliente REST le manda únicamente un objeto smartphone o noticia, dependiendo del caso, al crearse en la web para que el servicio acceda a la base de datos, obtenga todas las direcciones de email de los usuarios y les envíe algunos detalles del objeto pasado por parámetro, como la marca y el modelo si es un smartphone o el título y la url de la noticia en el segundo caso.
Los objetos pasados por parámetro están en memoria hasta que se resuelva la solicitud, no se guardan en ningún sitio y los emails se obtienen de la base de datos mediante el repositorio de los usuarios.
vagrant init ubuntu/xenial64
vagrant up
- Descomentar
config.vm.network "private_network", ip: "192.168.33.10"
de vagrantfile vagrant ssh
sudo apt-get update
sudo apt-get openjdk-8-jre
sudo apt-get install mysql-server
- Contraseña
phone
sudo mysql -p
create database BDSmartestPhone;
exit;
- Crear los dos jar con Run as -> build... -> Goals -> clean package
- Copiar los dos jar en la carpeta vagrant del host
cd /vagrant
java -jar ServidorMail-0.0.1-SNAPSHOT.jar --contrasena=smartphone
- Paralelamente
java -jar SmartestPhone-0.0.1-SNAPSHOT.jar
- En el buscador del host
https://192.168.33.10:9090/SmartestPhone
Azul = Controladores; Rosa = Templates; Naranja = Repositorios; Verde claro = Entidades; Verde oscuro = Clases normales.
La interfaz entre el servicio interno y la aplicación web consiste en un controlador REST en el servidor de mail por el que la aplicación web mediante un cliente REST le manda únicamente un objeto smartphone o noticia, dependiendo del caso, al crearse en la web para que el servicio acceda a la base de datos, obtenga todas las direcciones de email de los usuarios y les envíe algunos detalles del objeto pasado por parámetro, como la marca y el modelo si es un smartphone o el título y la url de la noticia en el segundo caso.
Los objetos pasados por parámetro están en memoria hasta que se resuelva la solicitud, no se guardan en ningún sitio y los emails se obtienen de la base de datos mediante el repositorio de los usuarios.