Around half a year ago, my team and I were doing a project that needed task management. We looked at major task management services, but it was too expensive, and we just needed simple features, like setting deadlines, assigning them to someone, and managing the completion of tasks. So we decided to build one.
What do we need
Before jumping to code, we need to have a clear image of what we will build. To do that, I listed up what this application should be able to do.
- Create, read, update and delete tasks
- Have user authentication
- Can assign tasks to a user
- Can list ongoing tasks that the user has
- Can set a deadline on tasks
- Notify user when a task is assigned
- Remind user when task is over deadline
What should it look like
Again, to have a clear image of our goal, we should have a rough idea of what our application will look like. So making UI design is an excellent start to doing that. We want to keep it simple, easy to use, and dark because everybody loves the dark user interface this day. I jumped to UI Hut for inspiration and started making my very own UI Design with Adobe XD.
What do we use to make it
In my opinion, there is no right or wrong in choosing what tech stack when building something. What I think is important is why do we use it. Here is our's task stack
AWS API Gateway & Lambda & DynamoDB for the backend. We work for a small number of people and do not plan on accessing it frequently. It will be a waste to deploy a whole server just for it. Serverless may be expensive in some use cases, but for low in-frequent access, it is perfect.
React for the frontend. We have our REST API in serverless, and I think it makes sense to use SPA for our application. The reason why do we use React is because I used to use React, and I love to react. After building it, we will deploy it in S3 together with Cloudfront.
React Native for the mobile when tasks are assigned or have a task over deadline, we want to be notified. While I think it is overkill to build a whole mobile application for it, it is an excellent chance to try new technology and have it with it.
I will be building this application in the next two or three months. I am excited to show how I create the application and how I think what and how it should be done.
Thank you for reading this post!
Did you find this article valuable?
Support Alvin Endratno by becoming a sponsor. Any amount is appreciated!