Skip to content

Fase 6 – Proyectos Finales (Continuo)

Proyecto 1: CRUD Completo con Autenticación

  • Objetivo: Construir una API RESTful robusta con autenticación segura y pruebas.
  • Tecnologías: Spring Boot, Spring Data JPA (PostgreSQL), Spring Security (JWT), JUnit 5, Testcontainers.
  • Funcionalidades: CRUD para entidades (por ejemplo, tareas, usuarios), autenticación con roles (ADMIN, USER), documentación con Swagger.
  • Opcional: Agregar una interfaz Thymeleaf para visualizar/gestionar tareas.
  • Ejemplo: API para gestionar proyectos (entidades: Project, Task, User) con endpoints protegidos.

Proyecto 2: Carga de Archivos

  • Objetivo: Agregar funcionalidad de carga de archivos a la API del Proyecto 1.
  • Tecnologías: Spring Boot (MultipartFile), Amazon S3 o almacenamiento local, validación de archivos.
  • Funcionalidades: Carga de imágenes/documentos asociados a tareas, validación de tipo/tamaño.
  • Ejemplo: Permitir la carga de anexos (por ejemplo, PDF, PNG) para tareas en la API.

Proyecto 3: Despliegue en la Nube

  • Objetivo: Desplegar la API en una plataforma en la nube con CI/CD.
  • Tecnologías: Railway, Heroku o AWS (Elastic Beanstalk), GitHub Actions, Docker.
  • Funcionalidades: Empaquetar como JAR/Docker, configurar variables de entorno, automatizar el despliegue.
  • Opcional: Implementar caching con Redis para optimizar consultas frecuentes.
  • Ejemplo: Desplegar la API de proyectos en Railway con PostgreSQL y CI/CD.

Proyecto 4: Microservicios

  • Objetivo: Dividir la API del Proyecto 1 en microservicios orquestados.
  • Tecnologías: Spring Cloud (Eureka, Gateway), Docker Compose, REST para comunicación.
  • Funcionalidades: Microservicios para Tasks y Users, con descubrimiento de servicios.
  • Opcional: Usar RabbitMQ para comunicación asíncrona entre microservicios.
  • Ejemplo: Separar la lógica de tareas y usuarios en dos servicios, orquestados con Docker.

Proyecto 5: Integración con API Externa

  • Objetivo: Consumir una API externa para enriquecer la funcionalidad.
  • Tecnologías: Spring RestTemplate o WebClient, autenticación de API (por ejemplo, OAuth2).
  • Funcionalidades: Integrar con una API pública (por ejemplo, enviar notificaciones por correo con SendGrid).
  • Opcional: Agregar una query GraphQL para consultar tareas/usuarios y almacenar metadatos en MongoDB.
  • Ejemplo: Agregar notificaciones por correo electrónico para la finalización de tareas.

Mejores Prácticas de Portafolio

  • Git: Commits por funcionalidad (por ejemplo, feature/crud, feature/upload), ramas claras.
  • Documentación: README con descripción, configuración, endpoints, despliegue y capturas de pantalla.
  • Publicar: Hospedar en GitHub con una licencia open-source (por ejemplo, MIT).

Recursos