Este proyecto es un sistema E-Commerce completo, compuesto por:
- Backend en .NET 8 (Clean Architecture + DDD)
- Frontend en React
- Base de datos PostgreSQL
- Stripe como sistema de pagos
- JWT Auth para autenticación segura
El sistema permite la gestión de productos, usuarios, pedidos, proveedores, categorías, e incorpora un flujo de compra real con checkout y webhook de Stripe.
- ASP.NET Core Web API
- Entity Framework Core
- Clean Architecture
- Repository Pattern
- PostgreSQL
- JWT (Access + Refresh Tokens)
- Stripe Checkout
- React
- React Router
- Axios
- Bootstrap
El proceso de facturación cubre todo el flujo: usuario → pedido → pago → factura.
- El cliente navega por el catálogo (
/api/Product) y agrega productos al carrito. - Cuando decide comprar, el frontend envía una solicitud:
POST /api/Orders
- Se genera un
orderId. - El usuario agrega productos al pedido:
POST /api/Orders/{orderId}/product/{productId}
- También puede:
- Actualizar cantidades
- Quitar productos
- Consultar su pedido
Una vez confirmado el pedido:
-
El cliente envía:
POST /api/Payment/Checkout -
El backend:
-
Calcula el monto total.
-
Inicia la transacción.
-
Espera el webhook de confirmación:
POST /api/Payment/Webhook -
Si el pago es exitoso:
-
El pedido pasa a estado Pagado
-
Se genera la Factura (Invoice)
Después del pago, se registra una factura accesible desde:
GET /api/Invoice
La factura incluye:
- Información del usuario
- Productos comprados
- Subtotal
- Total final
- Fecha de compra
- ID de transacción
El sistema cuenta con cuatro roles: Invitado, Cliente, Empleado y Administrador.
Usuario no autenticado.
- Ver productos
- Ver categorías
Debe iniciar sesión o registrarse.
Usuario autenticado que compra productos.
- Crear pedidos
- Agregar o quitar productos del pedido
- Ver sus pedidos
- Procesar pagos
- Ver sus facturas
- Restablecer contraseña
Usuario del negocio encargado de manejar operaciones internas.
- Crear, actualizar y eliminar productos
- Manejo de imágenes de productos
- Crear y administrar categorías
- Gestionar proveedores
- Ver sus pedidos
- Actualizar estado de un pedido
- Revisar productos asociados a un pedido
Usuario con acceso total al sistema.
- Todo lo que puede hacer un Empleado
- Crear y eliminar empleados
- Administrar roles
- Ver todas las facturas
- Generar reportes financieros
- Eliminar pedidos
- Control total del inventario
- Mantenimiento de la base de datos
- Backend → Render → https://pressstart-api.onrender.com/swagger/index.html
- Frontend → Vercel → https://pressstart-sv.vercel.app/
- Base de datos → Railway
- Pasarela de pago → Stripe
- Diccionario de datos → https://1drv.ms/x/c/5963e1d891182ff6/Eb5HJS33wbhOt22GR2P_Ae0BO6uVP7CTfzbvfY0ZWk3fbQ?e=V4MQ1j
- Wilmer Álvarez → https://github.com/AssistedVeil86
- César Andrade → https://github.com/c3saR-A
- Jennyfer Cashpal → https://github.com/CharCash
- Josué Melara → https://github.com/JosuMelara21
- Steven Trujillo → https://github.com/imTrujillo