---
# System prepended metadata

title: ':rocket: Proyecto base'

---

# :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_
:::