"Big Picture" Software Development with the Time to Work App
| Time to read: 20 minutes
Want to see just how easy it is to develop an app in Every8.Cloud - and how our platform is built around the business process itself?
Our Time to Work app is a great example. We created it to help employers make sure that their employees are on-site for the hours they’re getting paid.
Employees must clock in and out at the start of each workday. The app also checks their GPS location at these two points in time (but not throughout the day) - this way, the company knows that they are clocking in at the right place.
After all, if a pool company has 50 pools in a city, and an employee (lifeguard) isn’t on-site, it's not just a payment issue – it could also mean that a pool is legally understaffed!
Developing "Time To Work" For Your Company
After going into the Every8.Cloud application builder, how would a developer actually begin the process of creating (and customizing) this app for a company?
While it is always easy to get lost in coding, we believe that it is best to start with a “big picture” view of what our software is trying to achieve – and which problems it is supposed to solve.
So we can start by asking an HR (or other) manager about what they have in mind when they say “timesheet.” What exactly do they need to track or document? Get them to be as specific as possible.
You can then turn this information into a list of the data structure (list of attributes) that you will enter, e.g.:
If the company wants to take advantage of the GPS feature mentioned above, we could also add:
All of these things can be added in Time to Work (app builder view) -> Lists -> create a list called “Timesheets” -> Attributes tab -> add each of the above bullet points as an attribute.
Note that the Latitude and Longitude attributes will automatically be coordinated with the employee’s location when they clock in and out on the app (whether on desktop or mobile).
Later on, the employee’s location at both times (clocking in and out) will show up on their timesheet:
Additional Options
So you’ve created a basic list of data points, and you keep picking the HR manager’s brain to get a “big picture” view of what they might need with this app.
You say, “We’ve added ‘User’ to this list – but that means that when somebody clocks in, they have to input their own name. But isn’t it possible for Employee A to come in, and input both himself and his friend, Employee B (who isn’t actually there)?”
The HR manager gasps in horror: “You’re right! How do we stop this from happening?”
No need to fear – Every8.Cloud is here to save the day!
If you go into List -> Attributes -> User, you can set the following:
Type -> Reference
Relation -> System table / users
With a few more lines of code, you can automatically set it so that the “User” data field comes from whatever (login) account is signed in to Every8.Cloud. From the user view of the app, this will look like this:
So when an employee logs in, their only option is to start a timesheet for themselves. They do not get to pick a User (employee name)!
See how easy it was for us to solve a (potential) problem for this company? This is just one of many (by no means limited) examples of how Every8.Cloud allows you to build apps around the specific needs and challenges of your business.
Referential Data Points
The example above (with Users) was an example of referential data points. These are list items that reference to something else (besides individual data itself).
For example, the “Status” bullet we added in our original list (has a given timesheet been approved?) can be an enumeration:
Which will look like this in the User View version of the app:
Of course, only somebody with admin privileges would be able to change the status of a timesheet (and not the employee himself).
But referential data points are just another example of how Every8.Cloud can help you organize a company’s data within our apps.
Optional Triggers
At the start of this article, we brought up the example of a pool company that needs to make sure their lifeguards are actually on-site when they clock in. But imagine there is an additional nuance – each lifeguard starts their shift an hour before the pool opens to the public. The idea is to give the lifeguard an hour to clean the pool and do maintenance work before people start coming to swim.
One day, management decides that they want a supervisor to visit and inspect each pool before it opens to the public.
If each supervisor is in charge of 6 pools, they have limited time to drive around during that one hour (before the pools open). How do they know if the lifeguards have arrived at a given pool?
They could search for this information manually (in Every8.Cloud), but that requires pro-active time and energy.
And if they just drive to each pool (without checking anything first), they might also waste time waiting for a lifeguard who shows up to work 5 minutes late.
In this example (with the pool company), we could set up a trigger in Time to Work that would e-mail a supervisor when lifeguards clock in:
Under the Associated task tab of this Trigger, choose:
Action -> Send an email
And then fill in the Subject, Recipient/s, and Message (content of the email):
After saving and closing, activate this Trigger:
Through his phone, the supervisor can now see in real-time when lifeguards clock in.
If he needs to visit 6 pools (for inspection) in an hour, he can also make decisions about which pools to drive to first – based on which lifeguards are already on-site.
Summary
Everything about working with Every8.Cloud is simple and convenient.
We have designed our platform to make development as easy as possible – so that developers have more time to consult with each company, understand their business needs, and create apps uniquely suited to that business.
Every8.Cloud is both the space in which this dialogue (between developers and businesses) can happen – and the tool.