Curso de Desarrollo de Aplicaciones con SpringBoot (Presencial Virtual Online - Rincón de la Victoria)

CONVOCATORIA CERRADA


 

Programa cofinanciado por el Fondo Social Europeo y la Agencia Pública Administrativa Local Delphos del Ayuntamiento de Rincón de la Victoria.

PRESENTACIÓN

El Fondo Social Europeo, EOI- Escuela de Organización Industrial y el Ayuntamiento de Rincón de la Victoria, conscientes de la necesidad de aumentar la empleabilidad de las personas desempleadas de larga duración y de más edad, lanzan este programa que pretende capacitarlos para su reincorporación en el mundo laboral especializándoles en los ámbitos más demandados por el tejido empresarial.

¡Solicita ya tu plaza!

Objetivos

Dotar a los jóvenes de los conocimientos, habilidades y aptitudes necesarias para llevar a cabo la realización de una aplicación web completa así como adquirir conocimiento del funcionamiento de la industria tecnológica y su preparación para la inmersión en el mercado laboral.

El temario está orientado cubrir los aspectos básicos del desarrollo de aplicaciones con un enfoque práctico:

  • Aprender los principales lenguajes de programación básicos HTML , CSS, JAVASCRIPT y JAVA.
  • Aprender a utilizar los Frameworks más usados en Front y Back end, Angular, Bootstrap, Node, etc.
  • Aprender a diseñar una aplicación, cumpliendo unos objetivos establecidos.
  • Conocer las herramientas necesarias para trabajar en cada fase de producción.
  • Tener unos fundamentos del manejo del compilador SPRINGBOOT para creación de un proyecto.
  • Conocer las herramientas que Spring proporciona para la creación de aplicaciones.
  • Aprender a crear y gestionar servidores de datos.
  • Aprender fundamentos de Cloud y transferencia de datos.
  • Aplicar los conocimientos adquiridos en la realización de un proyecto individual.
  • Adquirir una perspectiva real sobre la industria y tendencias actuales.

Datos generales

Convocatoria
2023
Horario

De lunes a viernes en horario de 9:00 h a 14:00 h, online, salvo la primera y última sesión que serán presenciales.

Las tutorías individuales se realizarán de forma online y en horario de tarde.

Duración

160 horas de formación grupal distribuidas en varios bloques formativos, además de tutorías individualizadas por participante.

Precio:

Gratuito. Programa cofinanciado por el Fondo Social Europeo y la Agencia Pública Administrativa Local Delphos del Ayuntamiento de Rincón de la Victoria.

Fecha del curso
Provincia
Málaga
Modalidad
Online

Contenidos

Módulo 1: Repaso de programación

  • Iniciación al lenguaje HTML
  • Iniciación al lenguaje CSS
  • Bootstrap
  • Iniciación al lenguaje JAVASCRIPT

Módulo 2: Inicio SpringBoot

  • Estructura de una aplicación Spring Bott
  • Creando el controlador y la vista
  • Repaso lenguaje JAVA
  • Pasar datos a la vista
  • Anotación @RequestMapping sobre el controlador
  • Introducción MVC
  • El objeto Model
  • Directiva if de Thymeleaf
  • Directiva each (foreach) de Thymeleaf
  • Anotación @ModelAttribute
  • Anotación @RequestParam
  • Anotación @PathVariable
  • Agregar recursos estáticos y estilos CSS personalizados
  • Inyectar valores usando la anotación @Value
  • Agregar otros archivos properties personalizados para los textos
  • Retornar redirect y forward como respuesta en métodos del controlador
  • Despliegue y ejecución desde terminal (deploy)
  • Sprint Initializer
  • Recursos de Spring MVC y la Inyección de Dependencias

Módulo 3:  Inyección de dependencias

  • Implementando inyección de dependencia con la anotación @Autowired
  • Inyectando mediante la interfaz
  • Introducción al contenedor y la inyección de dependencias
  • Inyección de dependencias vía constructor y métodos setters
  • Anotación @Primary
  • Anotación @Qualifier
  • Registrar componentes usando clase de configuración y la anotación @Bean
  • Ejemplo Factura y relaciones entre sus componentes
  • Registrando componente ItemsFactura
  • Creando el controlador FacturaController y su vista
  • Registrando otras líneas para la factura
  • Ciclo de vida del componente
  • Contextos (Scope) de los componentes

