depor_os/CLAUDE.md
Daniel Esteban 34e7cbc382 first commit
2026-03-18 12:47:06 +01:00

2.6 KiB

DeporOS — Guía para Claude

Qué es este proyecto

Port del panel de administración PHP (sc-admin) de un club deportivo a Flutter. Solo el panel de administración (uso interno), NO la parte pública.

Rutas clave

Recurso Ruta
PHP original (referencia) /home/conejo/private_html/sportscenter/sc-admin/
PHP sidebar (menú) /home/conejo/private_html/sportscenter/sc-admin/themes/modern/sidebar.php
Flutter (este proyecto) /home/conejo/public_html/depor_os/
Estado de tareas /home/conejo/public_html/depor_os/TAREAS.md

API backend

  • Base URL: https://reservas.madriguera.me/2.0
  • Auth: POST /login con {"email": "...", "password": "..."}{"access_token": "..."}
  • Token Bearer, guardado en SharedPreferences. Sin expiración, sin endpoint de logout.

Stack técnico

  • Flutter con Material 3, seed color #1565C0 (azul)
  • go_router ^14 para navegación (ShellRoute con sidebar)
  • http ^1.2 para llamadas a la API
  • shared_preferences ^2.3 para persistir el token
  • Soporte light/dark mode

Estructura Flutter (lib/)

core/
  constants.dart        ← kApiBase
  router.dart           ← GoRouter + ShellRoute, todas las rutas
models/
  nav_item.dart         ← modelo NavItem (label, icon, route, children)
navigation/
  app_navigation.dart   ← árbol completo del sidebar (kAdminNavItems)
services/
  auth_service.dart     ← login(), logout(), getToken(), isLoggedIn()
widgets/
  app_shell.dart        ← layout responsive: sidebar fijo ≥800px / drawer <800px
  sidebar/
    sidebar_widget.dart ← header + scroll nav + footer logout
    nav_item_tile.dart  ← tiles simples y grupos expandibles (ExpansionTile)
screens/
  login/login_screen.dart
  dashboard/dashboard_screen.dart   ← 4 accesos rápidos en grid
  placeholder_screen.dart           ← pantalla temporal para módulos pendientes

Cómo retomar trabajo

  1. Leer TAREAS.md para ver qué está hecho y qué sigue
  2. Para cada módulo nuevo: revisar el PHP original en /home/conejo/private_html/sportscenter/sc-admin/
  3. Preguntar al usuario el endpoint de la API antes de codificar
  4. Al terminar una tarea: actualizar TAREAS.md

Plataformas y responsive

  • Objetivo principal: web + tablet Android landscape
  • Breakpoint sidebar: 800px (permanente) / <800px (drawer)
  • Grid dashboard: ≥900px = 4 col / resto = 2 col
  • Preparado para móvil aunque no es prioritario

Convenciones

  • UI en español
  • No usar Scaffold en pantallas hijas del ShellRoute (ya lo provee AppShell)
  • Pantallas aún no implementadas usan PlaceholderScreen