Skip to content

Commit

Permalink
Optimización, estructuración y documentación
Browse files Browse the repository at this point in the history
Finalizada aplicación para acceso a datos
  • Loading branch information
ismenc authored Feb 3, 2018
2 parents 823db60 + b62ab99 commit b8d877e
Show file tree
Hide file tree
Showing 93 changed files with 16,744 additions and 672 deletions.
76 changes: 52 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,45 @@
# Boo-King

Boo-King es una aplicación de préstamo de libros entre **personas, no bibliotecas** que permite almacenar datos de libros, arrendadores y préstamos en una base de datos MySQL. Los arrendatarios se han obviado para simplificar un poco el proyecto.
Boo-King es una aplicación de préstamo de libros entre **personas** que permite almacenar datos de libros, arrendadores y préstamos en una base de datos MySQL. La aplicación nos permitirá manipular estos datos de forma amigable. Los arrendatarios se han obviado para simplificar un poco el proyecto.

## Funcionamiento

Nuestra aplicación ofrece al usuario un menú con las siguientes opciones:
```
[1] Añadir arrendador
[2] Añadir libro
[3] Nuevo préstamo
[4] Modificar libro
[5] Borrar arrendador
[6] Consultar arrendador
[7] Consultar libro
[8] Consultar préstamo
[9] Buscar arrendadores nombre
[10] Buscar prestamos nombre
[11] Salir
+------------ MENÚ -------------+
| Básico |
|-------------------------------|
| [1] Insertar dato |
| [2] Actualizar dato |
| [3] Borrar dato |
| [4] Consultar objeto |
|-------------------------------|
| Avanzado |
|-------------------------------|
| [5] Listar arrendadores nombre|
| [6] Listar prestamos nombre |
| [7] Préstamos en un año |
| [8] Estadísticas globales |
| [9] Salir |
+-------------------------------+
```

Tras elegir una opción, el programa preguntará al usuario por los datos necesarios para operar.
Tras elegir una opción, el programa interactuará con el usuario para pedirle los datos necesarios para operar.

### Aplicación Java

Java es el encargado de realizar las operaciones correspondientes según la opción de menú elegida. La clase principal (ejecutable) es [Main.java](src/com/booking/ejecutable/Main.java).
**Java** es el encargado de realizar las operaciones correspondientes según la opción de menú elegida. Éste tendrá que realizar operaciones lógicas y manipular las librerías que harán de interfaz con la base de datos.

La clase principal (ejecutable) es [Main.java](src/com/booking/ejecutable/Main.java).
El proyecto está organizado en paquetes de forma que su estructura queda de la siguiente forma:

Paquete | Descripción
------------ | ------------
[ejecutable](./src/com/booking/ejecutable/) | Paquete con los archivos que serán ejecutados
[persistencia](./src/com/booking/persistencia/) | Clases que definen los objetos que manipularemos
[modelo](./src/com/booking/modelo/) | Clases con utilidades recurridas
[dao](./src/com/booking/dao/) | Clases que definen la interacción con la BD

En secciones siguientes explicamos cómo Java interacciona con la base de datos.

### Servidor MySQL
Expand All @@ -46,19 +62,31 @@ Préstamo-Stack | 1-N
Stack-Libro | N-1
(Préstamo-Libro) | N-M


### Hibernate

Para conectar nuestro programa Java con MySQL hacemos uso de la librería **Hibernate**, que nos permitirá abstraernos de SQL y trabajar con objetos de forma que el proyecto se agiliza mucho más. También nos ayudará a validar los datos de entrada ahorrandonos el trabajo de programarlo en Java.
Para conectar nuestro programa Java con MySQL hacemos uso de la librería **Hibernate**, que nos permitirá abstraernos de SQL y trabajar con objetos de forma que el proyecto se agiliza mucho más. También hacemos uso de **Hibernate validator**, que nos ayudará a validar los datos de entrada ahorrándonos el trabajo de programar validaciones en Java.

## Estructura del proyecto
## Documentación

Hemos organizado el proyecto en paquetes de forma que su estructura queda definida así:
Toda la **documentación** se encuentra en la carpeta [doc](./doc/) incluyendo los siguientes documentos.

Paquete | Descripción
------------ | ------------
[ejecutable](./src/com/booking/ejecutable/) | Paquete con los archivos que serán ejecutados
[persistencia](./src/com/booking/persistencia/) | Clases que definen los objetos que manipularemos
[modelo](./src/com/booking/modelo/) | Clases con utilidades recurridas
[dao](./src/com/booking/dao/) | Clases que definen la interacción con la BD
### Monografía del proyecto

Se trata de un white paper o manual dónde se explica el proyecto Boo-King. Puedes encontrarlo aquí: [dosier](./doc/dosier/Booking.pdf).

### Documentación Javadoc

Es la documentación web generada a partir de los comentarios Javadoc en código. Puedes acceder a ella a través del [índice Javadoc](./doc/index.html).

## ¿Cómo ejecutar la aplicación?

### Base de datos

1. Deberemos instalar la base de datos MySQL con PHPMyAdmin.
2. Desde PHPMyAdmin, crear la base de datos 'booking'.
3. Importar el archivo [BaseDatos.sql](BaseDatos.sql) en la base de datos que acabamos de crear.