Módulo 4: Formularios Thymeleaf y databinding

  • Método handler para recibir y procesar los datos enviados
  • Crear la clase model del formulario
  • Mapear los campos del formulario al objeto model
  • Validación del formulario usando anotaciones
  • Añadir los mensajes de errores en la vista del formulario
  • El atributo object de thymeleaf en el elemento form
  • Mostrar valores de atributos del objeto model en el formulario
  • La anotación @SessionAttributes para manter los datos durante el ciclo del form
  • La anotación @Size para rangos y @Email para validar correo electrónico
  • Mensajes de errores personalizados usando properties
  • Archivos properties y acentos con UTF-8
  • Validación personalizada usando anotación @Pattern para expresiones regulares
  • Validación personalizada usando una clase Validation
  • Registrar una clase validador con la anotación @InitBinder
  • Validación personalizada usando anotaciones
  • Validación de números enteros con @Max @Min y NotNull
  • Validación de fechas con @NotNull y dando formato con @DateTimeFormat
  • Validación de fechas con input type date de HTML5 y @Past y @Future
  • Formatear fechas con @InitBinder y registrar un CustomDateEditor
  • Implementar propio filtro custom property editor para convertir a mayúscula
  • Lista select desplegable
  • Implementar checkboxes
  • Añadir estilos CSS al formulario con Bootstrap

Módulo 5: Interceptores HTTP

  • Implementando interceptor TiempoTranscurrido
  • Registrando interceptor en la configuración de spring
  • Implementando fragment interceptor para reutilizar código en thymeleaf
  • Saliendo del interceptor en peticiones POST http - return en post handle
  • Retornando false en un interceptor
  • Creando interceptor horario
  • Creando método handler cerrado
  • Registrando interceptor
  • Revisando error NullPointerException

Módulo 6: Manejo de errores

  • Personalizando error 404 y 500
  • Anotación @ControllerAdvice para manejo de excepciones
  • Personalizando página de error para la excepción NumberFormatException
  • Manejando excepción personalizada creando clases Model y Service
  • Añadiendo método handler ver
  • Creando clase Exception personalizada
  • Lanzamiento de exepción usando Api Optional de Java

Módulo 7: Spring MVC y Data jpa

  • Crear la clase Entidad JPA anotada con @Entity
  • Crear la clase de Acceso a Datos o DAO con Entity Manager - @Repository
  • Crear controlador con la acción handler listar
  • Crear la vista listar.html
  • Decorar la vista listar con estilos CSS Bootstrap
  • La consola H2 Database
  • Agregar crear en Repositorio Dao y Controlador
  • Crear la vista crear y formulario
  • Mejorar formulario con estilos Bootstrap CSS
  • Agregar campo fecha en formulario
  • Agregar reglas de validación usando anotaciones
  • Agregar mensajes de errores personalizados
  • Agregar mensajes de errores sobre el formulario
  • Agregar editar
  • Agregar eliminar
  • Agregar la clase Service
  • Implementar el Dao con la interface CrudRepository
  • Instalar MySQL
  • Cambiar Datasource a MySQL en el proyecto
  • Agregar campo file en formulario y procesar MultipartFile en el Controlador
  • Agregar método handler ver imagen en el Controlador
  • Creando la vista ver para visualizar la imagen
  • Agregar directorio uploads externo al proyecto (Resource Handler)
  • Agregar directorio absoluto y externo en raíz del proyecto
  • Cargando imagen programáticamente en la respuesta HTTP - con ResponseEntity
  • Eliminar archivo de imagen
  • La clase UploadFileService
  • Inicializando directorio uploads automáticamente usando CommandLineRunner

Módulo 8: Aplicación Factura

  • Asociaciones: ManyToOne Bidireccional - Clases Entity Factura y Cliente
  • Asociaciones: OneToMany Unidireccional - Clases Entity Factura y ItemFactura
  • Asociaciones: ManyToOne Unidireccional - Clases Entity ItemFactura y Producto
  • Analizando y revisando las tablas y relaciones en MySQL Workbench
  • Listando las facturas en la vista de detalle del Cliente - ver.html
  • Creando controlador FacturaController con la acción handler crear
  • Creando la vista formulario de la factura
  • Links para acceder al formulario factura
  • Escribiendo código JavaScript para el Autocomplete usando jQuery UI
  • Consulta JPA para buscar productos en el Autocomplete
  • Creando la plantilla fragment para crear los items de la factura con jQuery
  • Creando las líneas de la Factura usando jQuery y la plantilla de ítems
  • Calculando el total de la línea o importe
  • Incrementando cantidad de un producto existente en el detalle de la factura
  • Eliminar linea de la factura
  • Calculando Gran Total de la Factura
  • Creando Crud Repository Factura e implementando save en clase Service
  • Implementando método para buscar productos en el serviceservice
  • Implementando método handler guardar en FacturaController
  • Validando el formulario de la factura
  • Creando método ver detalle en FacturaController
  • Creando la vista ver detalle: Parte 1 Datos de la Factura
  • Creando la vista ver detalle: Parte 2 Líneas de la Factura
  • Creando la vista ver detalle: Parte 3 Observación de la Factura
  • Eliminando la factura y sus líneas
  • Analizando configuración Cascade All en guardar y eliminar factura

