Stack Tecnológico

Infraestructura probada en producción desde el día uno. Sin frameworks pesados, sin dependencias innecesarias.

API REST

🐘
PHP 8.2.30
API REST con router modular. Sin frameworks pesados, código limpio y eficiente.
Módulos: pdo_mysql, mbstring, curl, xml, zip, openssl, opcache
🛢️
MySQL 8.4
Base de datos multi-tenant con 14 tablas. Aislamiento por taller_id en cada query.
Railway · maglev.proxy.rlwy.net:54612 · peddale1_db
🔐
JWT HS256
Autenticación stateless con tokens firmados. Expiración 8 horas.
taller_id en payload · bcrypt para contraseñas · sesión única por app

Hosting y Red

☁️
DigitalOcean NYC3
Droplet peddaleo-suite · Ubuntu 24.04 · 1GB RAM · 25GB SSD · $6/mes
IP: 64.225.0.88 · Apache 2.4.58 · Kernel 6.8.0-110
🌐
Cloudflare Free
DNS, CDN, SSL Full Strict, CORS via Transform Rules, DDoS protección.
4 subdominios proxied · Regla CORS API Peddaleo activa
📧
Brevo API
Correos transaccionales (bienvenida, reset password).
API REST · sin restricción de puertos · dominio autenticado

Las 3 Apps

🏗️
HTML/CSS/JS Puro
Sin frameworks, sin dependencias externas. DOM < 350 nodos por página.
Bauhaus Design System · Archivo Black + DM Mono
PWA Ready
Instalable en Android e iOS. Service Worker con estrategia Network First.
manifest.json por app · Offline-first
🎨
Protocolo AAA
Touch targets 48px · Contraste 7:1 · Grid sobre Flex · Lighthouse 100 objetivo
Manifiesto Vivo Digital · Accesibilidad WCAG AAA

Flujo de Datos

VentasPro API PHP MySQL Railway
KioscoPro Poll 15s API PHP
PizarronPRO Poll 30s API PHP

Aislamiento de Datos

ComponenteMecanismo
JWTtaller_id dentro del token firmado con HS256 — infalsificable
APItaller_id extraído del JWT — nunca del cliente
Base de DatosWHERE taller_id = ? en todas las queries (SELECT/INSERT/UPDATE/DELETE)
Sesiónsession_ventas, session_kiosco, session_pizarron por taller — independientes