# :rocket: Proyecto base
## Índice
__1. Configuración del entorno de trabajo__
__2. BBDD__
__3. CRUD usuario__
__4. CRUD nueva entidad__
__5. Estilos__
__6. REST__
## Configuración del entorno de trabajo
- __Instalación Software__
- [X] [Mysql5.7](https://dev.mysql.com/downloads/mysql/5.7.html)
- [x] [Mysql Workbench](https://dev.mysql.com/downloads/mysql/5.7.html)
- [x] [Git](https://git-scm.com/downloads)
- [x] [Sourcetree](https://www.sourcetreeapp.com/)
- [x] [Netbeans](https://netbeans.org/)
- __Documentación__
- [x] [Mybatis](https://mybatis.org/mybatis-3/es/index.html)
- [ ] [Primefaces](https://www.primefaces.org/)
## BBDD
- [ ] Lanzar script de generación
- [ ] Crear nuevas tablas
## CRUD usuario
- __Mantenimiento usuario__
- Backend
- [ ] Generar mapper _XML_ (está creado, échale un ojo)
- [ ] Generar mapper _java_ (está creado, échale un ojo)
- [ ] Generar servicio _java_ (está creado, échale un ojo)
- "Frontend"
- [ ] Crear controlador _java-bean_
- [ ] Crear vista _xhtml_
## CRUD nueva entidad
- __Mantenimiento nueva entidad__
- Backend
- [ ] Generar mapper _XML_
- [ ] Generar mapper _java_
- [ ] Generar servicio _java_
- "Frontend"
- [ ] Crear controlador _java-bean_
- [ ] Crear vista _xhtml_
- __Configuraciones extras__
- [ ] Crear permisos para usuarios
- [ ] Crear algún parámetro de configuración
## Estilos
- [ ] Pon las pantallas bonitas (a tu gusto)
## REST
- [ ] GET de la información de la entidad creada en BBDD
- [ ] POST sobre la entidad creada en BBDD
## :package: Paquetes importantes
:::info
Source Packages > es.metadata.proyectobase.utils
~ Utilidades :ok_hand:
Source Packages > es.metadata.proyectobase.controllers
~ Controladores de las vistas (xhtml) :ok_hand:
Source Packages > es.metadata.proyectobase.model
~ Modelos java para las entidades (POJOs) :ok_hand:
Source Packages > es.metadata.proyectobase.services
~ Capa de servicios (lógica de negocio)
Source Packages > es.metadata.proyectobase.dao
~ Mappers java (interface para inyectar en la capa de servicio)
Other Source > src/main/resources > es.metadata.proyectobase.dao
~ Mappers xml (archivo de mapeo con las sentencias SQL)
Other Source > src/main/resources > es.metadata.proyectobase.configuracion
~ Aquí se encuentran los archivos de configuración de los _middleware_, configuración de desarrollo y configuración de mybatis
:::
## :fire: Cositas importantes
:::info
Conexión a BBDD
~ * El patrón que se sigue com arquitectura de la aplicación es _Modelo-Vista-Controlador_ (estarás harto de escucharlo)
~ * Para poder acceder a cualquier bean dentro de otro (ya sea en la capa de servicio o en los controladores) debes utilizar la anotación _@Inject_
~ * La lógica de negocio de la aplicación correspondería a la capa de servicios
~ * Todos los _Beans_ deben implementar la interfaz _Serializable_
~ * En el archivo de configuración de mybatis _<nombre>.xml_ tendrás que cambiar la ip de la conexión por _localhost_
:::