# Project Tasks List

## Task 1: Backend API Development for Core Task Management [BACKEND]
Implement the RESTful API endpoints for creating, retrieving (all and single), updating, and deleting tasks, including database integration with PostgreSQL and SQLAlchemy. This task forms the backend foundation for core task management functionalities.

### 1.1 Define Task Entity and DTO
- [x] Create `Task` entity with fields: `id`, `title`, `description`, `completed`, `dueDate`.
- [x] Create `TaskDTO` for request/response.

### 1.2 Implement Task Repository
- [x] Create `TaskRepository` interface extending `JpaRepository`.

### 1.3 Develop Task Service
- [x] Create `TaskService` with methods for CRUD operations.

### 1.4 Create Task Controller
- [x] Create `TaskController` with REST endpoints for tasks.

### 1.5 Configure Database (if necessary)
- [x] Verify or update `application.properties` for PostgreSQL connection.


## Task 2: Frontend UI Development for Core Task Management [FRONTEND]
Develop the Angular Clarity components for displaying the task list, creating new tasks, viewing task details, and editing existing tasks. This task focuses on building the user interface for core task management.

## Task 3: Backend API Development for Task Status & Filtering [BACKEND]
Extend the backend API to support toggling task completion status and filtering tasks based on their status (pending, completed, all). This task enhances the backend with status management and filtering capabilities.

## Task 4: Frontend UI Development for Task Status & Filtering [FRONTEND]
Implement the Angular Clarity UI elements for toggling task status (e.g., checkboxes) and adding filtering options (e.g., dropdowns or buttons) to the task list view. This task focuses on the frontend implementation of status and filtering.

## Task 5: Integration and End-to-End Testing [FULL-STACK]
Integrate the frontend and backend components, perform comprehensive end-to-end testing to ensure all task management functionalities work seamlessly, and address any integration issues or bugs.

## Task 6: Dockerization and Deployment Preparation [FULL-STACK]
Finalize Docker configurations for both frontend (Nginx) and backend (Flask), ensuring the application can be containerized and is ready for deployment. This includes updating `docker-compose.yml` and related deployment scripts.

## Current Task Status
**Currently Working On:** Task 2 - Frontend UI Development for Core Task Management [FRONTEND]
**Next Task:** Task 3 - Backend API Development for Task Status & Filtering [BACKEND]
**Completed Tasks:** Task 1 - Backend API Development for Core Task Management [BACKEND]

## Task Completion Guidelines
- Use `- [x]` to mark completed subtasks (to be added by Developer)
- Use `- [ ]` for pending subtasks (to be added by Developer)
- Update "Currently Working On" when starting a new subtask (to be managed by Developer)
- Update "Completed Tasks" when finishing a task (to be managed by Developer)
- Always maintain the hierarchical structure (Task → Subtask → Subtask items)
- **IMPORTANT: Do NOT add subtasks here. Only create main tasks. Subtasks will be added by the Developer agent.**