Key Performance Indicators
Task Analytics
Task Status
Progress by Week
Tasks by Section
Asset Analytics
Asset Health
By Category
Assets per Site
⚠️ Incidents & Damaged Assets
Challenges + non-working/under-repair items
📋 Live Task List
WK Site Section Task / Description Status Remark / Note
Section Breakdown
SectionTotalDoneIn ProgressPendingCompletion %
Site Summary
SiteDoneIn ProgressPendingAssetsWorking
Monthly KPIs
🏆 Major Tasks Completed
Done tasks with significant impact this period
Task Analytics
Monthly Task Status
Tasks per Month
Completion Rate %
Asset Analytics
Asset Health
New Assets / Month
Assets by Category
⚠️ Incidents & Damaged Assets
Challenges flagged + non-working/under-repair assets
📋 Monthly Task List
WK Site Section Task / Description Status Remark / Note
Section Breakdown
SectionTotalDoneIn ProgressPendingCompletion %
Site Breakdown
SiteDoneIn ProgressPendingAssets Added
Task List 0 tasks
💡 Click any cell to edit · Status colours update live
Week Site / Location Month Section Task / Description Remark / Note Status Incident?
🎫 Ticket Numbers
Enter counts from your servicedesk tool
Week Month Open InProg Pend. MRInfo QuotePO P.Local P.Imp Resolvd Closed Total
💡 How to use: Add one row per week (or per month if entering monthly totals). Type the count for each status. Charts in the weekly/monthly views update automatically. You can also add a Tickets sheet to your Excel file with columns: Week · Month · Open · InProgress · Pending · MoreInfo · QuoteAWPO · PurchLocal · PurchImport · Resolved · Closed
MONTH
CATEGORY TOTAL WORKING NON-WORKING UNDER REPAIR NEW ADDED UPTIME %
💡 Total = all assets this month  ·  Working = operational  ·  Non-Working = faulty/offline  ·  Under Repair = being fixed  ·  New Added = installed this month
CATEGORY
← pick category then type numbers per site
SITE / LOCATION TOTAL WORKING NON-WORKING UNDER REPAIR NEW ADDED UPTIME %
1

Create Your Google Sheet

Go to sheets.google.com and create a new spreadsheet. Name it MES IT Operations.
The sheet needs two tabs — one for Tasks and one for Assets.

📋 Tab 1 — Tasks — columns in row 1:

WeekSiteMonthSectionDescriptionStatus
9LumwanaFeb-2026ResultInstalled StarlinkDone

📦 Tab 2 — Assets — columns in row 1:

MonthCategorySiteTotalWorkingNonWorkingUnderRepair
Feb-2026CameraLumwana5410

💡 Your team fills in this sheet from any device — phone, laptop, anywhere with Gmail.

2

Publish the Sheet (one-time setup)

In Google Sheets: File → Share → Publish to web

1️⃣ Click File in the top menu
2️⃣ Click Share (top-right green button)
3️⃣ At the bottom under "General access" → click the dropdown that says "Restricted"
4️⃣ Change it to "Anyone with the link" → role = Viewer → click Done
5️⃣ Copy the URL from your browser address bar → paste below
Safe: "Viewer" access means the dashboard can only read your data — nobody can edit it through the dashboard. Your team's editor access is completely separate and unchanged.
3

Paste Your Spreadsheet URL

Just one URL — that's it.
Paste your Google Sheets URL below. The dashboard automatically reads all site tabs (✅ Lubumbashi, 📦 Kolwezi, 🎫 Tickets etc.) in one go.
No need to publish individual tabs separately.
4

Share the Google Sheet with Your Team

In Google Sheets: click Share (top right) → add your team's Gmail addresses.
Give them Editor access so they can fill in their site data.

Team members open the Google Sheet on their phone or laptop and add data row by row. The dashboard reads all site tabs automatically — ✅ Lubumbashi, 📦 Kolwezi etc. — in one sync. Enable auto-sync below so it refreshes every 5 minutes without any manual action.

