A task management application demonstrating Angular 18+ features, RxJS patterns, and clean architecture.
- View Tasks: Display all tasks with completion status and category badges
- Add Task: Create new tasks with title and category (Work, Personal, Shopping, Other)
- Complete Task: Toggle task completion with visual feedback
- Delete Task: Remove tasks from the list
- Filter Tasks: Filter by All, Active, or Completed
- Task Statistics: Real-time count of total, completed, and active tasks
BehaviorSubjectfor reactive state managementcombineLatestfor deriving filtered tasks and statisticsmap,filter,tap,catchErroroperatorstakeUntilDestroyed()for automatic cleanupasyncpipe for automatic subscription management
- Container Component:
TaskListComponent- manages state via service - Presentational Components:
TaskItemComponent,TaskFilterComponent,TaskStatsComponent - UI Components:
AddTaskDialogComponent,LoadingSpinnerComponent,ErrorMessageComponent,EmptyStateComponent
- Service-based reactive state with
BehaviorSubject - Unidirectional data flow: Service → Component → Template
- Node.js 18+
- npm 9+
cd taskflow
npm installng serveNavigate to http://localhost:4200/
ng buildBuild artifacts stored in dist/taskflow/
src/app/
├── core/
│ ├── models/ # TypeScript interfaces (Task, TaskCategory, etc.)
│ └── services/ # TaskService with RxJS streams
├── features/
│ └── tasks/
│ ├── components/ # Presentational components
│ └── containers/ # Smart/container components
└── shared/
└── components/ # Reusable UI components
- Angular 18+ (standalone components)
- TypeScript 5.x
- RxJS 7.x
- Angular CLI 21.x
MIT