Skip to main content

Estructura de Modulos

La app sigue un patron module-first: cada feature tiene su propio modulo autocontenido en src/modules/, con una estructura interna consistente. El codigo compartido vive en src/shared/ y la configuracion central en src/core/.

Convencion de Estructura Interna

Cada modulo puede contener los siguientes directorios (segun necesidad):
No todos los modulos implementan todos los directorios. Cada modulo incluye solo lo que necesita, manteniendo la estructura ligera.

Lista de Modulos

Codigo Compartido (src/shared/)

Ubicados en src/shared/components/, organizados por categoria:

Configuracion Central (src/core/)

analytics/

Cliente de PostHog (client.posthog.ts), definicion de eventos (events.ts) y punto de entrada (index.ts).

config/

Variables de entorno (env/), configuracion de Sentry (sentry.ts), PostHog (posthog.ts), deep linking (linking.ts), navegacion (navigation.ts).

featureFlags/

Feature flags centralizados (flags.ts). Ejemplo: financialReport2025.
Adicionalmente, src/core/i18n/ contiene la internacionalizacion con soporte para ingles (en.ts) y espanol (es.ts), ademas de localizacion de calendarios (calendarLocalization.ts).

Diagrama de Dependencias

La regla de dependencia es unidireccional: modules/ puede importar de shared/ y core/, pero shared/ no debe importar de modules/ y core/ no debe importar de shared/ ni modules/. La excepcion es cuando se usa import dinamico (await import(...)) para evitar dependencias circulares, como en authStore que importa chatStore de forma lazy.