💡 You can also set up auto-sync every 5 minutes below.

Recommended — Public Sync (no sign-in for viewers)

Anyone who opens this dashboard sees live data automatically — no Microsoft sign-in required. A small server-side piece (already included in this project as functions/api/workbook.js) holds the Microsoft credentials and reads the file on everyone's behalf. Deploy once, then it's fully automatic.

1️⃣ Go to entra.microsoft.com → App registrations → New registration
2️⃣ Name: MES IT Dashboard Server · Supported account types: this organizational directory only · no redirect URI needed
3️⃣ API permissions → Add a permission → Microsoft Graph → Application permissions (not Delegated) → add Files.Read.All → click Grant admin consent (requires an admin — this step cannot be skipped for app-only access)
4️⃣ Certificates & secrets → New client secret → copy the secret value immediately (shown once)
5️⃣ Copy the Application (client) ID and Directory (tenant) ID from the Overview page
6️⃣ In Cloudflare Pages → your project → Settings → Environment variables, add:
MS_TENANT_ID = <tenant id>
MS_CLIENT_ID = <client id>
MS_CLIENT_SECRET = <client secret> ← mark as "Secret", never plain text
MS_SHARE_URL = <OneDrive "Copy link" URL to MES_IT_Operations.xlsx>
7️⃣ Redeploy the Pages project. Done — every visitor now gets live data automatically.
⚠️ Trade-off to know: Files.Read.All (Application permission) lets this app read any file across your organization's OneDrive/SharePoint, not just this one — the secret is only ever held on Cloudflare's server, never sent to browsers, but it's still a broad grant. If that's a concern, ask IT about scoping it down to Sites.Selected for just this file's library instead.
Not reachable
— Alternative: each person signs in individually —
1

Register an App in Azure AD (one-time setup)

This lets the dashboard sign in with a Microsoft work account and read the file — nobody's password is ever entered into the dashboard.

1️⃣ Go to entra.microsoft.com (or portal.azure.com → Azure Active Directory) and sign in with your work account
2️⃣ Go to App registrations → New registration
3️⃣ Name: MES IT Dashboard
4️⃣ Supported account types: Accounts in this organizational directory only
5️⃣ Redirect URI → platform = Single-page application (SPA) → URI = https://itdeshboard.messarl.com/
6️⃣ Click Register
7️⃣ Copy the Application (client) ID and Directory (tenant) ID shown on the Overview page — paste them in Step 2 below
8️⃣ Go to API permissions → Add a permission → Microsoft Graph → Delegated permissions → add Files.Read.All → click Grant admin consent (if you have admin rights; otherwise ask IT to click this once)
Safe: This only grants read access to files, and only for people who sign in. Nothing is written back to OneDrive from the dashboard.
2

Enter App Details & Sign In

3

Paste the File's Sharing Link

In OneDrive: right-click the MES_IT_Operations.xlsx file → Share → set access to "People in [your organization] with the link"Copy link → paste it below.
The workbook still needs the same tabs as before — ✅ SiteName for tasks, 📦 SiteName for assets, 🎫 Tickets.
4

Share the File with Your Team

Your team members open the OneDrive/SharePoint file link on their phone or laptop and edit it directly, same as before with Google Sheets.

Anyone who opens this dashboard and signs in with a work account that has access to the file will see live data. Enable auto-sync below so it refreshes every 5 minutes without any manual action.

WEEK
SITE
📦 ASSETS

Organisation Details

🏙️ Main Sites — for Tasks

These locations appear in the Task Editor site dropdown and on the main dashboard filter.

📍 Asset Sites — all locations

All physical locations where equipment exists — used in the Asset Summary site view.

KPI Targets

🔐 Admin PIN

Change the 4-digit PIN required to access Data Entry and Settings. Default PIN is 1234 — change it to keep your settings secure.

⚠️ PIN is stored in this browser only. Clearing browser data resets it to 1234.

Data Management

📲
INSTALL AS APP
Add to home screen · works offline