### Lanzar aplicación Java

1. Configurar datos de acceso a BD en el archivo [hibernate.cfg.xml](./src/hibernate.cfg.xml).
2. Lanzar Main.java desde un entorno de desarrollo Java.u
34 changes: 34 additions & 0 deletions doc/allclasses-frame.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="es">
<head>
<!-- Generated by javadoc (1.8.0_151) on Sat Feb 03 17:22:52 CET 2018 -->
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
<title>All Classes</title>
<meta name="date" content="2018-02-03">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<h1 class="bar">All&nbsp;Classes</h1>
<div class="indexContainer">
<ul>
<li><a href="com/booking/persistencia/Arrendador.html" title="class in com.booking.persistencia" target="classFrame">Arrendador</a></li>
<li><a href="com/booking/dao/ArrendadorDAO.html" title="class in com.booking.dao" target="classFrame">ArrendadorDAO</a></li>
<li><a href="com/booking/modelo/BookingException.html" title="class in com.booking.modelo" target="classFrame">BookingException</a></li>
<li><a href="com/booking/modelo/Categoria.html" title="enum in com.booking.modelo" target="classFrame">Categoria</a></li>
<li><a href="com/booking/dao/GenericEntity.html" title="class in com.booking.dao" target="classFrame">GenericEntity</a></li>
<li><a href="com/booking/modelo/HibernateUtil.html" title="class in com.booking.modelo" target="classFrame">HibernateUtil</a></li>
<li><a href="com/booking/persistencia/Libro.html" title="class in com.booking.persistencia" target="classFrame">Libro</a></li>
<li><a href="com/booking/dao/LibroDAO.html" title="class in com.booking.dao" target="classFrame">LibroDAO</a></li>
<li><a href="com/booking/ejecutable/Main.html" title="class in com.booking.ejecutable" target="classFrame">Main</a></li>
<li><a href="com/booking/persistencia/ObjetoBookingGenerico.html" title="class in com.booking.persistencia" target="classFrame">ObjetoBookingGenerico</a></li>
<li><a href="com/booking/persistencia/Prestamo.html" title="class in com.booking.persistencia" target="classFrame">Prestamo</a></li>
<li><a href="com/booking/dao/PrestamoDAO.html" title="class in com.booking.dao" target="classFrame">PrestamoDAO</a></li>
<li><a href="com/booking/persistencia/Stack.html" title="class in com.booking.persistencia" target="classFrame">Stack</a></li>
<li><a href="com/booking/dao/StackDAO.html" title="class in com.booking.dao" target="classFrame">StackDAO</a></li>
<li><a href="com/booking/modelo/Utilidades.html" title="class in com.booking.modelo" target="classFrame">Utilidades</a></li>
</ul>
</div>
</body>
</html>
34 changes: 34 additions & 0 deletions doc/allclasses-noframe.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="es">
<head>
<!-- Generated by javadoc (1.8.0_151) on Sat Feb 03 17:22:52 CET 2018 -->
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
<title>All Classes</title>
<meta name="date" content="2018-02-03">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<h1 class="bar">All&nbsp;Classes</h1>
<div class="indexContainer">
<ul>
<li><a href="com/booking/persistencia/Arrendador.html" title="class in com.booking.persistencia">Arrendador</a></li>
<li><a href="com/booking/dao/ArrendadorDAO.html" title="class in com.booking.dao">ArrendadorDAO</a></li>
<li><a href="com/booking/modelo/BookingException.html" title="class in com.booking.modelo">BookingException</a></li>
<li><a href="com/booking/modelo/Categoria.html" title="enum in com.booking.modelo">Categoria</a></li>
<li><a href="com/booking/dao/GenericEntity.html" title="class in com.booking.dao">GenericEntity</a></li>
<li><a href="com/booking/modelo/HibernateUtil.html" title="class in com.booking.modelo">HibernateUtil</a></li>
<li><a href="com/booking/persistencia/Libro.html" title="class in com.booking.persistencia">Libro</a></li>
<li><a href="com/booking/dao/LibroDAO.html" title="class in com.booking.dao">LibroDAO</a></li>
<li><a href="com/booking/ejecutable/Main.html" title="class in com.booking.ejecutable">Main</a></li>
<li><a href="com/booking/persistencia/ObjetoBookingGenerico.html" title="class in com.booking.persistencia">ObjetoBookingGenerico</a></li>
<li><a href="com/booking/persistencia/Prestamo.html" title="class in com.booking.persistencia">Prestamo</a></li>
<li><a href="com/booking/dao/PrestamoDAO.html" title="class in com.booking.dao">PrestamoDAO</a></li>
<li><a href="com/booking/persistencia/Stack.html" title="class in com.booking.persistencia">Stack</a></li>
<li><a href="com/booking/dao/StackDAO.html" title="class in com.booking.dao">StackDAO</a></li>
<li><a href="com/booking/modelo/Utilidades.html" title="class in com.booking.modelo">Utilidades</a></li>
</ul>
</div>
</body>
</html>
Loading

0 comments on commit b8d877e

Please sign in to comment.