TaskRoster is a feature-focused Angular application for Task management built to practice and demonstrate modern Angular (V21+) concepts.
The application allows selecting a user and managing their tasks, including viewing, adding, and completing tasks, with a predictable data flow and a clean, component-driven UI.
The UI consists of:
- A user list on the left
- A task panel showing tasks for the selected user
- An “Add Task” action that opens a modal form
- The ability to complete tasks
- using Angular CLI
- Angular project structure and feature-based organization
- Standalone components
- Angular modules
- Component creation, registration and composition
- Content projection using
<ng-content>
- String interpolation
- Property binding
- Event binding
- Two-way binding using
ngModel
- Parent → child communication via
@Input - Child → parent communication via
@OutputandEventEmitter - Clear separation between:
- Presentational components (UI only)
- Orchestrating components (workflow ownership)
- Modern control flow directives:
@for@if@else
- Legacy structural directives (*ngFor, *ngIf) for reference
- Conditional class binding
- Angular change detection fundamentals (zone based, signals based)
- Template-driven forms
FormsModule ngModelandngSubmit
- Built-in pipes (e.g.
DatePipe)
- Dependency Injection using
@Injectable providedIn: 'root'and service lifetime- Service resolution via constructor or inject() function
- Data is currently static and in-memory
- The emphasis is on correct patterns, not feature completeness, although the structure is intentionally designed to evolve
- Project 2 main branches are:
- master (using standalone components)
- master-with-modules (using angular modules)
npm install
and if using master-with-modules branch, also install the following dependency as it's required for angular modules bootsrapping:
npm install @angular/platform-browser-dynamic@21.0.8
ng serve
http://localhost:4200
