Framework
Happy Habitat uses Angular 19.2.0 as its frontend framework, leveraging the latest features including standalone components and functional routing guards.Key Framework Features
- Standalone Components: Uses modern Angular standalone components architecture without NgModules
- Signal-based Change Detection: Zone.js with event coalescing for optimized performance
- Functional Guards: Implements CanActivateFn for routing protection
- Lazy Loading: Extensive use of lazy-loaded routes for optimal bundle size
Build System
Angular CLI Configuration
The project uses Angular CLI 19.2.15 with the following build configuration:Development Server
http://localhost:4200/ with automatic reload on file changes.
Production Build
- Initial bundle: 900kB warning, 1MB error
- Component styles: 4kB warning, 8kB error
Technology Stack
Core Dependencies
| Package | Version | Purpose |
|---|---|---|
@angular/core | 19.2.0 | Core framework |
@angular/router | 19.2.0 | Routing and navigation |
@angular/forms | 19.2.0 | Form handling (Template & Reactive) |
@angular/common | 19.2.0 | Common pipes, directives |
rxjs | 7.8.0 | Reactive programming |
zone.js | 0.15.0 | Change detection |
UI Framework
Tailwind CSS + daisyUIlemonade(default)dark(prefers-dark)forestwinterautumnlofi
~/workspace/source/happy-habitat-frontend/.postcssrc.json):
Additional Libraries
Charts and Visualization
- lightweight-charts (5.0.8): Trading-style charts
- chart.js (4.5.0): General purpose charting
UI Components
- cally (0.8.0): Calendar control component
Utilities
- uuid (13.0.0): Unique identifier generation
TypeScript Configuration
The project uses TypeScript 5.7.2 with strict mode enabled:Application Bootstrap
The application is bootstrapped insrc/main.ts:
Application Configuration
Location:src/app/app.config.ts
- Routing Strategy: HashLocationStrategy (URLs use
#prefix) - HTTP Interceptors: Logging → Error → Auth (in order)
- Global Error Handler: Custom error handling implementation
- Zone Change Detection: Event coalescing enabled
Development Tools
Testing Framework
- Jasmine (5.6.0): Testing framework
- Karma (6.4.0): Test runner
- Coverage: karma-coverage (2.2.0)
Running Tests
Environment Configuration
The application supports environment-specific configurations:src/environments/environment.ts- Developmentsrc/environments/environment.prod.ts- Production
Build Optimization
Development Mode
- No optimization
- Source maps enabled
- No license extraction
Production Mode
- Full optimization
- Output hashing for cache busting
- License extraction
- Environment file replacement
Error Handling
The application implements comprehensive error handling:- Global Error Handler: Catches uncaught exceptions
- HTTP Error Interceptor: Handles API errors
- Chunk Load Error Recovery: Auto-reloads on dynamic import failures
Browser Support
Target browsers are configured for ES2022, supporting:- Modern evergreen browsers (Chrome, Firefox, Safari, Edge)
- ES2022 features (optional chaining, nullish coalescing, etc.)
Next Steps
- Project Structure - Explore the directory organization
- Routing Configuration - Learn about navigation and guards