Control de Avance — Red Social Laboral (PHP 8.3)

Checklist por estructura, flujo y fases. Guarda estado local. No sustituye pruebas; solo controla completitud.

Progreso global

0%
Completado
0
Items listos
0
Items pendientes
0/0
Archivos listos

Recomendación: marca “listo” solo cuando exista el archivo y se haya ejecutado el test/validación asociado.

Fase 0 — Base técnica (fundación)

0% 0/0
Archivos y base mínima (Router, Request/Response, Logs, Middlewares)

Fase 1 — Auth (registro/login) + captcha propio + 2FA + Google OAuth

0% 0/0
Checklist Auth y seguridad (a desarrollar después de Fase 0)

Fase 2 — Planes + Módulos + RBAC + Panel Admin total

0% 0/0
Catálogo de módulos, planes, overrides y permisos

Fase 3 — Media (imágenes optimizadas, seguras y rápidas)

0% 0/0
Upload seguro + WebP + srcset + lazy load

Fase 4 — UI Front (Landing pro + Feed 3 columnas + móvil tipo app)

0% 0/0
Layouts, componentes, navegación móvil (header + bottom nav)

Fase 5 — Posts + Moderación + Reportes

0% 0/0
CRUD Posts, sanitización, denuncias, cola de moderación

Fase 6 — Vacantes + Aplicaciones (core)

0% 0/0
Publicación, aplicación, panel empresa y límites por plan

Fase 7 — Hardening, performance, WAF y SEO final

0% 0/0
Cloudflare/WAF, cache headers, índices DB, sitemap, schema

Resumen de control

Este tablero sigue la estructura y flujo acordados. Cuando agreguemos/renombremos archivos, actualizamos aquí el checklist.

Regla para marcar como “Listo”
Marca un item como listo únicamente si:
  1. Existe el archivo en la ruta indicada.
  2. Compila/ejecuta sin errores 500.
  3. Se ejecutó el test/validación asociado (curl o checklist manual).
  4. Se registran logs correctamente si aplica (security/audit/errors).
Notas rápidas (WHM/Apache + shared hosting)
  • Rate limit file-based funciona bien en shared hosting.
  • Para DDoS real: WAF en borde (Cloudflare) es obligatorio.
  • Imágenes: entrada JPEG/PNG; salida WebP + fallback; usar cache headers.
  • Evitar video en MVP (ya definido).
Exportar / importar estado

Puedes copiar el JSON del estado para guardarlo aparte.

Importar sobrescribe el estado actual.