You are currently viewing Hours Tracker Part 1-Project

Hours Tracker Part 1-Project

5/19/2023


The Why

I had a client who needed a simple time tracking system that they could use to visualize what their staff was working on and provide their customers with a chargeback. Since each of the staff working for the client were not direct employees, they were unable to generate this type of report from what they already had. Additionally, team leads needed to "approve" the time being "spent," and leadership needed to authorize which projects each staff member was allowed to work on.

The client recognized that doing this could become overly burdensome very quickly for the staff, so they wanted something lightweight and automated. With this in mind, I proposed a set of apps and automations to be used.

  1. A Model Driven App
    1. It would only be used by leadership and the report owners.
    2. While it could be used by the staff to log time, it does not lend itself to being light weight.
    3. While it could be used by the staff to log time, it does not lend itself to being light weight.
  2. A Canvas App
    1. This would be the main point of entry for the staff. This is where they could come on a daily basis and log their time.
    2. All the app needs is a date, hours, project selection, and a submit button.
    3. The Hours submitted would be limited to 14 in days and 40 in a week.
  3. Automations
    1. To prevent the users from feeling like they are being over burdened with tasks we want a simple adaptive card to be sent in teams if no entry is made on the previous day.
    2. A similar flow that would go to the lead and enter time for the people under them if they did not enter their own time.
    3. An approval flow that is sent at the end of week to the lead that would have the lead approve the time at the end of the week.

The How

This guide will start with the ERD and DFD, then building of the MDA, building of the canvas apps, the automations, then finally the reports.

ERD

ERD Diagram

The above diagram is the initial configuration it will evolve as we go through the development process. But this is the core of the work.

Below is a ER diagram using mermaid.js. I wanted to include this format as well to help anyone who wants to visualize it themselves.

erDiagram Hours}|--|| User: user Hours{ guid hoursid PK guid user FK guid project FK int hours boolean leadverify time dateworked } User{ guid user PK guid teamname FK string role } Hours}|--|| Project : project Project{ guid projectname PK } User||--|{Team:user Team{ guid teamname PK } User||--||Role:contains

DFD

DFD Diagram

As with the ERD this is the first draft of the DFD. As the process evolves so will this diagram

Next Step

The next guide will start going through the building of the tables and the extension of the build in Dataverse user table.

Leave a Reply