
En esta lección se explica que es el proyecto Spring Boot y como funciona.
En esta lección se explica como se mantiene actualizado el curso y también encontrarás todo el código fuente desarrollado durante el curso y la documentación en formato PDF.
En esta lección se explica como descargar e instalar el IDE de desarrollo Spring Tools 4 en un sistema operativo Windows.
En esta lección se explica como crear un proyecto de Spring Boot utilizando el servicio de Spring Initializr. Posteriormente se explica como importar el proyecto en Spring Tools.
En esta lección vamos a ver como Iniciar/Detener un proyecto web basado en Spring Boot desde el IDE.
En esta lección vamos a ver como crear nuestro primer controlador en una aplicación web desarrollada con Spring Boot.
En esta lección aprenderás como perzonalizar el puerto HTTP en el que escucha tu aplicación Spring Boot.
En esta lección vamos a ver las principales características del framework Spring MVC
En esta lección vamos a crear el proyecto base que usaremos para el proyectos de publicación de ofertas de trabajo.
En esta lección veremos la estrutura de un controlador (Controller) en Spring MVC
En esta lección aprenderás a configurar la página de inicio de una aplicación web desarrollada con Spring Boot
En esta lección vamos a ver de forma general que es Thymeleaf.
En esta lección veremos como agregar datos al modelo, para posteriormente desplegar estos datos en las vistas.
En esta lección vamos a ver como configurar la plantilla de archivos HTML de nuestro IDE STS para que incluya el namespace de Thymeleaf en las plantillas HTML.
En esta lección veremos como agregar al modelo los tipos de datos simples más comunes y veremos como mostrarlos en la vista.
En esta lección veremos como agregar al modelo una lista de String y veremos como desplegarla en la vista utilizando la expresión <th:each>.
En esta leccion vamos a crear nuestra primera clase de modelo Vacante que va representar los datos de una oferta de trabajo para publicar en Internet.
En esta lección veremos agregar al modelo un tipo de dato Vacante y posteriormente veremos como renderizarlo en la vista.
En esta lección veremos como agregar al modelo objetos personalizados y veremos como mostrarlos en la vista dentro de una tabla HTML.
En esta lección vamos a ver como integrar el Framework Bootstrap vía CDN. Una vez integrado le daremos formato a una tabla HTML.
En esta lección aprenderás como puedes integrar condicionales de Thymeleaf en tus vistas. En concreto veremos como usar el operador Elvis (?:) y el condicional if - unless.
En esta lección veremos un ejemplo práctico de como como usar el operador Elvis (?:) y el condicional if - unless.
En esta lección veremos como se pueden incluir archivos estáticos como imágenes, javascript y hojas de estilo en tus vistas.
En esta lección vamos a ver como incluir una imagen en una vista.
En esta lección vamos a ver como incluir la imagen para cada Vacante de forma dinámica.
En esta lección se explica paso a paso el ciclo de vida de un petición HTTP en una aplicación desarrollada con Spring MVC.
En esta lección vamos a ver para que sirve la anotación @RequestMapping a nivel de métodos.
En esta lección veremos un ejemplo práctico de la anotación @RequestMapping.
En esta lección vamos a ver para que sirve la anotación @RequestMapping a nivel de una clase
En esta lección se explica como generar URLs dinámicas en Spring MVC utilizando la anotación @PathVariable.
En esta lección vamos a ver un ejemplo práctico de como generar URLs dinámicas por medio de la anotación @PathVariable.
En esta lección vamos a ver como generar un link con un elemento <a> que responda a una URL dinámica.
En esta lección se explica como utilizar la anotación @RequestParam para recibir los parámetros de peticiones GET y POST en los métodos de los controladores.
En esta lección veremos un ejemplo practico del uso de la anotacion @RequestParam para recibir parámetros HTTP tipo GET.
En esta lección veremos un ejemplo práctico del uso de la anotacion @RequestParam para recibir parámetros HTTP tipo POST desde un formulario HTML.
En esta lección vamos a crear nuestra primera clase de servicio llamada VacantesServiceImpl. Esta clase tendrá un método el cual proporcionará la lista de vacantes para renderizarlas en la página principal.
En esta lección vamos a ver como utilizar la anotación @Autowired para poder inyectar una instancia de una clase de servicio en un controlador.
En esta lección vamos a ver un ejemplo práctico de como utilizar la anotación @Autowired para inyectar la clase de servicio VacantesServiceImpl en el controlador HomeController.
En esta lección vamos a agregar un nuevo método llamado buscarPorId a nuestra interfaz IVacantesService
En esta lección se explicará la plantilla HTML que se utilizará para el desarrollo del proyecto final.
En esta lección se explica como integrar el archivo home.html para cambiar el diseño de la página principal de la aplicación EmpleosApp.
En esta lección se renderiza la lista de Vacantes de forma dinámica en la página principal.
En esta lección de integra el archivo detalle.html de la plantilla para renderizar los detalles de una vacante de forma dinámica.
En esta lección integraremos el diseño del formulario HTML para crear una nueva Categoría.
En esta leccion veremos como reutitilizar código HTML en nuestras plantillas HTML.
En esta leccion veremos un ejemplo pŕactico de como reutitilizar código HTML en nuestras plantillas HTML.
En esta lección vamos a integrar el código HTML del archivo formVacante.html en nuestro proyecto. Este será el diseño final para el formulario para crear una nueva Vacante.
En esta lección vamos a ver que es Data Binding en Spring MVC. Esta característica es uno de los puntos fuertes de este excelente framework, ya que nos ayuda a mapear los datos de los formularios HTML a nuestras clases de modelo de forma automática.
En esta lección vamos a ver un ejemplo práctico de Data Binding en Spring MVC. El ejemplo consiste en extraer los datos del formulario HTML para crear Vacantes y pasar los datos de este formulario a la clase de modelo Vacante de forma automática.
En esta lección vamos a ver utilizar la anotación @InitBinder para crear métodos para personalizar el Data Binding en los controladores
En esta lección vas a crear una vista para practicar muchos de los conceptos que han sido aprendido hasta este momento en el curso. La vista que vas a desarrollar será la vista utilizada para desplegar el listado de todas las vacantes que se encuentran almacenadas en una lista Enlazada.
En esta lección vamos a ver como podemos verificar si ocurrio algún error después de realizarse el Data Binding. Tambien vamos a ver como podemos desplegar cada uno de los errores en la consola de salida.
En esta lección vamos a ver como utilizar la expresion {#fields.hasErrors('*')} para desplegar los errores de Data Binding en la vista.
En esta lección vamos a ver como realizar una redirección (redirect) desde un método en un controlador.
En esta lección vamos a ver como utilizar los Flash Attributes de Spring MVC para agregar atributos para que estén disponible en otra petición diferente, por ejemplo al utilizar el patrón Post/Redirect/Get.
En esta lección se explica el funcionamiento del Plug-In llamado TinyMCE que permite integrar un Editor Web basado en HTML y Javascript en aplicaciones web.
En esta lección veremos como funciona el Plug-In llamado TinyMCE que permite integrar un Editor Web basado en HTML y Javascript en aplicaciones web.
En este ejercicio practicarás la inyección de dependencias de una clase de servicio en un controlador
En esta lección aprenderás a utilizar la expresión th:field de Thymeleaf para vincular los inputs de los formularios HTML a las propiedades de las clases de modelo.
En esta lección veremos como generar un input de tipo <select> de forma dinámica con valores de un List<Categoria>.
En esta lección vamos a ver un ejemplo práctico de Data Binding utilizando tipos de datos definidos por el usuario. Para este ejemplo, agregaremos a nuestra clase Vacante un atributo de tipo Categoria y configuremos el input de tipo <select> de Categorias para recibir la categoria seleccionada.
En esta lección a ver la configuración necesaria para permitir Upload de archivos en una aplicación web desarrollada con Spring Boot
En esta lección se proporciona una clase de Utileria con soporte para guardar los archivos subidos desde un formulario HTML.
En esta lección vamos a ver un ejemplo práctico de como subir archivos al servidor. El ejemplo consiste en subir la imágen de la vacante desde el formulario HTML y guardarla en el directorio C:\empleos\img-vacantes
En esta lección vamos a ver como reemplazar los espacios del nombre del archivo de la imagen con el caracter guión "-".
En esta lección vamos a ver como agregar algunos caracteres aleatorios a los nombres de los archivos para evitar duplicados.
En esta lección se explica como inyectar propiedades definidas en el archivo application.properties utilizando la anotación @Value.
Introducción a Spring Data JPA con Spring Boot.
En esta lección se explican los conceptos de JPA (Java Persistence API) y ORM (Object Relational Mapping).
En esta lección veremos las principales características del módulo de Spring Data JPA.
En esta lección te voy a explicar el diagrama entidad relación de la base de datos que vamos a utilizar para el proyecto del Empleos.
En esta lección vamos a crear la base de datos empleosdb y posteriormente vamos a importar el script con el código SQL para crear todas la tablas.
En esta lección vamos a crear el proyecto base para desarrollar todos los ejemplos de Spring Data JPA
En esta lección se explica como configurar el Datasource de conexión a una base de datos MySQL desde un proyecto Spring Boot.
En esta lección vamos a configurar nuestro proyecto base con Spring Data JPA.
En esta lección veremos como configurar una aplicación Spring Boot con un entorno NO WEB. Para esta vamos a implementar la interfaz CommandLineRunner para configurar un proyecto basado en consola.
En esta lección vamos a ver para que sirven la anotaciones @Entity, @Table, @Id y @GeneratedValue.
En esta lección vamos a crear un repositorio JPA que permita las operaciones CRUD para nuestras entidades de tipo Categoria. Para esta tarea vamos a utilizar la interfaz CrudRepository de Spring Data JPA.
En esta lección veremos como inyectar una instancia de nuestro repositorio CategoriasRepository en nuestra aplicación principal.
En esta lección vamos a ver como insertar una entidad en una tabla utilizando el método save().
En esta lección vamos a ver como utilizar el método findById() para buscar una entidad por Id.
En esta lección vamos a ver como actualizar los datos de una entidad utilizando el método save().
En esta lección vamos a ver como eliminar una entidad por medio del método deleteById().
En esta lección vamos a ver como utilizar el método count() para obtener el número total de registros de una tabla
En esta lección vamos a ver como utilizar el método deleteAll() para eliminar todas las entidades de una tabla.
En esta lección vamos a ver como podemos utilizar el método findAllById() de nuestro repositorio para recuperar varias entidades por Id.
En esta lección vamos a ver como recuperar todas la entidades de una tabla utilizando el método findAll().
En esta lección vamos a ver como utilizar el método existsById para saber si una entidad con un Id en particular existe en la base de datos.
En esta lección veremos como usar el metodo saveall para guardar varias Categorias a la vez.
En esta lección vamos a explicar de forma general dos interfaces (PagingAndSortingRepository y JpaRepository) que extienden la funcionalidad de la interfaz CrudRepository.
En esta lección vamos a ver como recuperar todas las entidades de una tabla utilizando el método findAll(). En este caso, al extender la interfaz JpaRepository, este método regresa una lista.
En esta lección vamos a ver como utilizar el método deleteAllInBatch para eliminar todas las entidades de una tabla.
En esta lección vamos a ver como recuperar todas las entidades ordenadas por un campo en particular.
En esta lección vamos a ver como recuperar las entidades con paginación.
En esta lección vamos a ver como recuperar entidades con el método findAll() con paginación y ordenamiento por un campo.
En esta lección vamos a configurar el repositorio para administrar las entidades de tipo Vacante en la base de datos.
En esta lección vamos a ver como utilizar la anotación @Transient del API de JPA para indicar que un atributo de una clase no mapea ningún campo en la tabla de la base de datos.
En esta lección vamos a ver como utilizar la anotación @OneToOne para configurar una relación 1-1 entre la tabla de Vacantes y la tabla de Categorias.
En esta lección veremos como guardar una nueva vacante en la base de datos y ademas veremos como asignarle su Categoria correspondiente.
En esta lección vamos a crear 2 clases de modelo: Usuario y Perfil. Posteriormente vamos a crear un repositorio de Spring Data JPA para cada clase de modelo.
En esta lección vamos a crear los registros de ROLES que servirán para la seguridad de nuestra aplicación de Empleos.
En esta lección vamos a ver como se usa la anotación @ManyToMany para configurar una relación Muchos a Muchos con JPA.
En esta lección vamos a ver como se crea un usuario con 2 perfiles asociados: ADMINISTRADOR Y USUARIO.
En esta lección vamos a ver como buscar un usuario en la base de datos y una vez encontrado desplegaremos los perfiles que tiene asociados.
ACTUALIZACIÓN DE CONTENIDO/CODIGO FUENTE (JULIO 2026)
SE HA ACTUALIZADO TODO EL CONTENIDO, CODIGO FUENTE DE LOS PROYECTOS DESARROLLADOS Y LOS VIDEOS PARA TRABAJAR CON LA VERSION DE SPRING BOOT 4.1.0
ACTUALIZACIÓN DE VERSIONES
TODO EL CÓDIGO FUENTE Y LA DOCUMENTACIÓN DEL CURSO HAN SIDO PROBADAS CON LAS SIGUIENTES VERSIONES (JULIO 2026):
JDK 25 LTS
Spring Boot 4.1.0
Spring Framework 7.0.8
Spring Data JPA 4.1.0
Spring Security 7.1.0
MySQL 9.7 LTS
Deployment en Ubuntu 24.04 LTS
ACTUALIZACIÓN DE CONTENIDO
Se agregó nuevo contenido al curso (21 nuevas lecciones). El deployment de aplicaciones Spring Boot en un servidor Linux es uno de los contenidos mas solicitados por los alumnos y por tal motivo se agregó una nueva sección donde el alumno aprenderá a configurar un servidor Linux en la nube con el sistema operativo Ubuntu Server 24.04 LTS y además dejará instalada la aplicación de empleos lista para ser usada desde Internet.
ALUMNOS SATISFECHOS DE ESTE CURSO:
Guillermo Ivan Tabera Bazan
El curso es muy completo, yo no sabía nada de spring, gracias a que está bien explicado, le dedique tiempo y mucha práctica aprendi sin dolor.
En mi caso logré obtener un empleo para desarrollar en spring con mejores ingresos.
Danielo De León
Excelente curso, y excelente profesor, todo muy bien explicado, los videos muy didácticos tanto desde el punto de vista práctico como teórico, las clases se me hicieron muy amenas y en todo momento a lo largo del curso me sentí muy motivado para continuar hasta finalizarlo.
En la parte de spring boot, si bien ya tenía algunos conocimientos me sirvió tanto para reforzar como para aprender cosas nuevas y la parte de spring mvc con xml se me hizo muy amigable comparado con otro curso que había hecho hace un tiempo en que me parecía todo muy complicado y tedioso.
Muchas gracias por el curso, y un fuerte abrazo desde Uruguay!!
Alex Leiva
Debo decir que este curso supero mis expectativas, secciones bien organizadas y el profesor contribuyo con su profesionalidad a que siguiera avanzando cada lección del curso. Había tomado unos tutoriales anteriormente de spring pero me parecía muy complejo y termine frustrado. Ahora comprendí el flujo que usa el framework y como funciona, estoy muy feliz, nada mas que decir, gracias Profesor Ivan :).
Carlos Alberto Pérez Vallés
Es un curso muy completo y muy bien explicado por parte del profesor.
El ejemplo de la aplicación del cine, a lo largo de los capítulos, ayuda muchísimo a comprender los conceptos fundamentales de spring y las necesidades que se pueden presentar en un proyecto real.
Se explican muchísimos detalles a nivel de Spring, Servlet API, Tomcat, Linux. Incluso a nivel de VPS para publicar la aplicación y que esté accesible en Internet.
Mi más sincera enhorabuena al profesor, por su forma de explicar los temas y su disponibilidad a resolver todas las dudas. Muchas gracias.
Jonathan Robles
Excelente Curso
A travez de los años he trabajado en Java SE y he utilizando algunos de los frameworks mas utilizados de spring, struts y demas, puedo decir que este es sin duda el mejor curso que he llevado en relacion a spring mvc, jpa.
Estoy mas que satisfecho con la parte de spring security asi como poder publicar la pagina web en un servidor de aplicaciones real.
El profesor muestra conocimiento de los temas ademas de que realmente resuelve las dudas que se van generando.
Arturo Ramirez Camino
Excelente curso, muy bien estructurado y ha cumplido todas mis expectativas hasta el punto de haber desarrollado sin problemas una aplicación paralela a la explicada por el profesor. Lo recomiendo sin duda.
Faiber Juanias
Estoy muy interesado también en aprender más de Linux, y este curso me dio también lo necesario para publicar mis aplicaciones creadas con Spring MVC. Definitivamente excelente curso, y muchas gracias!
Marcos
Buenas, muy buen curso, se entiende todo a la perfección.
Método de aprendizaje excelente, aplicando todos los conocimientos sobre un mismo proyecto, el cual al final del curso será una aplicación completamente funcional. De esta forma se entiende todo mucho mejor y se tiene una visión clara de la utilidad de cada cosa.
Muchas gracias por el curso !
Un saludo desde España
Ignacio Jimenez Barco
Curso muy completo y maravillosamente bien explicado. Impecable pedagogía y conocimientos los del formador, pues se nota el cuidado que poner en explicar y dejar bien claros los conceptos.
El enfoque práctico, lo hacen aún más atractivo y cómodo para afianzar y comprender la materia.
Además la velocidad de respuesta es muy alta, prácticamente en el día, lo cual es de agradecer.
En resumen: un curso muy recomendable para tener contacto con Spring.
Arturo Castro
Es mi primer curso en Udemy y por el precio que he pagado por este contenido supera mis expectativas, contenido muy abundante con nuevas tecnologías
Jonny Lozano
El curso es muy bueno, el profesor tiene basta experiencia en el tema, ha actualizado el curso con contenido que ni siquiera estaba planeado y además lo que no se ve en el curso, en las respuestas que da en las preguntas de los usuarios, hay información que aunque no aplica al curso, aún así responde y dan aún más conocimiento.
Pablo Arcones
Muy buen curso para iniciarse y aprender en profundidad el desarrollo de aplicaciones web con spring. Aprendes de todo, tanto a nivel teorico como práctico. Supera las espectativas que tenia con creces!!
David Ruiz
Excelente, muy didáctico, recomendado a todos aquellos profesionales que se estén iniciando en el maravilloso mundo de Spring Framework
Leo Bollini
Excelente curso para empezar de 0, todo el tiempo desde q estoy veo que el instructor actualiza el material, y la vez que tuve que consultarlo no solo atendió la consulta, sino que ademas la resolvió y me explico el motivo en el cual fallaba en el mismo día de la consulta.
Alvaro Bayon
Excelente curso. El instructor es muy didáctico, los contenidos están actualizados. Los videos son breves y claros. Es fácil aprender Spring con este curso.
INTRODUCCIÓN
En este curso vas aprender a desarrollar Aplicaciones Web Profesionales y RestFul Web Services utilizando el framework más popular de Java Spring Boot 4. Aprenderás a usar Spring MVC para la funcionalidad de tu Aplicación Web, para el desarrollo de la capa de datos aprenderás a utilizar el módulo Spring Data JPA. Te enseñaré a integrar el framework más popular de persistencia de datos Hibernate para implementar el API de JPA. Finalmente, aprenderás Spring Security para implementar la seguridad de tus aplicaciones web.
BENEFICIOS DE TOMAR ESTE CURSO
Al terminar este curso tendrás en tu Curriculm Vitae el manejo de Spring Framework 7 & Spring Boot 4 y te ayudará a encontrar un empleo fácilmente o mejorar tu posición actual. Casi para cualquier trabajo relacionado con desarrollo web con Java, es necesario tener estas habilidades. Este curso te ayudará a aprender estas dos tecnologías de una forma muy rápida porque vamos a desarrollar un proyecto real para aplicar todos los conceptos que veremos a lo largo del curso.
HABILIDADES Y CONOCIMIENTOS QUE APRENDERÁS A LO LARGO DEL CURSO
Spring Boot
Crear proyectos Spring Boot con Spring Initializr & Spring Tools 5.
Desarrollar Aplicaciones Web con Spring Boot.
Desarrollar RestFul Web Services con Spring Boot.
Conocer la estructura de un proyecto Spring Boot.
Configurar parámetros de Spring Boot.
Spring MVC
Comprender la arquitectura de Spring MVC.
Comprender el ciclo de vida de las peticiones HTTP en Spring MVC.
Aplicar Spring MVC en aplicaciones web. Para esto utilizaremos clases JavaBeans como componentes de Modelo, Thymeleaf para la Vista y finalmente los Controladores.
Aplicar una arquitectura de 3 capas (presentación, negocio, persistencia) en tus aplicaciones web.
Desarrollar la capa de negocio con clases de servicio y la anotación @Service. Aprenderás a diseñar tus clases de servicio con INTERFACES para que tus clases de servicio tengan bajo aclopamiento y sean fáciles de mantener.
Comprender la Inyección de Dependencias (@Autowired).
Crear controladores con @Controller.
Manejo de Peticiones HTTP GET & HTTP POST: @RequestMapping, @GetMapping, @PostMapping.
Definir URI dinámicas con @PathVariable.
Comprender el Data Binding entre clases de modelo y formularios HTML.
Recibir datos de formularios HTML con @RequestParam.
Subida de archivos al servidor (Upload Files).
Integrar las vistas con Thymeleaf.
Manejo de errores en formularios HTML (BindingResult).
Declarar redirecciones y definir Redirect Attributes.
Formularios HTML de búsqueda.
Thymeleaf
Integrar Thymeleaf en proyectos Spring Boot para las vistas.
Iteraciones con th:each.
Condicionales th:if, th:unless, Elvis Operator (?:)
Configuración de recursos estáticos (Javascript, CSS, Images).
Integración del framework Front-End Bootstrap.
Integración de plantillas HTML.
Thymeleaf Page Layouts & Fragments.
Spring Data JPA
Integrar Spring Data JPA con Spring Boot.
Configurar el Datasource de conexión a MySQL 5.7 & 9.7
Configuración de clases Entity (@Entity, @Table, @Id, @Column).
Configuración de Relaciones (@OneToOne @OneToMany, @ManyToOne).
Definición de Repositorios con las interfaces (@CrudRepository, @JpaRepository).
Declaración de Query Methods con @Query.
Creación de consultas Query By Example (QBE).
Desarrollar la capa de persistencia utilizando Spring Data JPA.
Inyectar los repositorios en las clases de servicio (@Autowired).
Spring Security
Integrar Spring Security con Spring Boot.
Configurar Spring Security para leer los datos de los usuarios y roles de MySQL.
Definir seguridad por patrones de URLs.
Aplicar seguridad a tus aplicaciones web con Spring Security.
Desarrollar un formulario de Login personalizado.
RestFul Web Services
Crear controladores con @RestController.
Anotación @ResponseBody
Anotación @RequestBody.
Manejo del cliente REST Postman.
A LO LARGO DE ESTE CURSO VAS A DESARROLLAR 2 APLICACIONES WEB REALES QUE TE SERVIRÁN COMO BASE PARA TUS PROPIOS PROYECTOS.
PROYECTO 1 (EmpleosApp)
¿Cual es la funcionalidad de la aplicación EmpleosApp?
El proyecto que vamos a desarrollar es una aplicación web para publicar ofertas de trabajo en Internet. Esta aplicación esta estructurada en dos secciones principales:
Front-End: Esta es la parte pública de la aplicación y estará abierta al público en general. En la página principal se mostrarán las ofertas de trabajo mas destacadas que han sido publicadas por un administrador. En la página principal también se encuentrá un formulario para buscar ofertas de trabajo por Descripción y por Categorías. Al hacer clic en una oferta de trabajo se mostrarán los detalles de esta vacante. Estos detalles son por ejemplo: fecha de publicación, salario ofrecido, detalles de la vacante (requisitos, requerimientos, prestaciones ofrecidas, datos de contacto, etc. En la página de los detalles de una vacante existirá un botón para que el usuario, siempre y cuando haya iniciado sesión pueda enviar si Curriculm Vitae para aplicar para la Vacante. Finalmente, en la página principal de la aplicación también existirá un botón para que los usuarios puedan registrarse en la aplicación.
Back-End: Esta es la parte privada de la aplicación y únicamente tendrán acceso los administradores. En esta sección los administradores podrán administrar la aplicación. Básicamente existirán 3 tipos de usuarios o roles: SUPERVISOR, ADMINISTRADOR y USUARIO. El SUPERVISOR tendrá acceso al catálogo de vacantes, categorías y solicitudes enviadas. El ADMINISTRADOR tendrá acceso al catálogo de vacantes, categorías, solicitudes enviadas y el catálogo de usuarios registrados. El USUARIO solo tendra permisos para Aplicar (enviar Curriculum Vitae) para una determinada Vacante.
PROYECTO 2 (CineApp)
¿Cual es la funcionalidad de la aplicación CineApp?
El proyecto que vamos a desarrollar es una aplicación web para llevar la administración de un CINEMA. Esta aplicación esta estructurada en dos secciones principales:
Front-End: Esta es la parte pública de la aplicación y estará abierta al público en general. En la página principal se mostrará la cartelera de películas que están en exhibición para la fecha actual. En la página principal también se encuentrá un formulario para buscar películas para otras fechas. Al hacer clic en una película se mostrarán los detalles de esta película. Estos detalles son los horarios (hora, sala, precio) disponibles para la fecha seleccionada y los datos generales de la película (imagen, título, actores, duracion, género, el video del trailer, la sinopsis, etc). Finalmente, en la página principal de la aplicación también se mostrará un pequeño blog con noticias relacionadas con el cine.
Back-End: Esta es la parte privada de la aplicación y únicamente tendrán acceso los administradores. En esta sección los administradores podrán administrar la aplicación. Básicamente existirán dos tipos de administradores o roles: EDITOR y GERENTE. El EDITOR tendrá acceso al catálogo de películas, catálogo de horarios y el catálogo de noticias (BLOG). El GERENTE tendrá los mismos accesos que los editores, pero tendrá acceso también para modificar el banner de la página principal.
Como puedes ver las 2 aplicaciónes están muy completas, por lo tanto vas a aprender muchas técnicas y conocimientos que podrás aplicar para tus propios proyectos.