Welcome

Choose an app to get started
Your apps
Loading company summary…

Welcome back

Loading…
● Ready to check in
--:--
My Workspace at a Glance
21
Days Present (Month)
1
Late Arrivals (Month)
168h
Hours This Month
12
Leave Days Remaining
My Analytics
Leave Balance — Day Summary 2026
Annual Leave
/ days left
Sick Leave
/ days left
Recent Attendance
Date Check-in Check-out Status
My Leave Requests
12
Annual Leave Left
30
Sick Days Left
Recent Requests
Company Announcements Latest updates
Celebrations This Month
Upcoming Holidays
My Team
My Action Items
Global Offices
Learning & Development
My Performance
Opening Procurement…
Overview & stats
15 employees
PhotoIDEmployeeGenderDOBPositionJob LevelDepartmentTypeOnboard DateDirect ManagerPhoneID / PassportEducationFamilyEmergency ContactAddressStatusActions

Welcome back

Loading…
Present Today
0
On Time
0
Late Arrivals
0
On Leave
0
HR at a Glance
Daily Attendance
On time · Late · Absent
Today's Activity
0 check-ins
Pending Approvals
Department Summary
Present today
--:--
Loading…
Not checked in
Today's Hours
0h 0m
Check In / Out
Select your location above — we'll check your GPS and record it with your punch. It never blocks your check-in.
Naming the job is what makes labour cost per project a real figure instead of an estimate. It never affects your check-in — leave it blank and the day is simply not attributed.
Today's Record
Check In
Check Out
Total
Zone
Recent Check-In History
Last 8 days
EmployeeDateCheck-InCheck-OutHoursGPS ZoneStatusActions
No attendance records yet.
No records
Approved Geofence Zones
LocationCoordinatesRadiusDepartmentActive
HQ — District 10, HCMC
200 3/2 Street · Primary office
10.7769°N
106.6985°E
200mAll Depts
Factory — Long An Province
Manufacturing facility · 15,000m²
10.5427°N
106.4139°E
350mEngineering, Field
WFH — Registered Addresses
Per-employee home coordinates
Various 100mApproved only
Schedule NameDepartmentCheck-In WindowCheck-Out FromWork DaysGrace PeriodUnpaid BreakOvertime RateActive
Standard 08:00 – 17:00
All07:30 – 08:3017:00Mon – Fri30 min1.5×
Morning Shift 06:00 – 14:00
Factory05:45 – 06:1514:00Mon – Sat15 min1.5×
Evening Shift 14:00 – 22:00
Factory13:45 – 14:1522:00Mon – Sat15 min1.5×
Flexible (Field Services)
Field Services07:00 – 09:008h after inMon – Fri30 min1.5×
WFH Schedule
Approved only08:00 – 09:0017:00Mon – Fri30 min
How it works: The active schedule for each employee's department defines the valid check-in window, grace period and overtime rate used when their attendance is recorded.
4
Pending Approvals
4
Late Today
2
GPS Anomalies
4
On Leave
Approvals have moved to the Approval Inbox
Leave, travel, claims, requisitions and PADR reviews are now all approved in one place.
EmployeeDepartmentAnnual (Used/Total)Sick (Used/Total)Comp-offStatusActions
Avg On-Time Rate
All records
Total Hours Worked
0h
All records
Leave Days Taken
0d
All records
GPS Anomalies
0
All records
Attendance Rate — Daily Trend
On-time % vs Late %
Leave Type Distribution
Late Arrivals by Department
Top Insights
No insights yet — they appear once attendance data is recorded.
Azure AD Application
Not Configured
Register an app in Azure AD to enable Microsoft 365 single sign-on and SharePoint access.
Found in Azure Portal → Azure Active Directory → Overview
Found in Azure Portal → App Registrations → your app → Overview
SharePoint Site
Not Configured
Full URL will be: [Tenant URL] + [Site URL]
Required SharePoint Lists:
Attendance_Records Leave_Requests Leave_Balances Approved_Locations Employees SP_Config
Google Maps API
● Active (Browser GPS)
Used for reverse geocoding (address lookup from GPS coordinates). The browser's native Geolocation API is used for GPS — no Maps API key required for that.
Enable: Geocoding API + Maps JavaScript API. Restrict to your domain.
Automated Notifications
Built in
Notifications and approval routing are built into the portal — leave, claim and payment requests notify the chosen approver automatically by web push and Microsoft 365 email, and reminders are handled server-side. No external Power Automate flows are required.
SP_CONFIG Status: Placeholders not filled in — Demo mode active
Fill in the 4 values in SP_CONFIG at the top of the <script> section to go live with SharePoint data.
1

