Create to do list page component - Vanilla.js #87
Description
Create Todo List page component - Vanilla
🚀 Goal
Create a Todo List page component in Vanilla that allows users to manage their tasks within our Decentralized Web App (DWA) starter, utilizing the Decentralized Web Node (DWN) for data storage and retrieval.
🤔 Background
We need to implement the Todo List page for our Vanilla.js DWA starter, mirroring the functionality of the existing React implementation. This page should include task management features and integrate with the TodoDwnRepository for DWN operations.
This is part of our larger project to create a Vanilla.js DWA starter. See our main issue here for the full context and list of all related tasks.
Important: For reference, please see the DWA React Vite starter app. While the implementation details will differ for Vanilla, this example provides a good overview of the structure and functionalities of a DWA.
🔑 Tasks and Acceptance Criteria
- Create a
TodoListPage.vanilla
component - Implement a
TodoList.vanilla
component with the following features:- Display a list of tasks
- Add new tasks
- Edit existing tasks
- Delete tasks
- Mark tasks as completed/uncompleted
- Create a
TaskItem.vanilla
component for individual task display and actions - Create a
TaskForm.vanilla
component for adding/editing tasks - Implement
TodoDwnRepository
class for DWN operations:-
listTasks()
-
createTask(task)
-
updateTask(task)
-
deleteTask(recordId)
-
findTaskRecord(recordId)
-
listTasksRecords()
-
- Integrate Web5 functionality for DWN operations
- Implement error handling and loading states
- Style the components using plain CSS to match the existing design
- Ensure the layout is responsive and looks good on various screen sizes
🌟 Resources
- Vanilla JS Documentation
- Plain CSS Documentation
- Web5 JS SDK Documentation
- DWA React Vite Starter App (for reference)
Getting Started
- Comment ".take" on this issue to get assigned
- Fork the repository and create a new branch for this task
- Follow the tasks outlined above
- Submit a pull request with your changes
- Respond to any feedback during the review process
Questions?
If you have any questions or need clarification, please comment on this issue or join our Discord community.
Happy coding! 🎉