**PROJECT NAME:** TodoSovellus **GOAL:** Create a simple task management application for individuals to keep track of their daily tasks and manage them efficiently. **CORE FEATURES:** 1. **Add Task**: Users can add new tasks with a title, description, due date, and status (e.g., pending, completed). 2. **View Tasks**: Users can view all tasks or filter by status (pending, completed). 3. **Edit Task**: Users can update the details of an existing task. 4. **Delete Task**: Users can remove tasks that are no longer needed. 5. **Mark as Completed**: Users can mark a task as completed. 6. **Filter Tasks**: Users can filter tasks based on their status (pending, completed). 7. **Task Details**: Users can view detailed information about each task. **DATA MODEL:** 1. **Tasks** - id (integer, primary key) - title (string) - description (text) - due_date (date) - status (enum: pending, completed) **API ENDPOINTS:** 1. **GET /tasks**: Retrieve all tasks. 2. **POST /tasks**: Create a new task. 3. **GET /tasks/{id}**: Retrieve details of a specific task by ID. 4. **PUT /tasks/{id}**: Update an existing task. 5. **DELETE /tasks/{id}**: Delete a task. 6. **GET /tasks/status/{status}**: Filter tasks by status (pending, completed). **CONSTRAINTS:** - Must use SQLite as the database. - No authentication is required for accessing endpoints.