CineShare logo

CineShare

Introducción

CineShare es un proyecto personal enfocado en explorar tecnologías web modernas e infraestructura en la nube. Esta experiencia de aprendizaje me ayudó a obtener conocimientos valiosos para futuras aplicaciones del mundo real.

La plataforma permite a los usuarios compartir y descubrir recomendaciones de películas y series dentro de una comunidad social.

Tecnologías

A lo largo de este proyecto, he explorado una variedad de tecnologías, tanto de frontend como de backend, para construir una aplicación full-stack.

Angular icon
Spring Boot icon
MySQL icon
AWS icon
OpenAI icon

Frontend

Angular CLI: HTML, CSS, TypeScript

Este proyecto en Angular utiliza módulos principales de Angular, NgRx para la gestión del estado y renderizado del lado del servidor mediante Express. Incorpora Bootstrap y Tailwind CSS para los estilos, junto con DaisyUI para los componentes de UI.

CineShare main page

Página principal

Backend

Spring Boot: Java

El backend está impulsado por Spring Boot, aprovechando múltiples starters como Data JPA para el acceso a la base de datos, Spring Security para la autenticación y Spring MVC con un servidor Tomcat embebido. Integra MySQL para la conectividad con la base de datos, Lombok para reducir el código repetitivo, JJWT para el manejo de JWT, Springdoc OpenAPI para la documentación de la API y Actuator para la monitorización.

Ciberseguridad

Las funciones de seguridad están actualmente en desarrollo. El frontend usa CryptoJS para cifrar las cargas útiles mediante cifrado AES, mientras que el backend implementa Spring Security para la autenticación basada en JWT. JWT filtra las solicitudes no autorizadas, y todas las contraseñas se cifran tanto en tránsito como en reposo en la base de datos. Además, hay un certificado SSL en uso para HTTPS.

Register page showing security implementation

Registro de usuario con medidas de seguridad

Infraestructura en la nube

Trabajar con AWS ha sido una experiencia nueva para mí, yendo más allá del alojamiento de simples sitios web estáticos mediante GitHub Pages. Ahora uso Amplify para el alojamiento del frontend, Elastic Beanstalk para el despliegue del backend, RDS para la gestión de la base de datos y Route 53 para la gestión del dominio. Este proyecto me ha introducido en las amplias posibilidades de la computación en la nube, en particular la idea de construir aplicaciones serverless.

AWS technologies diagram

Arquitectura de servicios de AWS

Herramientas de IA

GitHub Copilot y ChatGPT han sido compañeros inestimables a lo largo de este proyecto. Copilot ayudó con consultas relacionadas con el código y sugerencias basadas en el contexto, mientras que ChatGPT fue útil para preguntas más amplias, como la elección de las soluciones en la nube adecuadas.

GitHub Copilot interface

Conclusión

Este proyecto me ha permitido desarrollar una aplicación full-stack, cubriendo diversos aspectos, desde el frontend hasta el backend, la seguridad y la infraestructura en la nube.

Mi próximo proyecto explorará aplicaciones web serverless, bases de datos NoSQL y APIs de IA.

CineShare ya no está disponible.

Gracias por leer,

Julio Macías González

Ponerse en contacto