Epublit es un sistema de gestión integral diseñado específicamente para el negocio editorial.
Cada libro tiene un isbn unico, un stock, un titulo, autores e ilustradores. Se guarda un historico de precios.
✅ Una persona tiene un dni, un nombre y un email. Una persona puede trabajar como autor, ilustrador o ambas en uno, ninguno o muchos libro. Una persona no puede estar dos veces en el mismo libro con el mismo rol. Una persona cobra un porcentaje distinto por cada relacion con un libro en la que se encuentre.
⏳Una liquidacion tiene una fecha de inicio y una fecha de fin. Una liquidacion se realiza por autor o ilustrador en un periodo de fechas determinado. Se calcula el total de ventas realizadas para libros de ese autor o ilustrador en dicho periodo.
✅ Un cliente referencia a una persona que se encuentra en afip, se conoce su cuit, su nombre, condicion fiscal, razon social y domicilio fiscal. Estos ultimos datos deben cargarse automáticamente solo con el cuit. Existen tres tipos de clientes, "inscripto", "particular" y "no facturable".
✅ Los clientes inscriptos tienen un stock propio de libros, este stock se actualizará cuando se realicen Consignaciones, devoluciones o ventas de consignaciones.
✅ Una transaccion tiene muchos libros con una cantidad cada uno y se realiza a un cliente
✅ Se emite una factura al menos que sea al cliente de tipo "no facturable". se conoce tambien una fecha de venta un tipo de comprobante, un medio de pago y un descuento. El descuento se aplica al total de la venta.
✅ Los libros consignados pasan a estar en el stock del cliente (librerías). Una consignacion puede ser devuelta o vendida.
✅ Los libros que un cliente tiene en stock pueden ser devueltos, los libros devueltos vuelven a estar en el stock principal.
✅ Los libros que un cliente tiene en stock pueden ser vendidos, se vende al precio que tenian los libros cuando se realizó la consignación.
⏳ se puede ingresar un gasto, un gasto tiene una fecha un monto y una observación Balance El balance representa la diferencia entre los gastos y las entradas (ventas)
DB_HOST=localhost
DB_USER=user
DB_PASS=password
DB_PORT=3306
DB_NAME=db_name
PROTOCOL=http
env=DEV
BACK_PORT=3001
BACK_PUBLIC_PORT=80
JWT_SECRET=super_secret_key
JWT_EXPIRES_IN=7d
- Agregar docker a sudo
sudo usermod -aG docker $USER`
- Buildear los contenedores
docker compose build
- Correr el servicio
sudo systemctl start docker
- Ejecutar el server
docker compose up
- Levantar la api
docker compose up -d api
- Correr los tests
npm run test