This project is a demo Angular application that showcases a variety of modern Angular features and best practices. It implements a simple Task Tracker, allowing users to view, filter, and interact with a list of tasks. The app is designed for developers to explore Angular's capabilities in a real-world context.
The Task Tracker demonstrates:
- Modern Angular standalone components and feature modules
- Angular Signals for state management
- Computed properties and effects
- Dependency injection and service usage
- Angular Material UI components
- Routing with lazy loading
- Server-side rendering (SSR) support
- HTTP client usage and local asset data
src/app/app.component.ts/.html: Root component and router outletapp.routes.ts: Route definitions with lazy-loaded componentsdashboard/: Dashboard page showing task statstasks/: Task list and card componentsmodels/: Task data modelservices/: API service for loading tasksstate/: Signal-based store for task stateapp.config.ts/app.config.server.ts: Application and SSR configuration
- Standalone Components: All major components are defined as standalone, simplifying module management.
- Signals API: Uses Angular's signals for reactive state, including
signal,computed, andeffect. - Dependency Injection: Services and stores are injected using Angular's DI system.
- Angular Material: UI built with Material components (cards, buttons, icons).
- Routing & Lazy Loading: Routes are defined for dashboard and task list, with lazy loading for performance.
- Server-Side Rendering (SSR): Configured for SSR using Angular's platform-server and hydration APIs.
- HTTP Client: Loads task data from a local JSON asset via Angular's HttpClient.
- Node.js (v18+ recommended)
- Angular CLI (
npm install -g @angular/cli)
npm installnpm start
# or
ng serveVisit http://localhost:4200 in your browser.
ng buildBuild output will be in the dist/ directory.
npm run build
npm run serve:ssr:clientTask data is loaded from src/assets/tasks.json for demo purposes. You can modify this file to change the sample tasks.