Volver a la constelaciónConstelación

Detta3D

Desarrollé la tienda online de Detta3D, una marca de objetos impresos en 3D, y el panel con el que administra productos, pedidos y stock, con una API en FastAPI y un panel en React.

Rol
Desarrollador Full Stack

Desde

6 meses

Hasta

Detta3D en Instagram (se abre en una pestaña nueva)
Inicio de la tienda online de Detta3D en escritorioFicha del Mate Pelota en un celular, con sus versiones de color

Punto de partida

Los pedidos llegaban por Instagram y por WhatsApp, y el stock y las ventas se seguían a mano. Hacía falta una tienda para vender y un solo lugar para administrar lo que pasa después de cada compra, venga del canal que venga.

Qué hice

  • Diseñé e implementé la API en Python con FastAPI, sobre Xata como base de datos.
  • Construí el panel administrativo en React para gestionar productos, pedidos y sus estados.
  • Conecté la tienda con la gestión: cada venta actualiza el stock y alimenta las métricas.
  • Automaticé lo que antes se hacía a mano, como sacar de la tienda lo que se agota, y desplegué la aplicación en Render.

Resultado

La tienda y la gestión en una misma aplicación: el negocio ve qué se vendió, qué falta reponer y en qué estado está cada pedido, sin cargar datos dos veces.

Resumen del panel: ventas por día, pedidos por estado y productos para reponerLista de pedidos en el celular, con su estado y el próximo paso

Decisiones técnicas

Pedidos con estados claros

Cada pedido avanza por estados definidos y la API sólo acepta transiciones válidas: un pedido entregado no vuelve a pendiente por error. El panel muestra qué falta hacer con cada uno.

  1. Pendiente
  2. Confirmadodescuenta stock
  3. Enviado
  4. Entregado
  • FastAPI
  • Pydantic

El stock en el mismo movimiento

El stock se descuenta cuando se confirma el pedido, no cuando alguien se acuerda. La tienda deja de ofrecer lo que no hay y el panel marca qué productos reponer.

  • Xata
  • REST

Métricas desde los pedidos reales

Las ventas por período y por producto se calculan a partir de los pedidos, no de una planilla aparte, para decidir qué reponer y qué promocionar.

  • React
  • Dashboard
Detalle de un pedido confirmado: la línea de estados marca que descontó stockProductos con su stock contra el mínimo; uno agotado aparece oculto de la tienda

Stack

  • Python
  • FastAPI
  • Pydantic
  • Xata
  • Render
  • React
  • JavaScript