Prerequisites — What you need before starting

1

Microsoft 365 Licences Required

Ensure you have: M365 Business Standard (includes SharePoint Online, Power Automate, Power Apps, Teams). Each employee needs at least an M365 Business Basic licence for SharePoint access.

2

Admin Roles Required

You need: SharePoint Admin (to create lists), Azure AD Admin (to register the app), Power Automate Maker (to build flows).

2

Step 1 — Create SharePoint Site & Lists

1

Create the Site

Go to admin.microsoft.com → SharePoint → Sites → Active sites → + Create → Team site

Site name: HumileyHR Site address: humiley.sharepoint.com/sites/HumileyHR Privacy: Private Owners: HR Admin + IT Admin
2

Create 6 Lists (Site Contents → + New → List)

Attendance_Records — CheckInTime, CheckOutTime, GPS coords, Status Leave_Requests — LeaveType, StartDate, EndDate, Status, Approvals Employee_Profiles — EmployeeID, Department, Manager, Schedule Approved_Locations — Latitude, Longitude, RadiusMetres, IsActive Leave_Balances — AnnualUsed, SickUsed, CompOffEarned per employee/year Notification_Log — NotifType, RecipientEmail, Status, FlowRunID
3

Step 2 — Register Azure AD App (for Graph API)

1

Create App Registration

Go to portal.azure.com → Azure Active Directory → App registrations → + New registration

Name: Humiley-Timekeeping-App Account type: Single tenant Redirect URI: SPA → https://humiley.sharepoint.com/sites/HumileyHR
After registering, copy the Application (client) ID and Directory (tenant) ID — these go into SP_CONFIG in the HTML script.
2

Add API Permissions & Grant Consent

Sites.ReadWrite.All Delegated → read/write SharePoint lists User.Read Delegated → get current user profile User.ReadBasic.All Delegated → look up employees

Click "Grant admin consent for Humiley" — all permissions must show a green tick.

4

Step 3 — Fill in SP_CONFIG (4 values)

1

Edit Humiley_Timekeeping_Platform.html

Open the HTML file in VS Code. Find SP_CONFIG near the top of the <script> section and replace these 4 placeholder strings:

const SP_CONFIG = { clientId: 'YOUR_CLIENT_ID', ← Azure AD App → client ID tenantId: 'YOUR_TENANT_ID', ← Azure AD → Directory ID siteId: 'YOUR_SHAREPOINT_SITE_ID', ← Graph Explorer lookup mapsKey: 'YOUR_GOOGLE_MAPS_API_KEY' ← Google Cloud Console };
To find your Site ID: open Graph Explorer (developer.microsoft.com/graph/graph-explorer) → sign in → call GET https://graph.microsoft.com/v1.0/sites/humiley.sharepoint.com:/sites/HumileyHR → copy the "id" value.
5

Step 4 — Host on SharePoint

1

Upload HTML to Site Assets

Go to humiley.sharepoint.com/sites/HumileyHR → Site contents → Site Assets → Upload. Upload Humiley_Timekeeping_Platform.html. Copy the direct URL.

2

Create a SharePoint Page with Embed Web Part

Site home → + New → Page → Embed web part → paste this iFrame:

<iframe src="https://humiley.sharepoint.com/sites/HumileyHR/SiteAssets/Humiley_Timekeeping_Platform.html" width="100%" height="900" frameborder="0" allowfullscreen> </iframe>
6

Step 5 — Set Up Power Automate (8 Flows)

Flow 1 · Late Alert
Daily 09:30 · Query late records → Teams to manager
Flow 2 · Missed Check-In
Daily 10:00 · Find no check-in → Teams absent alert
Flow 3 · Leave Approval
On new leave item · Adaptive Card → Manager → HR
Flow 4 · Balance Reset
Jan 1 · Reset all leave balances to entitlement
Flow 5 · GPS Anomaly
On new attendance · If Out-of-Zone → Teams alert
Flow 6 · Monthly Report
1st of month · Generate Excel → email HR admin
Flow 7 · Checkout Reminder
Daily 17:30 · Find unchecked-out → Teams message
Flow 8 · Low Balance
On balance update · If ≤2 days → warn employee
The full DOCX guide (Humiley_SharePoint_Integration_Guide.docx) contains complete column definitions, flow configurations, code samples, and a 20-item go-live checklist.