-
Notifications
You must be signed in to change notification settings - Fork 0
QuizzArenaUI: Frontend Engineering Standards
davidruizeJala edited this page May 25, 2026
·
1 revision
Proyecto: QuizzArenaUI
Propósito: Reglas, metodologÃas y estándares obligatorios para el código del cliente web.
El código se agrupa por dominio de negocio, no por tipo técnico. No debe existir una carpeta global tipo /components que agrupe elementos sin relación. Cada "Feature" encapsula sus propios componentes visuales, servicios API y gestión de estado.
Estructura de Carpetas Sugerida:
src/
│
├── � app/ Ruteo global y configuración (App Module/Standalone)
│
├── � shared/ Design System y utilidades transversales
│ ├── � ui/ Componentes puros y genéricos
│ ├── � styles/ Configuración de Tailwind y variables CSS globales
│ └── � interceptors/ HttpInterceptors (Auth, RFC 7807 Error Handling)
│
├── � core/ Servicios Singleton (AuthService, SignalRService)
│
├── � features/ Código agrupado por dominio
│ ├── � LiveArena/
│ │ ├── � components/ Leaderboard, AnswerButtons
│ │ ├── ðŸ“� services/ Lógica de SignalR especÃfica de la partida
│ │ └── � store/ Signals para el estado del juego
│ │
│ ├── � Assessment/
│ │ ├── � components/ DraftQuestionEditor
│ │ └── � services/ Llamadas REST a la API de preguntas
│ │
│ └── � AIKnowledge/ Subida de videos y monitoreo de jobs
│
└── � pages/ Componentes enrutables (Smart Components)
├── InstructorDashboardPage
├── MatchLobbyPage
└── StudentMatchEntryPage
Para los componentes reutilizables, adoptamos la filosofÃa de Atomic Design:
- �tomos: Botones base, inputs, iconos.
- Moléculas: Campos de formulario con labels, barras de búsqueda.
- Organismos: Modales globales, barras de navegación.
- Se utilizarán las clases de utilidad de Tailwind CSS directamente en los templates HTML.
- Para componentes muy complejos o donde el HTML se vuelva ilegible, se permite la abstracción en clases CSS mediante directivas como
@applydentro de la capa@layer components.
- El código se subirá a la rama
developmediante Pull Requests. - GitHub Actions verificará el linting y los tests antes de permitir el merge.
- La rama
maindisparará automáticamente un despliegue hacia Vercel.
-
Prettier: Configurado para formatear automáticamente al guardar (con un
.prettierrcen la raÃz). -
ESLint / Angular ESLint: Reglas estrictas para evitar variables
anyo inyecciones riesgosas.
- Jest o Vitest: Preferido sobre Karma/Jasmine por velocidad de ejecución y simplicidad de entorno.
- En el MVP, la cobertura debe priorizarse en los Smart Components y servicios de conexión a la API.