Plataforma e-commerce | INACAP TI3V21

ClickAndGo

Sistema de gestion para una tienda de comercio electronico que vende productos fisicos, productos digitales, servicios tecnicos agendados y electronica importada cotizada en dolares.

1. Que problema resuelve

La tienda vende tres tipos de producto en un mismo pedido y cada uno se entrega de forma distinta: los fisicos se despachan por transporte con flete, los digitales se entregan al instante con un enlace, y los servicios se agendan para una fecha futura. El sistema resuelve esa variedad con un mismo flujo de venta.

2. Como se protege el negocio

Valida el RUT chileno (algoritmo Modulo 11) o el correo del cliente antes de vender, impide confirmar un pedido sin stock suficiente e impide despachar un pedido que no este pagado. Cada bloqueo es una excepcion propia del dominio, no un simple mensaje en pantalla.

3. De donde sale el precio

La electronica importada se cotiza en dolares y se convierte a pesos con el valor del dolar observado del dia, obtenido desde la API publica mindicador.cl. Si la API no responde, el sistema avisa y sigue funcionando con el ultimo valor conocido.

Recorrido rapido del proyecto

EtapaQue haceDonde vive en el codigo
ModeloClases del negocio: cliente, productos, pedido, detalles y trabajadoresmodel/
PersistenciaCRUD en SQLite con consultas parametrizadasdao/
ServiciosValidacion de entradas y consumo de la API del dolarservicios/
InterfazMenu de consola que orquesta todo el sistemamain.py
Verificacion19 casos del guion de pruebas automatizadostests/

Requisitos minimos del negocio y su cumplimiento

Requisito de la fichaImplementacionEstado
Tres subtipos con un metodo que cambiaProductoFisico, ProductoDigital y ProductoServicio sobrescriben procesar_entrega()Cumple
Un dato con validacion obligatoriaCliente.identificador valida RUT Modulo 11 o correo en el setterCumple
Una transaccion con lineas de detallePedido compone DetallePedido (1 a 1..*) y lo guarda junto al pedidoCumple
Dos reglas que impidan una operacionStockInsuficienteError y PedidoNoPagadoErrorCumple
Un precio con indicador externoProductoElectronica.calcular_precio_final(valor_dolar) con la API mindicador.clCumple
Dos trabajadores con permisos distintosAdministrador y EncargadoBodega (RBAC)Cumple