Aplicación BackEnd para un sistema de venta en una tienda u otro comercio.
El objetivo de este proyecto es desarrollar una aplicación de gestión para una tienda de productos, que permita la administración eficiente de ventas y productos. La aplicación proporcionará funcionalidades para:
-
Gestión de Productos: Permitir el registro, actualización y eliminación de productos, así como la consulta de su información. Incluye la gestión de categorías para clasificar los productos.
-
Registro de Ventas: Facilitar la creación de ventas, donde los usuarios puedan registrar las compras realizadas, asociando productos con sus detalles (precio unitario, cantidad, subtotal) y calcular el total de la venta incluyendo el IVA.
-
Gestión de Detalles de Venta: Administrar los detalles de cada venta, garantizando que se registren correctamente los productos involucrados, así como sus precios y cantidades.
-
Persistencia de Datos: Utilizar una base de datos SQL Server para almacenar toda la información relacionada con productos, categorías y ventas, asegurando la integridad y disponibilidad de los datos.
-
Interfaz y Documentación: Proporcionar una API RESTful que sea fácil de utilizar y documentar con Swagger, permitiendo a los desarrolladores integrarse rápidamente con el sistema y comprender sus funcionalidades.
El sistema busca optimizar el proceso de venta y gestión de productos, ofreciendo una solución robusta y eficiente para la tienda.
- Gestión de productos y categorías.
- Registro de ventas con detalles de productos.
- Cálculo de subtotales, totales e IVA en las ventas.
Este proyecto utiliza Docker Compose para facilitar la configuración y el despliegue de la aplicación y la base de datos SQL Server. A continuación se detallan los pasos para levantar la aplicación utilizando Docker Compose.
- Docker instalado en tu máquina.
- Docker Compose instalado.
- Crear el archivo
docker-compose.ymlcon la siguiente estructura
version: '3.8'
services:
sqlServerDocker:
container_name: sql-server-docker
image: mcr.microsoft.com/mssql/server:2022-latest
ports:
- "8006:1433"
environment:
- ACCEPT_EULA=Y
- MSSQL_SA_PASSWORD=MiContrasena*1234
networks:
- mynetworkapi
apitienda:
container_name: apiTienda
image: charly3012/apitienda:1.0
environment:
- DB_CONNECTION_STRING=Server=sqlServerDocker;Database=ApiTienda;User ID=sa;Password=MiContrasena*1234;Trusted_Connection=False;TrustServerCertificate=True;MultipleActiveResultSets=True
networks:
- mynetworkapi
depends_on:
- sqlServerDocker
ports:
- "5001:8080"
- "5002:8081"
networks:
mynetworkapi:-
Construir y desplegar los contenedores
docker-compose up -d
-
Accede a la aplicación:
Una vez que los contenedores estén corriendo, puedes acceder a la API en el siguiente URL:
API: http://localhost:5001
Swagger: http://localhost:5001/swagger
- Asegúrate de que el puerto 5001 no este siendo utilizado por otras aplicaciones en tu máquina.
- Puedes ajustar las configuraciones de puerto y otras variables de entorno en el archivo docker-compose.yml según tus necesidades.
La API ha sido desplegada en un servidor Linux, el cual es un proyecto personal, utilizando Docker Compose. Puedes acceder a los endpoints de la API y a la interfaz de Swagger para explorar y probar los servicios disponibles.
La API está disponible en los siguientes puertos:
HTTP: http://apolo.myftp.org:5001/api/<Método HTTP>
HTTPS: Proximamente...
Puedes acceder a la documentación interactiva de la API proporcionada por Swagger
Nota: Cambiar el protocolo a http (por defecto lo abre en https)
Documentación de la API