aurora-project-structure
SKILL.md
When to Use
- User asks "where is..." or "where should I put..."
- User needs to understand the project organization
- User asks about naming conventions
- User needs to navigate between layers (Aurora, Fuse, Apps)
- User is new to Aurora Angular architecture
Critical Patterns
Layer Responsibilities
| Layer | Path | Responsibility | Can Modify? |
|---|---|---|---|
| @fuse | src/@fuse/ |
Fuse template library (animations, core components, services) | NO (template) |
| @aurora | src/@aurora/ |
Aurora framework (reusable components, modules, services) | Exceptionally |
| Apps | src/app/modules/admin/apps/ |
Business domain modules (generated + custom) | YES (handlers) |
| Core | src/app/core/ |
App core (auth, navigation, icons, transloco) | Exceptionally |
| Layout | src/app/layout/ |
Layout components (header, sidebar, settings) | Exceptionally |
Module File Pattern
Each module in apps/[bounded-context]/[module]/ follows this structure:
[module]-detail.component.ts # Detail/Edit view (extends ViewDetailComponent)
[module]-detail.component.html # Detail template
[module]-list.component.ts # List view (extends ViewBaseComponent)
[module]-list.component.html # List template with au-grid
[module].columns-config.ts # Grid column definitions
[module].graphql.ts # GraphQL queries and mutations
[module].resolvers.ts # Route resolvers
[module].service.ts # CRUD service with Apollo
index.ts # Barrel exports
public-api.ts # Public API exports
Project Structure
cliter/ # Aurora YAML Definitions
├── [bounded-context]/
│ ├── [module].aurora.yaml # Module definition (source of truth)
│ └── [module]-lock.json # Generation lock file
│
src/
├── @fuse/ # Fuse Template Library (DO NOT MODIFY)
│ ├── animations/ # Animation utilities
│ ├── components/ # Core UI components
│ │ ├── alert/ # Alert component
│ │ ├── card/ # Card component
│ │ ├── confirmation/ # Confirmation dialog
│ │ ├── drawer/ # Drawer/sidebar component
│ │ ├── fullscreen/ # Fullscreen toggle
│ │ ├── highlight/ # Syntax highlighting
│ │ ├── loading-bar/ # Loading indicator
│ │ ├── masonry/ # Masonry grid layout
│ │ └── navigation/ # Navigation components
│ │ ├── horizontal/ # Horizontal nav
│ │ └── vertical/ # Vertical nav
│ ├── directives/ # Custom directives
│ │ ├── scroll-reset/ # Reset scroll position
│ │ └── scrollbar/ # Custom scrollbar
│ ├── lib/ # Libraries
│ │ └── mock-api/ # Mock API utilities
│ ├── pipes/ # Common pipes
│ ├── services/ # Core services
│ │ ├── config/ # App configuration
│ │ ├── confirmation/ # Confirmation service
│ │ ├── loading/ # Loading service
│ │ ├── media-watcher/ # Responsive breakpoints
│ │ ├── platform/ # Platform detection
│ │ ├── splash-screen/ # Splash screen
│ │ └── utils/ # Utility functions
│ ├── styles/ # SCSS styles
│ │ ├── components/ # Component styles
│ │ └── overrides/ # Material overrides
│ ├── tailwind/ # Tailwind plugins
│ │ ├── plugins/ # Custom plugins (theming, utilities)
│ │ └── utils/ # Tailwind utilities
│ └── validators/ # Form validators
│
├── @aurora/ # Aurora Framework Library
│ ├── components/ # Reusable UI Components
│ │ ├── attachments/ # File attachments
│ │ ├── breadcrumb/ # Breadcrumb navigation
│ │ ├── chat-timeline/ # Chat/timeline component
│ │ ├── datepicker/ # Custom datepicker
│ │ ├── dialog/ # Dialog wrapper
│ │ ├── file-upload/ # File upload component
│ │ ├── flag-icon/ # Country flag icons
│ │ ├── grid/ # Main grid component
│ │ │ ├── grid/ # Core grid
│ │ │ ├── grid-columns-config/ # Column configuration
│ │ │ ├── grid-filters-dialog/ # Filter dialog
│ │ │ ├── grid-search/ # Search component
│ │ │ ├── grid-translations/ # i18n support
│ │ │ ├── directives/ # Grid directives
│ │ │ └── pipes/ # Grid pipes
│ │ ├── grid-dialog/ # Grid in dialog
│ │ ├── grid-elements-manager/ # Element manager grid
│ │ ├── grid-select-element/ # Single selection grid
│ │ ├── grid-select-multiple/ # Multiple selection grid
│ │ ├── image-input/ # Image input control
│ │ ├── image-preview-overlay/ # Image preview
│ │ ├── password-strength/ # Password strength indicator
│ │ ├── phone-number-format/ # Phone formatting
│ │ ├── slug/ # URL slug generator
│ │ ├── split-button/ # Split button
│ │ ├── title/ # Page title
│ │ ├── validation-messages/ # Form validation messages
│ │ └── version-input/ # Version input (x.y.z)
│ ├── decorators/ # Custom decorators
│ ├── directives/ # Custom directives
│ │ ├── decimal.directive.ts # Decimal input
│ │ ├── focus.directive.ts # Auto focus
│ │ └── scroll-end.directive.ts # Infinite scroll
│ ├── foundations/ # Base classes and interfaces
│ │ └── interfaces/ # Common interfaces
│ ├── modules/ # Feature modules
│ │ ├── authentication/ # Auth adapters
│ │ ├── authorization/ # Permissions (can pipe)
│ │ ├── graphql/ # Apollo GraphQL setup
│ │ ├── iam/ # IAM adapters
│ │ ├── lang/ # Language services
│ │ ├── ms-entra-id/ # Azure AD integration
│ │ ├── routing/ # Route services
│ │ ├── session/ # Session management
│ │ └── action/ # Action service
│ ├── pipes/ # Common pipes
│ │ ├── date-format.pipe.ts # Date formatting
│ │ ├── get.pipe.ts # Object property getter
│ │ ├── safe.pipe.ts # Sanitizer pipe
│ │ └── truncate-words.pipe.ts # Text truncation
│ ├── providers/ # Angular providers
│ ├── services/ # Core services
│ │ ├── action.service.ts # Action dispatcher
│ │ ├── download.service.ts # File download
│ │ └── initializerService.service.ts # App initializer
│ └── styles/ # Aurora styles
│ ├── layout.scss # Grid layout system
│ ├── themes.scss # Theme configuration
│ └── overrides/ # Style overrides
│
├── app/
│ ├── core/ # Application Core
│ │ ├── auth/ # Authentication
│ │ │ └── guards/ # Route guards
│ │ ├── icons/ # Icon registration
│ │ ├── navigation/ # Navigation data
│ │ ├── transloco/ # i18n configuration
│ │ └── user/ # User service
│ │
│ ├── layout/ # Layout Components
│ │ ├── common/ # Common layout parts
│ │ │ ├── languages/ # Language selector
│ │ │ ├── messages/ # Messages dropdown
│ │ │ ├── notifications/ # Notifications
│ │ │ ├── quick-chat/ # Quick chat
│ │ │ ├── search/ # Search bar
│ │ │ ├── settings/ # Theme settings
│ │ │ ├── shortcuts/ # Shortcuts menu
│ │ │ └── user/ # User menu
│ │ └── layouts/ # Layout variants
│ │ ├── empty/ # Empty layout (login)
│ │ ├── horizontal/ # Horizontal navigation
│ │ │ ├── centered/ # Centered content
│ │ │ ├── enterprise/ # Enterprise layout
│ │ │ ├── material/ # Material style
│ │ │ └── modern/ # Modern style
│ │ └── vertical/ # Vertical navigation
│ │ ├── classic/ # Classic sidebar
│ │ ├── classy/ # Classy style
│ │ ├── compact/ # Compact sidebar
│ │ ├── dense/ # Dense sidebar
│ │ ├── futuristic/ # Futuristic style
│ │ └── thin/ # Thin sidebar
│ │
│ ├── mock-api/ # Mock API Data (development)
│ │ ├── apps/ # App mock data
│ │ ├── common/ # Common mock data
│ │ ├── dashboards/ # Dashboard mock data
│ │ └── ui/ # UI mock data
│ │
│ └── modules/ # Feature Modules
│ ├── admin/ # Admin section
│ │ ├── apps/ # Business Domain Modules
│ │ │ ├── [bounded-context]/ # Bounded context folder
│ │ │ │ ├── [bounded-context].component.ts # Container component
│ │ │ │ ├── [bounded-context].routes.ts # Module routes
│ │ │ │ ├── [bounded-context].types.ts # TypeScript types
│ │ │ │ ├── shared/ # Shared module resources
│ │ │ │ └── [module]/ # Entity module
│ │ │ │ ├── [module]-detail.component.ts
│ │ │ │ ├── [module]-detail.component.html
│ │ │ │ ├── [module]-list.component.ts
│ │ │ │ ├── [module]-list.component.html
│ │ │ │ ├── [module].columns-config.ts
│ │ │ │ ├── [module].graphql.ts
│ │ │ │ ├── [module].resolvers.ts
│ │ │ │ ├── [module].service.ts
│ │ │ │ ├── index.ts
│ │ │ │ └── public-api.ts
│ │ │ │
│ │ │ ├── auditing/ # Audit logs
│ │ │ ├── common/ # Common entities (country, lang)
│ │ │ ├── iam/ # Identity & Access Management
│ │ │ ├── message/ # Messaging system
│ │ │ ├── o-auth/ # OAuth management
│ │ │ ├── queue-manager/ # Job queues
│ │ │ ├── search-engine/ # Search configuration
│ │ │ ├── settings/ # User settings
│ │ │ ├── support/ # Support/Issues
│ │ │ └── tools/ # Admin tools
│ │ │
│ │ ├── example/ # Example components
│ │ ├── kitchen-sink/ # Component showcase
│ │ └── pages/ # Static pages
│ │
│ ├── auth/ # Authentication pages
│ │ ├── confirmation-required/ # Email confirmation
│ │ ├── forgot-password/ # Password reset request
│ │ ├── reset-password/ # Password reset
│ │ ├── sign-in/ # Login
│ │ ├── sign-out/ # Logout
│ │ ├── sign-up/ # Registration
│ │ └── unlock-session/ # Session unlock
│ │
│ └── landing/ # Public landing pages
│ └── home/ # Home page
│
├── assets/ # Static assets
│ ├── fonts/ # Custom fonts
│ ├── i18n/ # Translation files
│ │ ├── en.json # English translations
│ │ └── es.json # Spanish translations
│ ├── icons/ # SVG icons
│ └── images/ # Images
│
├── environments/ # Environment configurations
│ ├── environment.ts # Default environment
│ ├── environment.development.ts # Development
│ ├── environment.localhost.ts # Local development
│ ├── environment.production.ts # Production
│ └── environment.quality.ts # QA environment
│
├── index.html # Main HTML file
├── main.ts # Application bootstrap
└── styles.scss # Global styles
Module File Naming Convention
Components
[module]-detail.component.ts # Detail view (create/edit)
[module]-detail.component.html # Detail template
[module]-list.component.ts # List view with grid
[module]-list.component.html # List template
[module]-dialog.component.ts # Optional dialog component
Services and Configuration
[module].service.ts # CRUD service with Apollo GraphQL
[module].graphql.ts # GraphQL queries and mutations
[module].resolvers.ts # Route resolvers for data loading
[module].columns-config.ts # Grid column configuration
Exports
index.ts # Barrel exports for module
public-api.ts # Public API exports
Decision Tree: Where to Put Code?
Need to add a new field/entity?
→ Modify cliter/[bounded-context]/[module].aurora.yaml
→ Run Aurora CLI to regenerate
Need custom business logic in component?
→ Add to handleAction() method in component
→ Or create a shared service in [bounded-context]/shared/
Need a reusable UI component?
→ Add to src/@aurora/components/
Need a custom pipe or directive?
→ src/@aurora/pipes/ or src/@aurora/directives/
Need to modify grid columns?
→ Edit [module].columns-config.ts
Need custom GraphQL query?
→ Add to [module].graphql.ts
Need new route?
→ Modify [bounded-context].routes.ts
Need to add translations?
→ Edit src/assets/i18n/[lang].json
Need to modify layout/theme?
→ Check src/app/layout/ and src/@fuse/styles/
Key Base Components
| Component | Purpose | Extend When |
|---|---|---|
ViewDetailComponent |
Detail/edit forms | Creating entity detail views |
ViewBaseComponent |
List views | Creating entity list views |
GridComponent |
Data grid | Displaying tabular data |
ViewDetailComponent Pattern
export class CountryDetailComponent extends ViewDetailComponent
{
breadcrumb: Crumb[] = [...];
managedObject: Country;
constructor(private readonly countryService: CountryService) { super(); }
init(): void { /* After ngOnInit */ }
createForm(): void { this.fg = this.fb.group({...}); }
async handleAction(action: Action): Promise<void> { /* Handle CRUD */ }
}
ViewBaseComponent Pattern
export class CountryListComponent extends ViewBaseComponent
{
gridId: string = 'common::country.list.mainGridList';
gridData$: Observable<GridData<Country>>;
originColumnsConfig: ColumnConfig[] = [...];
async handleAction(action: Action): Promise<void> { /* Handle actions */ }
}
Quick Navigation Commands
# Find all files for a module
fd "country" src/app/modules/admin/apps/
# Find all components
fd ".component.ts$" src/app/modules/admin/apps/
# Find all services
fd ".service.ts$" src/
# Find YAML definitions
ls cliter/*/
# Find GraphQL files
fd ".graphql.ts$" src/
# Find column configurations
fd ".columns-config.ts$" src/
Path Aliases
| Alias | Path | Usage |
|---|---|---|
@apps/* |
src/app/modules/admin/apps/* |
Business modules |
@core/* |
src/app/core/* |
Core functionality |
@aurora |
src/@aurora/ |
Aurora framework |
@fuse |
src/@fuse/ |
Fuse template |
import { GridComponent, ActionService } from '@aurora';
import { CountryService } from '@apps/common/country';
import { AuthService } from '@core/auth';
Resources
- YAML Definitions: See
cliter/[bounded-context]/[module].aurora.yaml - Aurora Components: See
src/@aurora/components/ - Fuse Template: See
src/@fuse/ - Layouts: See
src/app/layout/layouts/ - Translations: See
src/assets/i18n/
Weekly Installs
3
Repository
avvale/aurora-frontFirst Seen
Feb 28, 2026
Security Audits
Installed on
cline3
github-copilot3
codex3
kimi-cli3
gemini-cli3
cursor3