- Stor will be JSON file under /data folder
- Sake of simplicity This is single user command Utility. That means concurrent operations are not considered
Following technologies used in this assignment
- NodeJS
- Used repository to store data on the local
- Task service is contract with the ITask interface
- Used
eslint
and.prettierrc
to maintain code readability and maintainability .editorconfig
used for make development editor ready for the code- Used Jest for do the service test
NOTE Minimum feature tested
Clone project repository from the github
git clone git@github.com:Piusha/to-do-cli-app.git
cd to-do-cli-app
npm run test
Create Task
npx ts-node src/index.ts add "title" "Description" "priority"
List Tasks
npx ts-node src/index.ts list
Update Tasks
npx ts-node src/index.ts update <taskID> [--title=""] [--description=""] [--priority=""]
[--title=""] [--description=""] [--priority=""]
Parameters are optional
example
Update remove task
npx ts-node src/index.ts remove <taskID>
Complete task
npx ts-node src/index.ts complete <taskID>
Following is the project structure
├── app
│ ├── bootstrap
│ │ ├── task-service.provider.ts
│ ├── commands
│ │ ├── (*).ts
│ ├── constants
│ │ ├── (*).ts
│ ├── exceptions
│ │ ├── task.exception.ts
│ ├── interfaces
│ │ ├── *.interfaces.ts
│ ├── services
│ │ ├── task.service.ts
│ ├── types
│ │ ├── command-argument.types.ts
│ │ ├── task.types.ts
│ ├── util
│ │ ├── util.ts
│ ├── validator
│ │ ├── task.validator.ts