Developing a simple daily planner that I would personally use
- Sign up users
- Log in using username and password
- Create, edit and delete tasks
- View tasks on a timeline
- Change the time period displayed on the timeline
- View tasks in a table form
- Filter and sort displayed tasks (new in v0.2)
- Export tasks to encrypted zip archive (new in v0.2)
- Import tasks from zip archive (new in v0.2)
- Use app in offline mode (new in v0.2)
- Delete users (new in v0.2)
Version 0.2 also introduces many improvements and bug fixes to existing features.
What is planned in future releases?
- Major UI redesign
- Code refactoring
- More unit tests, e2e tests
- Use of Angular Routing
- Upgrade to Angular 16+
All current features will be improved in the near future.
- Node.js - recommended v18.13.0
- npm (recommended v8.19.3) or another package manager
- Nest.js CLI - recommended v9.2.0
- Docker
Optional & recommended:
- Angular CLI
/yet-another-todo-app-backend$ npm install
/yet-another-todo-app-frontend$ npm install
Create a docker container and then run it:
/yet-another-todo-app-backend$ docker compose up yata-dev-db -d
Run Prisma migration:
/yet-another-todo-app-backend$ npx prisma migrate dev
(Read more about it in the Prisma documentation)
You need a user account to use the app. To sign up, send a POST request to the /signup endpoint. You can use cURL or any other software of your choice:
curl --location 'http://localhost:9339/signup' \
--header 'Content-Type: application/json' \
--data '{
"username": "test",
"password": "Qwerty123/",
"name": "Test user"
}'
Make sure database is running in docker container and then start backend:
/yet-another-todo-app-backend$ npm run start:dev
Then run Angular UI
/yet-another-todo-app-frontend$ npm run start
If you have done all the previous steps without errors, you should be able to access the application interface from the browser on the http://localhost:4200/
Voila!
# Angular
# unit tests
/yet-another-todo-app-frontend$ npm run test
# Nest.JS
# unit tests
/yet-another-todo-app-backend$ npm run test
# e2e tests
/yet-another-todo-app-backend$ npm run test:e2e
# test coverage
/yet-another-todo-app-backend$ npm run test:cov
I needed an easy way to write down tasks and things to do while working, so I started developing this hobby project. It is also a way to practice programming skills in my free time.
Project is MIT licensed.