An open API service indexing awesome lists of open source software.

https://github.com/juliorom/ecommerce-app

Este proyecto es una API REST de e-commerce desarrollada con Spring Boot, que gestiona carritos de compra en MongoDB y transacciones en PostgreSQL. Implementa Spring Security con JWT para autenticación y autorización, permitiendo la compra segura de productos y el control de acceso según roles (USER, ADMIN). 🚀
https://github.com/juliorom/ecommerce-app

Last synced: 2 months ago
JSON representation

Este proyecto es una API REST de e-commerce desarrollada con Spring Boot, que gestiona carritos de compra en MongoDB y transacciones en PostgreSQL. Implementa Spring Security con JWT para autenticación y autorización, permitiendo la compra segura de productos y el control de acceso según roles (USER, ADMIN). 🚀

Awesome Lists containing this project

README

        

# Ecommerce API - Spring Boot

## 📌 Descripción
Ecommerce API es un sistema REST desarrollado con **Spring Boot** que permite la gestión de carritos de compra en **MongoDB** y la realización de transacciones en **PostgreSQL**. Implementa **Spring Security con JWT** para autenticación y autorización, asegurando la protección de los endpoints.

## 🚀 Características
- 🔹 **Gestión de carritos** en **MongoDB**.
- 🔹 **Gestión de productos y compras** en **PostgreSQL**.
- 🔹 **Autenticación y autorización** con **JWT y Spring Security**.
- 🔹 **Roles de usuario (`USER`, `ADMIN`)** para control de accesos.
- 🔹 **Arquitectura basada en capas** (Controladores, Servicios, Repositorios, Modelos).

## 📦 Tecnologías Utilizadas
- **Java 17**
- **Spring Boot 3**
- **Spring Data JPA & MongoDB**
- **PostgreSQL & MongoDB**
- **Spring Security con JWT**
- **Lombok**
- **Maven**

## ⚙️ Instalación y Configuración
### 1️⃣ **Clonar el repositorio**
```bash
git clone https://github.com/JulioRom/ecommerce-app.git
cd ecommerce-app
```

### 2️⃣ **Configurar las bases de datos**
#### 📌 PostgreSQL
Crea la base de datos en PostgreSQL:
```sql
CREATE DATABASE ecommerce;
```
Modifica `application.properties` con las credenciales:
```properties
spring.datasource.url=jdbc:postgresql://localhost:5432/ecommerce
spring.datasource.username=postgres
spring.datasource.password=admin
```
#### 📌 MongoDB
Asegúrate de tener MongoDB ejecutándose en `localhost:27017` y configura:
```properties
spring.data.mongodb.uri=mongodb://localhost:27017/ecommerce
```

### 3️⃣ **Ejecutar la aplicación**
```bash
mvn clean install
mvn spring-boot:run
```

## 🔑 Endpoints Principales
### **Autenticación**
- `POST /api/auth/register` → Registro de usuario
- `POST /api/auth/login` → Generación de JWT

### **Carrito de Compra (MongoDB)**
- `POST /api/carrito` → Agregar carrito
- `GET /api/carrito/{idUsuario}` → Obtener carrito

### **Compras (PostgreSQL)**
- `POST /api/compra/{idUsuario}` → Generar compra desde un carrito

## 🔐 Seguridad y Roles
- `USER`: Puede agregar carritos y comprar.
- `ADMIN`: Puede gestionar productos y revisar transacciones.

## 📜 Licencia
Este proyecto es de código abierto y se distribuye bajo la licencia MIT.

---
🚀 **¡Listo para empezar!** Corre la API y prueba los endpoints con **Postman** o **Swagger**. 😃