Módulo 9: Spring Security

  • Breve introducción a Spring Security
  • Añadiendo las dependencias necesarias
  • Implementando la clase SpringSecurityConfig para registrar usuarios
  • Añadiendo método configure(HttpSecurity http) para las reglas ACL en las rutas
  • Añadiendo configuración para el formLogin y logout
  • Creando la clase controladora LoginController
  • Añadiendo la vista personalizada login.html
  • Validando LoginController con los mensajes de error
  • Añadiendo los links del login y logout en el layout para iniciar y cerrar sesión
  • Manejo de errores de acceso denegado AccessDeniedPage
  • Añadiendo seguridad en nuestras vistas y botones del CRUD
  • Obteniendo el usuario autenticado en el controlador
  • Obteniendo programáticamente el role (s) del usuario en el controlador
  • Chequear autorización con SecurityContextHolderAwareRequestWrapper
  • Agregar seguridad en el controlador usando anotaciones @Secured o @PreAuthorize
  • BCrypt password encoder
  • Creando el esquema de tablas de base de datos
  • Configurando JDBC Authentication
  • Creando las entidades necesarias Usuario y Role
  • Creando el repositorio JPA IUsuarioDao
  • Creando la clase de servicio JpaUserDetailsService
  • Configurando y registrando JpaUserDetailsService

Módulo 10: View Technologies: Exportaciones

  • Exportar a PDF
  • Exportar a Excel
  • Exportar a CSV
  • Exportar Json
  • Exportar XML

Módulo 11: Angular

  • Estructura de directorio del proyecto angular
  • Estructura de directorio del proyecto angular: Parte 2 el directorio src
  • Integrar Bootstrap con Angular
  • Creando nuevo componente HeaderComponent
  • Separando el template del componente con TemplateUrl
  • Creando nuevo componente FooterComponent
  • Directiva estructural *ngFor
  • Directiva estructural *ngIf
  • Creando el componente clientes.component
  • Listando los objetos del tipo Cliente
  • Creando archivo clientes.json.ts con la lista de objetos
  • Creando la clase de Servicio ClienteService y la Inyección de Dependencia
  • Implementando Observable en nuestra clase Servicio ClienteService
  • Implementando Rutas en Angular y navegación
  • Actualización: sobre el archivo angular.cli.json vs angular.json
  • Configurando e integrando Bootstrap de forma local en nuestra app
  • Instalando Bootstrap utilizando el comando npm desde el terminal
  • Creando Proyecto Backend API REST
  • Configurando el Datasource a MySQL en el proyecto backend
  • Creando la Base de Datos
  • Añadiendo la clase Entity Cliente al Backend
  • Añadiendo las clases Repository y Service de la lógica de negocio
  • Creando controlador @RestController y EndPoint para listar
  • Añadiendo Datos de pueba
  • Usando Postman para probar nuestras APIs
  • Uso de Cors para compartir recursos en API REST
  • Implementando Servicio Angular con HttpClient

Módulo 12: Cloud

  • ¿Qué es Heroku Cloud y qué ventajas tiene usarlo?
  • AWS, GCP, Heroku Cloud, Azure… ¿Qué usar para desplegar nuestra app?
  • ¿Qué es Google Cloud Platfom?
  • Creación de una cuenta
  • Primeros pasos
  • Despliegue en el servidor

Metodología

El programa cuenta con una estructura online con presencia virtual, con clases muy prácticas en las que los alumnos trabajarán los conceptos a la vez que estos son enseñados por el docente.

Proyecto final

El curso consta además de un proyecto de aplicación(producto mínimo viable) que podrá ser desarrollado individualmente. Dicho proyecto será planteado en distintas fases:

  • Presentación de idea matriz
  • Creación del documento de diseño
  • Definición de MVP
  • Trabajo y tutorías
  • Presentación

Información e Inscripción

¡Solicita ya tu plaza!

Contacta con nosotros en:

Tl: 954 46 33 77

mail:  mariolaromero@eoi.es