Construyendo Soluciones Web: Aplicación CRUD con Laravel y MySQL
Creado por ronald c.
Cómo fue en el aula
Todavía nadie ha contado cómo le fue con este recurso.
Descripción
Este plan de clase está diseñado para que los estudiantes universitarios de Ingeniería de Sistemas desarrollen una aplicación web funcional que implemente operaciones CRUD (Crear, Leer, Actualizar, Eliminar) utilizando el framework Laravel y la base de datos MySQL. A través de una metodología basada en proyectos, los estudiantes aplicarán conceptos de programación backend, diseño de bases de datos y desarrollo web para resolver un problema real: la gestión eficiente de datos mediante interfaces web.
El aprendizaje de estas tecnologías es relevante en el contexto actual, dado que muchas empresas demandan desarrolladores con habilidades para crear aplicaciones web robustas y escalables. Este proyecto fortalece competencias técnicas y blandas, incluyendo trabajo colaborativo, resolución de problemas y autodirección, conectando el conocimiento teórico con aplicaciones prácticas que podrán replicar en sus futuras experiencias profesionales.
Objetivos de Aprendizaje
- Desarrollar una aplicación web CRUD funcional utilizando Laravel y MySQL.
- Diseñar y crear una base de datos relacional adecuada para el proyecto.
- Implementar rutas, controladores y vistas en Laravel para gestionar datos dinámicos.
- Colaborar efectivamente en equipos para planificar, desarrollar y presentar el proyecto.
- Analizar y solucionar errores comunes en el desarrollo web con Laravel y MySQL.
Recursos Necesarios
- Computadoras con ambiente de desarrollo instalado: PHP 8+, Composer, Laravel 9+, MySQL 8+, servidor local (XAMPP, MAMP, etc.)
- Editor de código (Visual Studio Code recomendado) con extensiones para PHP y Laravel
- Conexión a internet estable para consultar documentación oficial y recursos en línea
- Proyecto base o plantilla inicial de Laravel (opcional para acelerar inicio)
- Documentación oficial de Laravel y MySQL (impresa o digital)
- Proyector y pantalla para presentaciones y demostraciones
- Material para toma de notas y pizarras o rotafolios para planificación grupal
Requisitos Previos
- Conocimiento previo de programación en PHP y fundamentos de programación orientada a objetos.
- Conceptos básicos de bases de datos relacionales y SQL.
- Familiaridad con HTML, CSS y fundamentos de desarrollo web.
- Experiencia previa en uso de línea de comandos y manejo básico de servidores locales.
- Habilidades básicas de trabajo colaborativo y comunicación efectiva.
Actividades
Sesión 1: Introducción y configuración del proyecto Laravel
Fase de Inicio
Tiempo estimado: 30 minutos
Propósito de la sesión: Presentar el proyecto, conectar conocimientos previos y preparar el ambiente de desarrollo para comenzar la programación.
Docente: Da la bienvenida y plantea el objetivo general: "Hoy comenzaremos a construir una aplicación web que permita gestionar datos usando Laravel y MySQL."
Estudiantes: Escuchan e interactúan respondiendo preguntas.
Activación de conocimientos previos:
- Docente: Pregunta: "¿Qué entienden por operaciones CRUD y cómo creen que se aplican en una aplicación web?"
- Estudiantes: Responden y debaten brevemente.
Motivación y enganche:
- Docente: Presenta un caso real de empresa que mejoró su gestión usando aplicaciones CRUD con Laravel, mostrando impacto en eficiencia y reducción de errores.
- Estudiantes: Reflexionan sobre la importancia práctica.
Contextualización:
- Docente: Explica cómo las habilidades que van a desarrollar son demandadas en el mercado laboral y conectan con proyectos personales o académicos futuros.
- Estudiantes: Relacionan el tema con su propio contexto académico y profesional.
Fase de Desarrollo
Tiempo estimado: 140 minutos
Presentación del contenido: El docente introduce brevemente Laravel y su arquitectura MVC, explicando la estructura básica de proyectos y la importancia de MySQL para la persistencia de datos. Se evita exposición prolongada para fomentar el aprendizaje activo.
Actividad 1: Instalación y creación del proyecto Laravel
- Objetivo: Configurar el entorno de desarrollo y crear el esqueleto del proyecto.
- Instrucciones:
- Docente guiará paso a paso la instalación de Composer y Laravel, verificando que todos tengan el ambiente listo.
- En parejas, estudiantes ejecutan comandos para crear un nuevo proyecto Laravel y lo abren en el editor.
- Exploran la estructura de carpetas y archivos principales.
- Organización: Parejas
- Producto: Proyecto Laravel creado y abierto, ambiente configurado.
- Tiempo: 60 minutos
- Rol docente: Supervisa, responde dudas técnicas, asegura que todos avancen.
Actividad 2: Diseño inicial de la base de datos
- Objetivo: Planificar la estructura de la base de datos para la aplicación CRUD.
- Instrucciones:
- Docente presenta un esquema básico de entidad y atributos para el proyecto (por ejemplo, gestión de usuarios o productos).
- En grupos de 3-4, estudiantes diseñan un modelo entidad-relación simple en papel o pizarra.
- Discuten claves primarias, tipos de datos y relaciones.
- Organización: Grupos de 3-4
- Producto: Diagrama entidad-relación básico para la base de datos.
- Tiempo: 50 minutos
- Rol docente: Facilita discusión, sugiere mejoras, valida esquemas.
Actividad 3: Creación de la base de datos en MySQL
- Objetivo: Implementar la base de datos diseñada en el servidor MySQL local.
- Instrucciones:
- Cada pareja crea la base de datos y tablas según el diseño aprobado.
- Ejecutan scripts SQL básicos para crear tablas con llaves primarias y foráneas.
- Verifican la conexión desde Laravel configurando el archivo .env.
- Organización: Parejas
- Producto: Base de datos y tablas creadas y conectadas con Laravel.
- Tiempo: 30 minutos
- Rol docente: Verifica conexiones, resuelve problemas de configuración.
Diferenciación
- Para estudiantes avanzados: Proponer que agreguen validaciones iniciales en el archivo .env o creen migraciones para automatizar la creación de tablas.
- Para estudiantes que requieren más apoyo: Ofrecer material guiado paso a paso y asesoría personalizada para configurar el entorno y base de datos.
Transición: El docente explica que en la próxima sesión comenzarán a programar las operaciones CRUD utilizando las tablas y el entorno configurado.
Fase de Cierre
Tiempo estimado: 10 minutos
Síntesis: Cada grupo comparte con la clase el diseño de su base de datos y dificultades encontradas.
Reflexión metacognitiva:
- ¿Qué fue lo más desafiante al configurar el entorno de desarrollo?
- ¿Cómo ayuda un buen diseño de base de datos al desarrollo de la aplicación?
- ¿Qué esperan aprender en la siguiente sesión para avanzar en su proyecto?
Retroalimentación: Docente comenta puntos fuertes y aspectos a mejorar, alentando la participación y aclarando dudas.
Transferencia: Se anticipa que en la siguiente sesión se enfocarán en programación backend para hacer la aplicación interactiva.
Tarea: Revisar la documentación oficial de Laravel sobre migraciones y controladores para preparar la sesión siguiente.
Sesión 2: Programación backend y rutas CRUD en Laravel
Fase de Inicio
Tiempo estimado: 20 minutos
Propósito de la sesión: Revisar avances y preparar la creación de rutas y controladores para manejar datos dinámicos.
Docente: Inicia con preguntas sobre la configuración de la base de datos y dificultades encontradas, conecta con el objetivo de hoy: construir la lógica para gestionar datos.
Estudiantes: Exponen brevemente sus experiencias y expectativas.
Activación de conocimientos previos:
- Pregunta detonadora: "¿Cómo creen que una aplicación web recibe y procesa la información para mostrar datos al usuario?"
- Discusión rápida para motivar el aprendizaje de rutas y controladores.
Motivación: Presentación de una demo sencilla donde se realiza una consulta a la base de datos y se muestran resultados dinámicos.
Contextualización: Se explica cómo estas funciones son la base de cualquier aplicación web que interactúa con datos reales.
Fase de Desarrollo
Tiempo estimado: 140 minutos
Presentación del contenido: El docente introduce brevemente el concepto de rutas en Laravel, controladores y modelos, promoviendo que los estudiantes exploren ejemplos y documentación en grupos.
Actividad 1: Creación de rutas y controladores para la lectura de datos
- Objetivo: Implementar rutas y controladores que permitan mostrar registros almacenados en la base de datos.
- Instrucciones:
- En parejas, los estudiantes crean una ruta GET que llame a un controlador.
- El controlador consulta la base de datos usando Eloquent y pasa datos a una vista.
- Se crea una vista básica que muestra la lista de registros.
- Organización: Parejas
- Producto: Ruta, controlador y vista funcionando para mostrar datos.
- Tiempo: 70 minutos
- Rol docente: Supervisa, sugiere mejoras, resuelve dudas técnicas.
Actividad 2: Implementación de formularios para crear y validar nuevos registros
- Objetivo: Agregar funcionalidades para crear nuevos registros con validación básica.
- Instrucciones:
- Los mismos grupos agregan una ruta POST y formulario.
- Crean vista con formulario y validan datos desde el controlador.
- Insertan nuevos datos en la base y redirigen a la lista actualizada.
- Organización: Parejas
- Producto: Funcionalidad de creación de datos con validaciones.
- Tiempo: 70 minutos
- Rol docente: Observa, fomenta pruebas y depuración, apoya con errores.
Diferenciación
- Estudiantes avanzados: Proponer implementar validaciones personalizadas y mensajes de error detallados.
- Estudiantes con dificultades: Proporcionar ejemplos de código y plantillas para modificar.
Transición: El docente conecta la importancia de estas bases para implementar las siguientes operaciones de actualización y eliminación en la próxima sesión.
Fase de Cierre
Tiempo estimado: 20 minutos
Síntesis: Los grupos presentan breves demos de la funcionalidad implementada y comparten aprendizajes.
Reflexión metacognitiva:
- ¿Cómo facilita Laravel la creación de rutas y controladores?
- ¿Qué dificultades encontraron al validar y guardar datos?
- ¿Qué les gustaría mejorar en el manejo de datos en la siguiente sesión?
Retroalimentación: Comentarios específicos del docente para cada grupo destacando logros y áreas de mejora.
Transferencia: Se anticipa la implementación de la actualización y eliminación de datos para completar el CRUD.
Tarea: Investigar sobre métodos HTTP PUT/PATCH y DELETE en Laravel para próximas actividades.
Sesión 3: Completar funcionalidades CRUD y manejo de errores
Fase de Inicio
Tiempo estimado: 20 minutos
Propósito de la sesión: Recapitular los avances y preparar la implementación de actualización y eliminación de datos con manejo de errores.
Docente: Realiza preguntas guiadas sobre las funciones ya implementadas y los métodos HTTP necesarios.
Estudiantes: Participan con respuestas y plantean dudas para aclarar antes de avanzar.
Activación de conocimientos previos:
- Pregunta: "¿Por qué es importante validar la entrada del usuario y manejar errores en la aplicación?"
- Discusión breve entre pares.
Motivación: Presentación de ejemplos comunes de errores en aplicaciones web y cómo evitarlos con buenas prácticas.
Contextualización: Se explica que la calidad y seguridad del software se basa en un manejo correcto de errores y validaciones.
Fase de Desarrollo
Tiempo estimado: 140 minutos
Presentación del contenido: Introducción práctica a la actualización (edit) y eliminación (delete) de registros, así como manejo de errores y excepciones en Laravel.
Actividad 1: Implementación de edición y actualización de registros
- Objetivo: Permitir modificar datos existentes mediante formularios y actualizar la base de datos.
- Instrucciones:
- En grupos, crean rutas GET para mostrar formulario de edición y PUT/PATCH para actualizar datos.
- Implementan controlador que carga datos, valida cambios y actualiza la base.
- Prueban la funcionalidad y corrigen errores.
- Organización: Grupos de 3-4
- Producto: Funcionalidad completa de edición y actualización.
- Tiempo: 70 minutos
- Rol docente: Supervisa, fomenta pruebas, orienta ante errores comunes.
Actividad 2: Implementación de eliminación de registros y manejo de errores
- Objetivo: Permitir eliminar registros y manejar errores que puedan surgir en estas operaciones.
- Instrucciones:
- Agregan rutas DELETE y métodos en el controlador para eliminar registros.
- Implementan manejo de excepciones para casos como borrado de registros con dependencias.
- Prueban funcionalidades y validan mensajes al usuario.
- Organización: Grupos de 3-4
- Producto: Funcionalidad de eliminación robusta con control de errores.
- Tiempo: 70 minutos
- Rol docente: Observa, guía soluciones de errores y valida seguridad básica.
Diferenciación
- Avanzados: Proponer uso de middleware para autorización o implementación de soft deletes.
- Con apoyo: Proporcionar códigos de ejemplo y sesiones de tutoría en paralelo.
Transición: El docente prepara a los estudiantes para la última sesión donde integrarán, probarán y presentarán la aplicación completa.
Fase de Cierre
Tiempo estimado: 20 minutos
Síntesis: Realización de un mapa mental colectivo en pizarra que integre todas las rutas y funcionalidades CRUD implementadas.
Reflexión metacognitiva:
- ¿Qué aprendieron sobre el manejo de errores en aplicaciones web?
- ¿Cómo mejoraría su aplicación para ser más robusta?
- ¿Qué habilidades técnicas y blandas fortalecieron en este proceso?
Retroalimentación: Comentarios personalizados y generales resaltando la evolución técnica y trabajo en equipo.
Transferencia: Se motiva a aplicar estas bases en proyectos futuros y contextos reales.
Tarea: Preparar la documentación técnica y planificar la presentación final del proyecto.
Sesión 4: Integración, prueba y presentación del proyecto CRUD
Fase de Inicio
Tiempo estimado: 20 minutos
Propósito de la sesión: Revisar el estado actual del proyecto y organizar la presentación final y pruebas.
Docente: Facilita una sesión de preguntas y respuestas para resolver dudas finales y organiza equipos para la etapa de integración.
Estudiantes: Exponen avances y planifican pasos finales.
Activación de conocimientos previos:
- Ejercicio rápido: "Enumeren las funcionalidades que su aplicación ya tiene y las que faltan para completarla."
- Discusión en equipos y consolidación de plan de trabajo.
Motivación: Se enfatiza la importancia de la prueba rigurosa y la presentación efectiva para demostrar el dominio técnico y comunicativo.
Contextualización: Se conecta con escenarios reales donde los desarrolladores deben entregar productos funcionales y documentados.
Fase de Desarrollo
Tiempo estimado: 140 minutos
Presentación del contenido: Enfoque práctico para integrar todas las funciones, realizar pruebas y preparar la presentación oral y técnica.
Actividad 1: Integración y prueba exhaustiva del proyecto
- Objetivo: Asegurar que todas las operaciones CRUD funcionen correctamente y corregir errores detectados.
- Instrucciones:
- En equipos, realizan pruebas funcionales sistemáticas de cada operación.
- Registran errores o comportamientos inesperados y los corrigen.
- Documentan brevemente las pruebas realizadas y resultados.
- Organización: Equipos completos
- Producto: Proyecto funcional probado y documentado.
- Tiempo: 90 minutos
- Rol docente: Observa, asesora soluciones, valida calidad y funcionalidad.
Actividad 2: Preparación y ensayo de presentación del proyecto
- Objetivo: Desarrollar habilidades comunicativas para presentar el proyecto y explicar su funcionamiento.
- Instrucciones:
- Equipos preparan una presentación de 10 minutos que incluya objetivos, proceso, demo y lecciones aprendidas.
- Ensayan la presentación y reciben retroalimentación entre pares.
- Organización: Equipos completos
- Producto: Presentación estructurada y ensayada.
- Tiempo: 50 minutos
- Rol docente: Facilita retroalimentación constructiva y ayuda a mejorar claridad y contenido.
Diferenciación
- Avanzados: Invitar a integrar funciones adicionales o mejoras de interfaz.
- Con apoyo: Brindar guías para estructurar presentaciones y apoyo en manejo de nervios o lenguaje técnico.
Transición: Se prepara la sesión para la presentación formal y reflexión final.
Fase de Cierre
Tiempo estimado: 20 minutos
Síntesis: Reflexión grupal sobre el proceso completo usando un organizador gráfico en la pizarra con las fases del proyecto y aprendizajes clave.
Reflexión metacognitiva:
- ¿Qué competencias técnicas y blandas consideran que fortalecieron?
- ¿Cómo pueden aplicar este proyecto en su formación profesional?
- ¿Qué aspectos mejorarían en futuros proyectos similares?
Retroalimentación: Comentarios finales del docente reconociendo esfuerzo y logros, y sugiriendo caminos para continuar aprendiendo.
Transferencia: Invitación a usar Laravel y MySQL en proyectos personales y laborales, destacando su relevancia actual.
Tarea: Entregar código final y documentación completa para evaluación.
Evaluación
Tipo de evaluación:
- Diagnóstica: En la Sesión 1, mediante preguntas iniciales para conocer conocimientos previos.
- Formativa: Durante las fases de desarrollo en todas las sesiones, mediante observación directa, apoyo y revisión de productos parciales.
- Sumativa: Al final de la Sesión 4, con la entrega del proyecto completo, documentación y presentación oral.
Criterios de evaluación:
- Implementación completa y funcional de operaciones CRUD (Crear, Leer, Actualizar, Eliminar) siguiendo buenas prácticas de Laravel y MySQL.
- Diseño lógico y coherente de la base de datos relacional.
- Capacidad para trabajar colaborativamente y demostrar habilidades de comunicación.
- Resolución efectiva de errores y validación de datos en la aplicación.
- Calidad y claridad en la documentación técnica y presentación oral del proyecto.
Instrumentos sugeridos:
- Rúbrica para evaluar funcionalidades técnicas y calidad del código.
- Lista de cotejo para validar cumplimiento de requisitos y buenas prácticas.
- Observación directa durante sesiones para valorar trabajo colaborativo y participación.
- Portafolio digital con código fuente, documentación y registros de pruebas.
- Autoevaluación y coevaluación para reflexionar sobre el proceso de aprendizaje y trabajo en equipo.
Evidencias de aprendizaje:
- Proyecto web CRUD funcionando con Laravel y MySQL.
- Diagramas y documentación técnica entregados.
- Presentación oral y demo del proyecto ante el docente y compañeros.
- Informes de pruebas y corrección de errores.
- Registros de autoevaluación y coevaluación.