Este repositorio corresponde al backend del Trabajo Práctico Obligatorio de la materia Aplicaciones Interactivas (Primer Cuatrimestre 2025).
La aplicación simula un sistema de e-commerce que permite a los usuarios registrarse, iniciar sesión, navegar por un catálogo de productos, gestionar un carrito de compras y publicar productos.
API REST en http://localhost:8080/swagger-ui/index.html
1. Requisitos
2. Instrucciones para levantar el proyecto
2.1 Clonar y preparar el entorno
Opción A: IntelliJ IDEA
Opción B: Visual Studio Code
2.2 Asignar variables de entorno
Opción A: IntelliJ IDEA
Opción B: Visual Studio Code
2.3 Iniciar servidor
Opción A: IntelliJ IDEA
Opción B: Visual Studio Code
3. Funcionalidades del proyecto
3.1 TODO List
3.2 Subir a Github
3.3 Estructura de carpetas
4. Estructura de la Base de datos
4.1 Diagrama Entidad Relación
4.2 Collections
4.2.1 Collection products
4.2.2 Collection categories
4.2.3 Collection users
4.2.4 Collection carts
4.2.5 Collection orders
5. Acceso al proyecto
git clone https://github.com/mquiss/APIS2025BACK
- Abre IntelliJ IDEA.
- Ve a File > Open y selecciona la carpeta APIS2025BACK.
- Abre Visual Studio Code.
- Instala las siguientes extensiones:
- Extension Pack for Java
- Spring Boot Extension Pack
- Ve a File > Open y selecciona la carpeta APIS2025BACK.
Este proyecto utiliza variables de entorno para proteger credenciales sensibles. Estas se referencian en
application.yml
como:
spring:
data:
mongodb:
uri: ${DB_URI}
security:
user:
name: ${SC_USERNAME}
password: ${SC_PASSWORD}
DB_URI
: URI de conexión a la base de datos MongoDB alojada en MongoDB Atlas. Incluye las credenciales de acceso, el nombre de la base de datos y parámetros de configuración necesarios para la conexión remota.SC_USERNAME
: Nombre de usuario predeterminado para la autenticación básica de Spring Security.SC_PASSWORD
: Contraseña correspondiente al usuario definido en SC_USERNAME, utilizada para proteger rutas HTTP mediante autenticación básica.
- Ve a Run > Edit Configurations, seleccionando la clase principal
EcommerceApplication
- Selecciona Modify options y activa las variables de entorno
- En la sección Environment variables, agrega:
Name | Value |
---|---|
DB_URI | mongodb+srv://credentials@cluster.mongodb.net/... |
SC_USERNAME | username |
SC_PASSWORD | password |
- Abre una terminal (PowerShell) y ejecuta:
$env:DB_URI="mongodb+srv://credentials@cluster.mongodb.net/..."
$env:SC_USERNAME="username"
$env:SC_PASSWORD="password"
Esto solo funcionará mientras la terminal se encuentre abierta. Al no ser permanente, se deberá repetir el proceso antes de empezar a trabajar en el proyecto.
⚠️ Evita hardcodear valores sensibles enapplication.yml
, ya que el archivo se encuentra en el repositorio remoto.
- Haz clic en el botón verde sobre la clase
EcommerceApplication
:
- Abre Spring Boot Dashboard y ejecuta la aplicación:
Esto levantará el backend en: http://localhost:8080
- Products
- Carts
- Users
- Categories
- Orders
- Auth
Cada funcionalidad se trabajará en su respectiva rama feature\nombre
git branch feature\products
git checkout feature\products
Este proyecto utiliza una base de datos no relacional, específicamente MongoDB. La base de datos se denomina ecommerce y contiene colecciones que representan entidades clave del sistema, como usuarios, productos, categorías de productos, órdenes y carritos de compra.
Registros: products.json
Registros: categories.json
Registros: users.json
Registros: carts.json
Registros: orders.json
- Login (Spring Security): http://localhost:8080/login
Ingresar los valores de las variables de entorno SC_USERNAME y SC_PASSWORD en el formulario para poder acceder a todas las rutas del proyecto.