andres@maracaibo:~/portfolio
cd ../redacopiovnzla
cat redacopiovnzla.md

drwxr-- Red Acopio Vnzla

NextJSNestJSRedisPostgresSQLRailwayDocker

cat README.md

Red Acopio Venezuela

Plataforma logística de emergencia para centros de acopio de donaciones

🌐 Sitio en producción (https://www.redacopiovnzla.com) · 💻 Código (https://github.com/Chappie21/VnzlCentrosDeInsumos)

▎ Conecta donantes con centros de acopio en Venezuela y le da a cada centro un inventario auditable en tiempo real. Construida en 6 días junto a un compañero, tras un sismo.


El problema

Después de un sismo en Venezuela, la ayuda existe pero se desperdicia por falta de coordinación. La gente quiere donar y no sabe a dónde llevar las cosas ni qué se necesita realmente, así que llegan diez cajas de ropa a un centro que necesitaba agua. Los centros de acopio, montados de un día para otro por voluntarios, llevan las cuentas en papel: no saben qué tienen, qué se está agotando ni qué despacharon. Y nadie puede distinguir un centro legítimo de uno inventado.

La solución

Una plataforma web gratuita, mobile-first, sin app que instalar y sin login para mirar, con cuatro audiencias resueltas por separado:

Quien dona entra a un mapa nacional y a un directorio buscable con filtros combinables — cerca de mí, solo abiertos, urgencia alta, verificados. Cada centro muestra la distancia real y sus necesidades clasificadas en urgente / normal / suficiente, con categoría (agua, medicamentos, ropa, alimentos, herramientas) y si está recibiendo en este momento. Sin crear cuenta.

Quien entrega arma un carrito de insumos y obtiene un código QR generado enteramente en el navegador. En el centro, el voluntario lo escanea con la cámara, marca lo que efectivamente recibió y confirma: el inventario se actualiza en un movimiento atómico. La recepción física deja de ser una libreta.

Quien opera un centro lo registra en un asistente de dos pasos con mapa interactivo, y carga el inventario inicial a mano o importándolo desde un Excel. Después gestiona todo desde el teléfono: inventario con umbrales que recalculan la urgencia automáticamente, ajustes de stock auditados, invitación de voluntarios por QR o enlace con roles (jefe / voluntario), despacho de envíos con guía imprimible y QR de seguimiento, exportación del inventario a PDF, y un generador de anuncios para redes sociales que produce una imagen 1080×1350 con las necesidades urgentes del centro y un mini-mapa, lista para Instagram.

El equipo de verificación trabaja sobre una cola de moderación que, por cada centro, muestra la foto del local, los datos del responsable, el resultado de cotejar su cédula contra el registro civil venezolano, la distancia entre el GPS capturado al registrar y la dirección declarada (en rojo si supera 2 km), un mini-mapa y el conteo de reportes comunitarios. Cualquier persona puede reportar un centro de forma anónima; tres reportes lo suben al tope de la cola, pero no lo ocultan — para que un grupo coordinado no pueda tumbar un centro legítimo.


Arquitectura

Monorepo Turborepo + pnpm con dos aplicaciones (Next.js App Router · NestJS) y dos paquetes compartidos: el cliente Prisma y un paquete de dominio venezolano (24 estados y 335 municipios, validación de cédula, cálculos geográficos) que consumen ambos lados para validar con las mismas reglas.

Decisiones que definieron el proyecto

El inventario es un libro mayor, no un contador. cantidadTotal nunca se escribe directamente: todo cambio crea un asiento en la tabla Historial y hace el increment dentro de una única transacción. Eso da trazabilidad completa, resistencia a la concurrencia y una métrica de donaciones auditable en lugar de opinable. El invariante se protege en tres capas —la transacción, el whitelist del ValidationPipe y un test que verifica que el bypass falla.

Verificación como etiqueta, no como portón. Un centro nace pendiente y opera con normalidad desde el primer segundo; el sello de verificado comunica confianza pero no bloquea nada. En una emergencia, bloquear centros hasta aprobarlos mata a los legítimos: el costo de un centro falso visible unas horas es menor que el de veinte centros reales invisibles un día entero.

El modelo de amenaza dio forma al producto. El detalle público de un centro no muestra cantidades, solo el nivel de urgencia, porque publicar el inventario de un depósito de ayuda humanitaria es publicar dónde hay cosas que

Quien dona entra a un mapa nacional y a un directorio buscable con filtros combinables — cerca de mí, solo abiertos, urgencia alta, verificados. Cada centro muestra la distancia real y sus necesidades clasificadas en urgente / normal / suficiente, con categoría (agua, medicamentos, ropa, alimentos, herramientas) y si está recibiendo en este momento. Sin crear cuenta.

Quien entrega arma un carrito de insumos y obtiene un código QR generado enteramente en el navegador. En el centro, el voluntario lo escanea con la cámara, marca lo que efectivamente recibió y confirma: el inventario se actualiza en un movimiento atómico. La recepción física deja de ser una libreta.

Quien opera un centro lo registra en un asistente de dos pasos con mapa interactivo, y carga el inventario inicial a mano o importándolo desde un Excel. Después gestiona todo desde el teléfono: inventario con umbrales que recalculan la urgencia automáticamente, ajustes de stock auditados, invitación de voluntarios por QR o enlace con roles (jefe / voluntario), despacho de envíos con guía imprimible y QR de seguimiento, exportación del inventario a PDF, y un generador de anuncios para redes sociales que produce una imagen 1080×1350 con las necesidades urgentes del centro y un mini-mapa, lista para Instagram.

El equipo de verificación trabaja sobre una cola de moderación que, por cada centro, muestra la foto del local, los datos del responsable, el resultado de cotejar su cédula contra el registro civil venezolano, la distancia entre el GPS capturado al registrar y la dirección declarada (en rojo si supera 2 km), un mini-mapa y el conteo de reportes comunitarios. Cualquier persona puede reportar un centro de forma anónima; tres reportes lo suben al tope de la cola, pero no lo ocultan — para que un grupo coordinado no pueda tumbar un centro legítimo.

Red Acopio Vnzla — 1Red Acopio Vnzla — 2Red Acopio Vnzla — 3Red Acopio Vnzla — 4Red Acopio Vnzla — 5Red Acopio Vnzla — 6Red Acopio Vnzla — 7Red Acopio Vnzla — 8Red Acopio Vnzla — 9Red Acopio Vnzla — 10Red Acopio Vnzla — 11Red Acopio Vnzla — 12Red Acopio Vnzla — 13Red Acopio Vnzla — 14Red Acopio Vnzla — 15Red Acopio Vnzla — 16Red Acopio Vnzla — 17Red Acopio Vnzla — 18Red Acopio Vnzla — 19Red Acopio Vnzla — 20Red Acopio Vnzla — 21Red Acopio Vnzla — 22Red Acopio Vnzla — 23Red Acopio Vnzla — 24Red Acopio Vnzla — 25Red Acopio Vnzla — 26Red Acopio Vnzla — 27Red Acopio Vnzla — 28Red Acopio Vnzla — 29