- id: Unique identifier for each task
- user_id: Identifier of the user who owns the task
- title: Short name/title of the task
- description: Detailed description of the task (optional)
- deadline: Due date and time for the task (optional)
- priority: Task priority level (low, medium, high)
- completed: Boolean flag indicating if task is completed
- subtasks: List of subtasks for this task
- created_at: Timestamp when the task was created
- updated_at: Timestamp when the task was last updated
- id: Unique identifier for each subtask
- task_id: ID of the parent task
- title: Title of the subtask (defaults to description if not provided)
- description: Detailed description of the subtask
- completed: Boolean flag indicating if subtask is completed
- deadline: Due date and time for the subtask (optional)
- order: Integer representing the display order of subtasks
- created_at: Timestamp when the subtask was created
- id: Unique identifier for each user
- username: Username for the user
- created_at: Timestamp when the user was created
-
User Authentication
- Create or login with a username
- System generates or retrieves user ID
-
Task Management
- Create tasks with title, description, deadline, and priority
- View list of all tasks with their completion status
- Update task details (title, description, deadline, priority)
- Mark tasks as complete/incomplete
- Delete tasks
-
Subtask Management
- Create subtasks for a task with title, description, and deadline
- View list of subtasks for each task
- Update subtask details
- Mark subtasks as complete/incomplete
- Delete subtasks
-
Task Views
- List View: Shows all tasks in a list format with subtasks
- Calendar View: Shows tasks organized by date
- Timeline View: Shows tasks organized in a timeline format
POST /api/users: Create a new userGET /api/users/{user_id}: Get user by IDGET /api/users/name/{username}: Get user by username
POST /api/tasks: Create a new taskGET /api/tasks/{task_id}: Get task by IDGET /api/tasks/user/{user_id}: Get all tasks for a userPUT /api/tasks/{task_id}: Update a taskDELETE /api/tasks/{task_id}: Delete a task
POST /api/tasks/{task_id}/subtasks: Create a new subtaskPUT /api/tasks/{task_id}/subtasks/{subtask_id}: Update a subtaskDELETE /api/tasks/{task_id}/subtasks/{subtask_id}: Delete a subtask
-
Navigation
- Tabs for Tasks, Calendar, Timeline, and Statistics views
-
Task Input
- Form for creating new tasks
- Voice input option
-
Task List
- Display of all tasks with completion status
- Task cards with detailed information
- Subtask list within each task card
-
Task Card
- Task details display (title, description, deadline, priority)
- Task completion toggle
- Subtask management (add, toggle completion, edit)
- Task edit and delete options
-
Calendar View
- Monthly, weekly, and daily calendar views
- Tasks displayed according to their deadlines
-
Timeline View
- Tasks organized chronologically
- Visual representation of task deadlines and progress
- Basic data models for tasks, subtasks, and users
- Full CRUD operations for tasks and subtasks
- Multiple view options (list, calendar, timeline)
- User management system
- Frontend components for all major views
-
User Authentication System
- No proper login/logout functionality
- No password protection
- No user session management
-
Data Validation and Error Handling
- Limited validation for user inputs
- Basic error handling could be improved
-
Responsive Design
- Mobile optimization could be improved
-
Offline Support
- No local storage or caching for offline use
-
Task Filters and Search
- No functionality to filter tasks by various criteria
- No search functionality to find specific tasks
-
Drag and Drop Functionality
- No drag-and-drop interface for reordering tasks/subtasks
- No drag-and-drop for moving tasks between different dates
-
Data Export/Import
- No functionality to export or import task data
-
Notifications
- No reminder notifications for upcoming deadlines
- Implement a proper authentication system with secure login
- Add comprehensive data validation and error handling
- Develop responsive design for mobile devices
- Implement task filtering and search functionality
- Add drag-and-drop interfaces for task management
- Create notification system for task deadlines
- Add data export/import functionality
- Implement offline support with local storage