Please find below the user interface that you need to follow for the assignment-
https://drive.google.com/drive/folders/1QrtifJAE3o1jSph-Rrv659iwtxAQBLst
Milestone 1 (Basic - Must Complete)
1. Task List Display:
* Create a simple list to display tasks with title and description.
* Implement basic add and delete functionality for tasks.
2. Task Form:
* Create a form to add new tasks with title and description fields.
* Implement basic form validation (e.g., title and description cannot be empty).
3. State Management:
* Use React's useState hook to manage the list of tasks.
4. Styling:
* Apply basic CSS to make the application presentable.
* Addition of Accordion is not compulsory. User can directly click on the task and go the the
Edit popup.
Milestone 2 (Intermediate)
1. Enhanced Task Properties:
* Add due date and priority (Low, Medium, High) to tasks.
* Implement edit functionality for existing tasks.
2. Advanced Validation:
* Ensure task titles are unique.
* Validate that due dates are today or in the future.
3. Task Interactions:
* Add a "Completed/ Done task" feature with visual distinction for completed tasks.
* Implement a basic search functionality to filter tasks by title.
4. Improved State Management:
* Use useReducer or Context API for more complex state management.
5. Responsive Design:
* Ensure the application works well on both desktop and mobile devices.
Good to Have (Advanced)
1. Performance Optimization:
* Implement virtualization for the task list to handle large numbers of tasks.
* Use React.memo() and useCallback() to optimize re-renders.
2. Advanced Features:
* Implement a "snooze" feature to postpone due dates.
* Add a "priority sort" function to arrange tasks by priority and due date.
* Addition of Accordion as shown in the UI
3. UI/UX Enhancements:
* Create a dark mode toggle with smooth transition.
* Implement drag-and-drop functionality to reorder tasks.
4. Data Persistence:
* Use localStorage to save tasks between page reloads.
5. Error Handling:
* Implement error boundaries and display user-friendly error messages.
6. Analytics:
* Create a simple dashboard showing task completion rates and overdue tasks.
Evaluation Criteria:
* Milestone 1: Candidates must complete this to qualify.
* Milestone 2: Completion indicates intermediate skill level.
* Good to Have: Any of these features demonstrate advanced skills.
Deliverables:
1. GitHub repository with commit history showing incremental development.
2. README.md file with:
* Setup and run instructions
* Brief explanation of completed features and any known issues
* List of additional features implemented (if any)