Skip to main content

PowerApps Productivity Timer

I like to track activities. I have several workout apps and a Fitbit. Measuring things allows us to monitor our performance and journal our success.

But not all activities have ready-made, easy to use apps - a problem measuring things that don’t fit into popular categories.

Early in my IT career I was an IT procurement specialist for a large enterprise. Procurement specialists process 20-60 requisitions a day. It’s a lot of paperwork (even with a digital process.) I oversaw making it more digital and less paper based. I succeeded in reducing a typical requisition from 8 minutes to 2 minutes. The process allowed procurement to reduce person hours by almost a whole position. I’ve always said that computers allow us to do more and there was always more to do.

Being able to measure that efficiency improvement is the impetus for having an easy-to-use timer.

I have learned many times over the years that productivity is lost or gained in the moments between activities. I waste a lot of time in the transitional moments. How do I easily measure valuable time without wasting time doing the measuring? How do I get past the self-imposed bureaucracy of logging the work without the wasted time of filling out the log?

My process has been to start a stopwatch – either on my phone or on my watch and then stop it after the practice is done. I open the SharePoint list and enter the start time and end time. A calculated column figures out the minutes between the start time and end time. While I’m happy about this journal of my progress, I begrudge the process due to the number of steps. I really want a one-click way to record all this information – the activity, the date, the number of minutes, and a visual progressive stopwatch to see how long I have been practicing. I also like to pause the timer (for coffee and bathroom breaks.) The dilemma is: tracking productivity can diminish actual productivity.

Enter PowerApps. Create a stopwatch that automatically records my data – and make it look like an app that I want to use.

The list

  • Activity Type SharePoint list
  • Activity Date/Time
  • Duration
  • The person doing the activity or recording

The App

  • PowerApps Customized SharePoint form (free to use)
  • Or a Canvas App on a SharePoint List (must give PowerApps license to all users)
  • A stopwatch
  • The type of activity
  • Not a lot of “clicks/taps”
  • Make it look the way you want it look

The Bonus

·       A nice visual in PowerBI to see my progress

Making the App

The SharePoint List

Create the SharePoint List with the custom columns of activity type and duration. I will use the created date for the activity time/date column and use the created by column for the person making the measurement. I always keep the SharePoint Title column and set a default to something generic like “Activity.”



Tip: I usually recommend keeping the SharePoint title column because it will always act as a URL which can be useful for future development. I don’t like to ignore it or make it not required. Always keep the title and don’t over engineer it.



The ready to use PowerApps list:



The Customized SharePoint Form



My app is going to fill all the data into the fields, so I am not going to use the fields PowerApps provides by default. I will create a new screen and call it stopwatch.



My stopwatch needs a timer and a submit button.



This app needs a button to start the timer and a button to stop the timer, reset the timer and submit the activity. I’ll update some of the PowerApps formulas to send the data the list is required to collect.



The Timer Button



The default duration is 60,000 milliseconds which is only 1 minute. We’ll up that to 24 hours or 864,00,000 milliseconds. (Use whatever number you feel necessary.)

The “Submit” Button

This button does all the work. It takes the timer input and converts the milliseconds to minutes, logs the person doing the measurement according to the date and time, resets the timer, and patches it to the SharePoint list.

In the formula bar, select “OnSelect” and use the following formula:

Patch(

    'Activity Timer',

    Defaults('Activity Timer'),

    {

        Title: "Activity",

        Duration: Timer1.Value / 60000

    }

);

UpdateContext({Reset: false});

Reset(Timer1);

UpdateContext({Reset: true})

That’s it. The App is now ready to easily time your activity. Press the timer to start and press the button to upload the result to SharePoint, stop the timer, and reset it.



The data:



Now that it works, make it look better and feel more user friendly. Change the button text, text font size, button size and borders and more. In essence – change it from a SharePoint form into a custom mobile app. Now it’s easy to use on a mobile phone or a separate smaller browser window.



How I use the app now

I like to play piano. I have been teaching myself how to play piano since I was 42. I measure the amount of time I play piano. As an adult with a day job, a family, and other responsibilities I do not have the time in the day to force myself to sit down and play for one to two hours one might force a child to practice as filler on a college resume. I aim for 30 minutes a day. On a good day – once in a blue moon – I might play for an hour. On a rushed day, I might play for 8 minutes. I have been keeping a log of the time I play in a SharePoint list on a private developer tenant ever since I started playing.

Because it’s my app, I don’t have to worry about what others think about the design, so I make it look the way I like. The whole window is the stop/start button. The back arrow takes me to a categorical list of activities I like to record.



 

Comments

Popular posts from this blog

How to Create and Use a SharePoint App Registration

SharePoint App Registrations are incredibly useful for unattended tasks to read or update SharePoint sites. It's similar to a user service account but more secure. They cannot be used as a user sign-in. They are used in custom applications or automated scripted processes. They are made even more secure with a certificate, in which case, they may only run from the machine that owns the certificate. SharePoint Things to Do with App Registrations Read data and write the data to another process Write CSV, text, or XML files Useful for data for to import into report software Writing the data to other APIs such as ERPs, Project software, or work authorization systems Changing the data Check the data based on a schedule. Update the data based on constraints Change permissions of items in a SharePoint list once an item is past due Work with partners and vendors to provide just-in-time, specific access to necessary data Simple Process Create the application either in SharePoint or in App Re

The Fix: npm ERR! code SELF_SIGNED_CERT_IN_CHAIN [SOLVED]

npm ERR! code SELF_SIGNED_CERT_IN_CHAIN npm ERR! errno SELF_SIGNED_CERT_IN_CHAIN npm ERR! request to https://registry.npmjs.org/gulp-cli failed, reason: self signed certificate in certificate chain What does it even mean? How does one fix this? There are so much information, it's hard to parse what I'm supposed to do. The Solution: Disable the Company VPN This is not ideal and you should work in cooperation with your IT security operations to let them know what you are doing and why you need it. It was reading this article:  https://stackoverflow.com/questions/54611707/request-to-https-registry-npmjs-org-co-failed  and the comments that finally clued me into our VPN causing the conflict. I previously did not have any issues but our company hired a new CISO who has been very active in hardening our corporate environment. What didn't work: gulp untrust-dev-cert Removing package-lock.json file Reinstall Node.js What I wasn't going to try (and you shouldn't either): npm