Skip to content

natalyrojas5/culinary-spells-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎃 Cloudinary Hackathon 2024 - Backend

Java Spring Boot MariaDB Cloudinary JWT Ubuntu Jenkins Lombok

Bienvenido al backend de Hechizos Culinarios 🎃, donde los usuarios pueden compartir y descubrir recetas temáticas. Este sistema permite a los usuarios registrarse, subir recetas de cocina, dar likes y explorar las recetas de otros usuarios.

🚀 Características

  • Registro de usuarios: Los usuarios pueden registrarse en el sistema.
  • Subir recetas: Los usuarios pueden compartir recetas de cocina temáticas.
  • Likes en recetas: Los usuarios pueden dar "me gusta" a las recetas que les gusten.
  • Seguridad: El sistema está protegido por JWT y Spring Security.
  • Almacenamiento de imágenes: Las imágenes de las recetas se almacenan en Cloudinary.

🛠️ Tecnologías Utilizadas

  • Java: Lenguaje de programación principal.
  • Spring Boot: Framework para construir el backend y gestionar dependencias.
  • Spring Security: Proporciona autenticación y autorización de usuarios.
  • JWT (JSON Web Tokens): Usado para la autenticación segura.
  • MariaDB: Base de datos relacional utilizada para almacenar la información de usuarios y recetas.
  • Cloudinary: Servicio de almacenamiento de imágenes en la nube.
  • Jenkins: Automatización de despliegue en el servidor.
  • Lombok: Utilizado para reducir el código boilerplate en Spring Boot.
  • Ubuntu 22.04: Servidor donde se despliega el proyecto.

🏗️ Arquitectura

Este sistema está implementado utilizando Spring Boot. La base de datos es MariaDB, y las imágenes subidas por los usuarios se almacenan en Cloudinary.

El proyecto utiliza Spring Security y JWT para manejar la autenticación y autorización. Se incluyen las siguientes capas principales:

  • Controladores (Controllers): Gestionan las solicitudes HTTP y envían las respuestas.
  • Servicios (Services): Contienen la lógica del negocio.
  • Repositorios (Repositories): Gestionan el acceso a la base de datos utilizando JPA.

🗂️ Estructura del Proyecto

📁 src/
  ┣ 📂 main/
  ┃ ┣ 📂 java/
  ┃ ┃ ┣ 📂 com/hechizos.culinarios/
  ┃ ┃ ┃ ┣ 📂 Auth/
  ┃ ┃ ┃ ┣ 📂 Config/
  ┃ ┃ ┃ ┣ 📂 Dto/
  ┃ ┃ ┃ ┣ 📂 Exception/
  ┃ ┃ ┃ ┣ 📂 Security/
  ┃ ┃ ┃ ┣ 📂 controllers/
  ┃ ┃ ┃ ┣ 📂 services/
  ┃ ┃ ┃ ┣ 📂 models/
  ┃ ┃ ┃ ┣ 📂 repositories/
  ┃ ┣ 📂 resources/
  ┃ ┃ ┣ 📜 application.properties

⚙️ Configuración

1. Clonar el repositorio

git clone https://github.com/natalyrojas5/culinary-spells-backend.git

2. Configurar base de datos

Asegúrate de tener MariaDB instalado y ejecutándose. Luego, crea la base de datos y actualiza el archivo application.properties con tus credenciales:

spring.datasource.url=jdbc:mariadb://localhost:3306/halloween_recipes
spring.datasource.username=tu_usuario
spring.datasource.password=tu_contraseña

3. Configurar Cloudinary

Regístrate en Cloudinary y agrega tus credenciales en application.properties:

cloudinary.cloud_name=tu_nombre_nube
cloudinary.api_key=tu_api_key
cloudinary.api_secret=tu_api_secret

4. Ejecutar el proyecto

mvn clean install
mvn spring-boot:run

5. Despliegue automatizado

Usamos Jenkins para automatizar el despliegue. Cada vez que se realiza un cambio en el repositorio, Jenkins toma el código, lo construye y lo despliega en el servidor Ubuntu.

🔐 Seguridad

El backend utiliza JWT para manejar la autenticación de usuarios y proteger los endpoints. Los usuarios deben autenticarse para subir recetas y dar likes.

🖼️ Almacenamiento de Imágenes

Las imágenes subidas por los usuarios se gestionan y almacenan en Cloudinary. Esto garantiza una gestión eficiente de los recursos multimedia.

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors