Timesheets App – Google App Maker

In my first month at my job, I made an app using Google App Maker to help the administrative group track hours. It’s not really my main responsibility, but we are using this miserable 700 row + 300 column google sheet; so I wanted to provide a better alternative.

This slideshow requires JavaScript.

It was my first experience with the Google App Maker framework and I have to say I’m very impressed. Without a doubt between what they offer as a “MV not quite C” and what Webflow/Chrome DevTools, there’s going to be some great tools coming up soon for pseudo-coding CRUD apps.

The main functionality of the app is to:

  1. Let the everyday user record their time against pre-defined project codes
  2. Let managers approve timesheets each week
  3. Send reminders

Inside App Maker you have access to both clientside and serverside scripting. The API they offer is also very robust and avoids basically the entire security model aspect of writing code, which is great. All security is handled at the data level.

Major challenges –

  • Learning how it all works was quite difficult in the beginning. I’m not quite sure what made my learning curve so rough early on. It’s all very obvious to me now that I’ve finished it. Kudos to Google for making some good projects for me to spy on and borrow concepts/code from.
  • It was hard to debug some serverside activity. Often times I was doing dumb things like forgetting to use “someField._equals = something” and instead just writing “someField = something” — once I was familiar… it was a breeze.
  • Many to Many relationship management. Inside the app there wasn’t a great way to handle many to many relationships. Once I figured it out (search + an inherited data table) it worked great, but understanding how to easily pass along inheritance in the UI layer was a challenge at first.

Would love to see the CSS/styling aspects get a little better, but in time that will all come, I suspect. For the meanwhile, you can code in your own mobile responsive styling. This wasn’t a big focus for us yet, but perhaps very soon as the MD has already asked for it.

Overall, a great platform with basically free* compute. Really interestingly, the entire thing runs on a google sheets database. This makes the import/data load process really easy for us to debug/troubleshoot/prep (and the db hosting is also free*).

*free as in if you buy G-Suite and pay $10/mo/dev it’s free…

On deck, I’ve been thinking about making another app that lets you anonymously request that someone go home when they are sick (send an email to their direct manager anonymously). After talking with a few friends, they all seem to want something like this. It’s oddly confrontational to ask if someone is sick/”send them home”. App Maker piggybacks on the Google Directory, so getting employees and their direct managers is really easy would make this really light lifting.

4 Comments

  1. Do you think it would be possible to add location based functionality (i.e: integration with Google Maps Timeline) or categories for types of work and different jobsites? I am looking to write something along these lines for a timecard app but not sure if App Maker can handle it.

    Liked by 1 person

    1. Hey Phillippe –

      Could definitely add in different categories of work and jobsites. If you wanted to default a user to certain jobsite based on their location – I would recommend you use data inside the Google Directory as that will be easiest. If that isn’t available, you could certainly run some javascript.

      I have used the Google Maps API in other projects quite successfully for this kind of geofencing. I’m sure it would work inside App Maker.

      A note of caution – App Maker no longer support Google Sheets as your data source (big bummer)!

      Liked by 1 person

  2. Does the time tracker actually track time or is it manually input? I’m looking to restructure or workflow around app maker since we’re already on g suite.

    IE can team members clock in and out of certain projects or tasks to start and stop a clock which records totals etc?

    Like

    1. Hey JB –

      The time tracker is manually input (i.e. a digitial notebook with validation), not an actual time recorder.

      You could likely do something very similar to that in App Maker. I would recommend a small pilot program with Tsheets https://www.tsheets.com/time-tracking-chrome-app or another app before building it out. In my experience, lots of strange user behavior emerges when you have to clock in and out!

      Like

Leave a comment