A modern Angular 20 dashboard application showcasing zoneless change detection, signals, and best practices. Features include interactive widgets, Pokemon data management, and comprehensive error handling.
- Zoneless Architecture: Built with Angular 20's experimental zoneless change detection
- Signal-Based State Management: Reactive state management using Angular signals
- Interactive Dashboard: Multiple widgets including maps, charts, and data tables
- Pokemon Data Browser: Paginated table with detail views using GraphQL
- Material Design: Modern UI with Angular Material components
- Responsive Design: Mobile-first responsive layout
- Error Handling: Global error interceptor with user-friendly notifications
- Loading States: Global progress indicators and loading spinners
- Type Safety: Full TypeScript implementation with strict mode
Node.js Version Requirement: ^20.19.0 || ^22.12.0 || ^24.0.0
Verify your Node.js version:
node --version
If you need to install or update Node.js, visit nodejs.org or use a version manager like nvm.
-
Clone the repository
git clone https://github.com/lukazc/angular-zoneless-demo.git cd angular-zoneless-demo
-
Install dependencies
npm install
-
Start the development server
npm start
-
Open your browser Navigate to
http://localhost:4200/
Run the test suite with coverage:
npm test
# Run tests with coverage
ng test --code-coverage
# Run tests in CI mode (single run)
ng test --watch=false --browsers=ChromeHeadless
- All components have focused unit tests
- Services and stores are fully tested
- Interceptors have comprehensive test coverage
- Current test coverage: 90%+
npm run build
npm run build:prod
Build artifacts will be stored in the dist/
directory.
# Generate TypeDoc documentation
npm run docs
# Serve documentation locally
npm run docs:serve
Documentation will be generated in the public/docs
directory and can be:
- Served locally:
npm run docs:serve
- Deployed with the app: Documentation is automatically included in production builds
- Accessed via route: Available at
/docs
in the running application
src/
├── app/
│ ├── core/ # Core services, interceptors, stores
│ │ ├── interceptors/ # HTTP interceptors
│ │ ├── models/ # TypeScript interfaces
│ │ ├── services/ # Singleton services
│ │ └── stores/ # Signal-based stores
│ ├── features/ # Feature modules
│ │ ├── dashboard/ # Dashboard widgets
│ │ └── pokemon/ # Pokemon data features
│ └── shared/ # Shared components
├── styles.scss # Global styles
└── index.html
- Angular 20 - Framework with experimental zoneless support
- TypeScript - Type-safe development
- Angular Material - UI component library
- Chart.js - Data visualization
- Leaflet - Interactive maps
- RxJS - Reactive programming
- Jasmine/Karma - Testing framework
This project is licensed under the MIT License - see the LICENSE file for details.
If you have any questions or run into issues, please open an issue.