Giter VIP home page Giter VIP logo

bibliotecaweburjc_dad's Introduction

bibliotecaWebUrjc_DAD

Nombre de la aplicación web: BiblioSpring

Vídeo descriptivo: https://www.youtube.com/watch?v=Djd3V6I50sE

Descripción de la temática de la web:

La web consistirá en proporcionar servicio de una biblioteca tanto a usuarios que quieran hacer uso de la misma o tanto al bibliotecario para realizar todas las tareas de gestión que se necesitase.

Entidades principales:

  • Libro: Conlleva unos atributos que lo caracterizan (nombre, escritor, descripción, categoría)
  • Usuario: Diferencia de tipos de usuarios(si es socio o administrador de la biblioteca) y las acciones que permite realizar.
  • Categoría:Tendrá varias temáticas en las diferentes áreas(informática, literatura, biología, deportes, historia, geografía...)
  • Préstamo: Todo lo referente al control y gestión de los pagos de los carnet
  • Alternativa: Otros tipos de recursos disponibles en la biblioteca (películas, revistas, fanzines,...)

Funcionalidades del servicio interno:

  • Enviar un correo de bienvenida al registrarte

Parte privada:

Los socios de la biblioteca pueden alquilar libros, también pueden renovar su carnet de socio anual, hacer reservas de libros, publicar alguna reseña sobre el libro alquilado, cambiar sus datos, realizar el pago de una deuda pendiente, ...

El administrador (bibliotecario) podrá añadir un libro, eliminar un libro, modificar las características de un libro, podrá gestionar los préstamos de libros, podrá repartir los libros de la biblioteca en categorías, podrá añadir y eliminar los tipos de Alternativas (Fanzines, Películas y Revistas)...

Parte pública:

Los usuarios que no sean socios de la biblioteca podrán consultar el horario de la biblioteca, consultar los precios y beneficios de poseer el carné de socio, una opción de contactar con la biblioteca (cómo llegar), ver las distintas redes sociales que tiene la biblioteca, ver información adicional de la biblioteca, consultar las normas de uso interno en la biblioteca, ver la política de privacidad, consultar los libros que están disponibles, consultar los fanzines, películas y revistas que están disponibles, etc

Integrantes del equipo de desarrollo:

Modelo UML:

UML

Diagrama de clases:

Diagrama_de_clases

Modelo Entidad-Relación:

Diagrama_de_clases

Descripción de las pantallas principales:

  • Libro: Se puede buscar los libros que hay en la biblioteca por diferentes filtros: título y categoría
  • Usuario: Ingresas a la aplicación mediane un LogIn en el que se tiene que escribir los datos (nombre y contraseña) para acceder.
  • Categoría:Consulta todos los libros de la biblioteca repartidos en categorías para una mayor facilidad de uso
  • Préstamo: Accede a la posibilidad de entrar en el espacio personal del usuario premium para renovar el carné anual, cambiar los datos personales, etc.
  • Alternativa: Consulta los fanzines, revistas y películas que hay en la biblioteca.
  • Interfaz del servicio interno:

    La comunicación entre la aplicación web y el servicio interno está realizada mediante API Rest.

    La función de la API Rest únicamente es mandar un mensaje de bienvenida a los nuevos usuarios que se registran.

    La comunicación se hace mediante el protocolo SMTP.

    El servicio interno solo tiene dos clases: una clase (Entity) y otra clase controlador (Controller).

    La primera se conforma de dos atributos tipo String: el nombre de usuario y el nombre del correo.

    La segunda es la más laboriosa, en la que se fija cómo se realiza la comunicación, qué puerto usa, qué devuelve, mediante qué mecanismos se hace, y lo que debe contener el mensaje.

    Instrucciones precisas para desplegar la aplicación:

    Compilación:

  • 1. Botón derecho sobre el proyecto.
  • 2. Clickar sobre 'Run as'
  • 3. Clickar sobre Spring Boot Application
  • Virtualización en contenedores Docker:

    Creamos las siguientes imágenes: (estando en el directorio de la aplicación web y/o de la aplicación del servicio interno)

    	docker build -f Dockerfile -t "imagen_web" .
    	docker build -f DockerFile-HAPROXY -t balanceador .
    	docker build -f Dockerfile -t "imagen_servint" .
    

    Corremos cinco contenedores (Puertos 8444, 8445, 8080, 443 y 3306):

    	docker run --name container_mysql -e MYSQL_ROOT_PASSWORD=1234 -d mysql:5.6
    	docker run -e "SPRING_DATASOURCE_URL=jdbc:mysql://172.17.0.2/bibliospringbd?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC" -p 8444:8444 --name=container_web imagen_web
       	docker run -e "SPRING_DATASOURCE_URL=jdbc:mysql://172.17.0.2/bibliospringbd?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC" -p 8445:8445 --name=container_web2 imagen_web
    	docker run -p 8080:8080 --name=container_servint imagen_servint
    	docker run -p 443:443 --name=container_haproxy balanceador
    

    Si hay errores a la hora del acceso a MySQL y a la base de datos:

    	docker run -ti mysql:5.6 /bin/sh
    	# mysql -h 172.17.0.2 -P 3306 -u root -p
    	1234 (cuando nos pide que introduzcamos la contraseña)
    	create database bibliospringbd;
    

    ¿Qué hace falta instalar?: Eclipse STS 4, Java 8, MySQL Workbench 8.0 y Docker Toolbox (Windows)

    bibliotecaweburjc_dad's People

    Contributors

    agustinlopezg avatar dani45 avatar oscarli1797 avatar

    Forkers

    oscarli1797

    Recommend Projects

    • React photo React

      A declarative, efficient, and flexible JavaScript library for building user interfaces.

    • Vue.js photo Vue.js

      🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

    • Typescript photo Typescript

      TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

    • TensorFlow photo TensorFlow

      An Open Source Machine Learning Framework for Everyone

    • Django photo Django

      The Web framework for perfectionists with deadlines.

    • D3 photo D3

      Bring data to life with SVG, Canvas and HTML. 📊📈🎉

    Recommend Topics

    • javascript

      JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

    • web

      Some thing interesting about web. New door for the world.

    • server

      A server is a program made to process requests and deliver data to clients.

    • Machine learning

      Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

    • Game

      Some thing interesting about game, make everyone happy.

    Recommend Org

    • Facebook photo Facebook

      We are working to build community through open source technology. NB: members must have two-factor auth.

    • Microsoft photo Microsoft

      Open source projects and samples from Microsoft.

    • Google photo Google

      Google ❤️ Open Source for everyone.

    • D3 photo D3

      Data-Driven Documents codes.