raulanto
Ing en Sistemas Computacionales
Estructura de carpetas
src/
├── app/
│ ├── core/ # Core module: servicios singleton, interceptores, guards
│ │ ├── interceptors/
│ │ ├── guards/
│ │ ├── services/
│ │ ├── core.module.ts
│ │ └── index.ts
│ ├── shared/ # Shared module: componentes, pipes, directivas reutilizables
│ │ ├── components/
│ │ ├── directives/
│ │ ├── pipes/
│ │ ├── models/
│ │ ├── shared.module.ts
│ │ └── index.ts
│ ├── features/ # Módulos de funcionalidad (lazy loaded)
│ │ ├── feature1/
│ │ │ ├── components/
│ │ │ ├── pages/
│ │ │ ├── services/
│ │ │ ├── feature1-routing.module.ts
│ │ │ └── feature1.module.ts
│ │ ├── feature2/
│ │ │ └── ...
│ ├── layout/ # Componentes de layout (navbar, sidebar, footer)
│ │ ├── header/
│ │ ├── sidebar/
│ │ ├── footer/
│ │ └── layout.module.ts
│ ├── state/ # Gestión de estado global (NgRx, NGXS, etc.)
│ │ ├── actions/
│ │ ├── reducers/
│ │ ├── selectors/
│ │ ├── effects/
│ │ └── index.ts
│ ├── app-routing.module.ts
│ ├── app.component.ts
│ ├── app.module.ts
│ └── main.ts
├── assets/ # Imágenes, fuentes, etc.
├── environments/ # Configuración para diferentes entornos
│ ├── environment.ts
│ ├── environment.prod.ts
├── styles/ # SCSS/CSS globales
│ ├── themes/
│ ├── variables.scss
│ └── styles.scss
├── index.html
└──
Explicación de los módulos principales
1. Core Module (core/)
- Singleton services (autenticación, API, interceptores HTTP, guards).
- Solo debe importarse en AppModule.
- Ejemplo: servicios de logging, guards, interceptores, configuración global.
2. Shared Module (shared/)
- Componentes reutilizables, pipes, directivas, modelos.
- Puede ser importado en cualquier módulo.
- Ejemplo: botones, tablas, componentes de UI pequeños, pipes personalizados.
3. Features Modules (features/)
- Un módulo por cada área funcional (ej: usuarios, productos, pedidos).
- Permite lazy loading y separación de responsabilidades.
- Cada feature tiene subcarpetas para componentes, páginas, servicios, etc.
4. Layout Module (layout/)
- Componentes de estructura general de la aplicación (header, sidebar, footer).
- Útil para layouts dinámicos o diferentes tipos de navegación.
5. State Management (state/)
- Usado si implementas NgRx, NGXS, Akita, etc.
- Acciones, reducers, efectos, selectores para manejar el estado global de la app.
6. Environments
- Variables de entorno para desarrollo, producción, etc.
7. Styles
- Temas, variables SCSS, estilos globales.