This project developed just for personal fun and exersizing with some of the coolest technologies arround the Angular framework. Apart from the "fun" part there was a series of questions spinning arround in my head and finally push me to bring this small project to life.
- Human memory is not that robust, how many times did you forget one of your critical daily todos?
- How many times did you find yourself following several steps & clicks just to log one simple todo through complicated platforms?
- And how many times did you forget that one of your todos is logged in your mobile app which was not synchronized with your desktop app?
This project is not yet completed but its in a good shape to let you understand the main concept:
This project was generated with Angular CLI version 8.3.5.
- Angular
- Rxjs
- NgRx
- Scss
- Docker
After staging the desired files you can safely run git cz
in order to add a proper commit message that has description/title/scope etc. Check commitizen for further details.
Run npm run release -- --release-as minor|major|patch
to release a new version and also update changelog file.
After releasing new version you can run git push --follow-tags origin master
to push your latest tag
Since this project was created angular-cli its always enough to run ng serve
and then open http:https://localhost:4200
. Apart from that you need to run a backend which will be able to persist your todo list and also make it accessible through the web. Right now i am using a dummy backend through json-server app. In order to install it run npm i --save -g json-server
(if you want you can add it in your local dependencies instead). So apart from the ng serve
open a second terminal and run json-server ./src/app/mock-data.json
in the root folder. Now the app should be alive
Backend uses the following stack
- NodeJs & Typescript lang,
- Typeorm (Future enhancement),
- Postgres,
- Express,
- Docker
Even if this project is presentable there are a couple of things to be added in the future:
Right now if you expose this app to WWW then you will notice that everyone will be able to modify your todos. Thus, i'll need to provide a secure authentication to keep your todos safe. In a simple form this could be even basic authentication but thats not my intention.
Well you might also need to share your todos with the rest of your family, friends e.t.c. It would be great to know that your wife has already finished on of your shared todos right? So what i am thinking is to introduce two kind of todos:
- Private: your own ones,
- Shared: sharable todos with other users
When this project will reach version 1.0.0 i'll turn this project to public.