A simple habit/task tracker app
Task List | Task Add/Edit Dialog |
---|---|
- React
- TypeScript
- Tailwind CSS
- DaisyUI
To run the app, install Node.js (>= v18) and run the following commands:
npm install
npm start
The app adopts Provider Pattern for separating states and UI components, leading to a clean architecture. All data sources are defined and managed in the TaskContext
. Then, the entire component tree is wrapped with TaskContextProvider
which provides the necessary data and relevant method for the child components. This way, all UI components in the tree can access the data via useTaskContext()
, a hook to use TaskContext easily, and perform necessary operations while avoiding prop drilling.
The project includes unit tests for complex business logic (such as streak calculation) using Jest.
To run the tests, run the following command:
npm test
- Task should not be displayed when the current day is not the specified day
- Task edit and delete functionality
- Improve task list UI
- Check rendering performance
- Check in both dark and light mode
- Write README
- Add necessary comments