Development

Sixty Days on Node.js

All of my project work is gated by company privacy things. I think it is about time for me to have some code that is available for anyone to look at and provide constructive feedback on. In addition, I want to deep dive into React and Vue.js since they rival or surpass Angular in usage.

The Challenge

I am building an individual task management application. Think a scaled down Asana + JIRA, but built for one person. Now let’s get into the features for this project. I am focused on a MVP for myself.

Projects and tasks

Tasks are the basis of the entire app. Any task can have sub tasks. A stretch goal will be preventing subtasks from having subtasks. At that point you need a project or the parent of the parent is redundent.

Tasks can be of type “developemnt”, “management” or “misc”. While meetings are a large part of initial ramp up for a project, it can be categorized as management. Development tasks will have additional fields like JIRA ticket number and LoE (level of effort), but will all live under the same tasks table. Management tasks will have a check box to signify a meeting. This will play a role in reporting.

There are no start dates for tasks at this point, maybe for phase two. There will be completion dates for all tasks.

All tasks must be assigned a project. Each project will have a target end date and actual end date. Additional fields will be present for stakholder information, KPIs, and general description. These will just display on the project landing page.

Time tracking

The time tracking is very rudimentary for MVP. I just need an accurate count based on when I click start time and when I click end time. It will display in hours rounded up to the nearest 0.25 and hold the date for each time entry. That’s it. Simple goals.

Reporting

This is very specific to my situation. Every day I need to submit information about what I worked on yesterday and what I plan to work on today along with blockers. I want to auto generate the work from the prior day in an easy copy pastable format.

At the end of each month I also need to split out time worked for entry into a payrole system. I want to generate a report that gives the project and hours worked for each day of the month.

Technology stack

To challenge myself I will create the application with the following technologies:

  • Node.js
  • Express
  • MongoDB
  • React
  • Redux (maybe?)

I don’t believe state management is very complicated for the MVP but I will add a formal system like redux if it seems necessary. I have never used react before so this will be interesting. There is also a chance that I will use a framework like Next.js to account for the eventual complexity of the application.

Time Frame

As the title suggests, I will give myself 60 days to build this out as much as I can. Half way through the sixty days I will do a check in on progress.

Recent Articles

Career

2022 Career Goals

I feel it's as good a time as any to go over my current goals and aspirations for 2022.

Development

Task Manager Update

My ambition must be reigned in.

Career

Project Management is THE Skill to Have

There are few skills that translate across all disciplines like Project Management.

Project

Jekyll migration complete!

The site has changed, have you noticed?

Motion Design

A brief look at linear interpolation

Let's lightly explore one of the first concepts in digital animation.