Proyecto desarrollado en la materia de Base de Datos Avanzadas, a cargo del docente Martín Guadalupe Bernal Lugo. Este proyecto está enfocado en desarrollar una red social exclusiva para estudiantes de nuestra institución, accesible únicamente a través del Correo Institucional.
Para el despliegue de la Web App se utilizó una infraestructura distribuida, la cual se detalla en el siguiente diagrama, incluyendo el flujo de trabajo utilizado durante el desarrollo:
- El sistema está indexado en Google Search Console, lo que permite aparecer en la primera página de resultados al buscar
Potro NetoPotro-Net.
- El Frontend está desplegado en Vercel y vinculado a un repositorio de GitHub, asegurando actualizaciones automáticas.
- Desarrollado con React + TypeScript, utilizando la librería de componentes Material-Tailwind.
- Adaptado con Tailwind CSS, para asegurar un diseño responsive.
- El Backend está construido con Java Spring Boot.
- Para la conexión y gestión de la base de datos se utiliza JPA con una base de datos MySQL remota.
- La API está desplegada en Render, debido a que es la versión gratuita la carga de las peticiones es algo lenta.
- Para la carga de imágenes utilizamos un servicio externo llamdo Cloudinary, que nos permite persistir imágenes y acceder a ellas mediante URLs.
- La aplicación requiere una base de datos externa para su despliegue. Para esto utilizamos Aiven, un servicio gratuito con espacio limitado, que permite manejar una base de datos MySQL remota.
- La limitación es que Aiven no ofrece interfaz gráfica, se requiere de una conexión SSL desde cualquier IDE de base de datos para manipular la base de datos directamente.
- Se cuenta con un repositorio principal, donde se desarrolla todo utilizando una variación de Git Flow.
- Además, existe un fork del repositorio principal para el despliegue, lo que genera una barrera de sincronización, permitiendo que los cambios se reflejen únicamente al sincronizar manualmente el fork.
Para evaluar la aplicación se utilizó LightHouse, una extensión de navegador que analiza distintos aspectos de la página: optimización, tiempos de carga, buenas prácticas y posicionamiento SEO.
Los resultados obtenidos reflejan un buen desempeño, aunque la carga de la página puede mejorar debido a que algunas dependencias cargan CSS innecesario.
Nuestro proyecto esta desarrollado como una API Rest para toda la parte de Java debido a que el front se esta desarrollando con React + TS, por lo que para este entregable desarrollamos tanto la parte de la API que sera conectada con el front, como los controllers convencionales para pruebas.
Cabe recalcar que si prefiere hacer las peticiones desde la api tendra que usar Postman para hacer las solicitudes.
- Version Compilacion JDK 21
- Archivo de configuarcion local para Springboot
Puede clonar el repositorio desde su terminal con la url del repositorio o mismamente en GitHub Desktop
git clone https://github.com/SebastianEsc05/TecMatch-API
Para correrlo con Springboot debera crear el siguiente archivo con el nombre application-local.properties
spring.datasource.username=**Su usuario SQL**
spring.datasource.password=**Su contraseña SQL**
jwt.jwt.secret=TWVQdXNlTGFHdWNjaUNvblVuU2hvcnREZU5pa2VCdXpvQ2FkZW5hRXN0b3lRdWVHb3Rlb1NpZ29Wb2xhbmRvQ2l1ZGFkRW5DaXVkYWRUdW1iYW5kb0VsQ2x1YlNob3V0T3V0UGFyYU5lbw==El archivo debe pegarse en la siguiente ruta:
src/main/resources/
Cabe recalcar que las funcionalidades de email aun no estan disponibles con esta configuracion y simplemente esta limitada al los requisitos para este entregable.
-
Para probar los inserts debe contar con un esquema creado en su localhost:3306 con el nombre
TecMatch -
Al correr la clase
Mainpodra insertar las distintas entidades solicitadas en el documento
-
El proyecto tambien cuenta con algunas de pruebas integardas en la clase
Main, en las que las que se muestran las distintas funcionalidades solicitadas. -
Para que todo funcione es necesario correr el script de los SP en la base de datos, el script se encuentra en la raiz del repositorio.
usuariosSPcreator.sql
Nota: Los errores en rojo tambien son pruebas.









