Welcome back!
📋 My Assigned Tasks
👥 Program Team Feed
📊 My Program Progress
Loading…
Loading…
Loading…
This Week's Submissions 0 submitted
No check-ins submitted yet this week.
🔐 This tab is visible to all logged-in staff. For sensitive manager data, consider using the admin password feature in Setup.
Weekly Manager Digest
⚠️ Programs Behind Schedule
✅ Check-in Submissions This Week
Staff Reports
No submissions yet this week.
🔴 Overdue Tasks
📁 Program Management
Add new programs and tasks directly to Google Sheets. Changes reflect immediately in the dashboard.
➕ Add New Program
Program ID (auto: P6, P7…)
Program Name
Start Date
End Date
Start Quarter
End Quarter
📌 Add Tasks to Program
Program
Project (optional)
Task Name
Due Date
Quarter
Assign To
Status
📂 Add Project to Program
Program
Project Name
Description (optional)
Start Date
End Date
Quarter
Status
Responsible Person
📋 Current Programs & Projects
Live from Google Sheets — reflects all programs including newly added ones.
Role Management
Manage user accounts, assign roles and program access. All credentials are stored securely in Cloudflare.
Admin · Level 2
Full access · User & role management · All programs · Finance approval · Export · Digest
Manager · Level 3
All programs view · KPI & staff performance · Digest · Expense approval · No role management
Staff · Level 3–4
Own tasks only · Assigned programs · Weekly check-in · DCR reports
Finance Manager · Level 3
View all proposals · Submit proposals · Log expenses · Finance dashboard
Finance Staff · Level 3
Own proposals only · Log expenses · Finance dashboard
Level 1 — Governance
No system access · Policy & oversight only
External — Contractor
Assigned programs only · Own tasks · Check-in · DCR · No finance · No team feed · No KPI
User Accounts
+
Add New User
Username
Display Name
Email Address
Role / Level
Diocese (optional — assign now or later)
— select diocese —
A temporary password is generated automatically. The user must change it on first login.
Role & Program Assignment
Changes take effect on next login
Click program pills to toggle access. Save each card individually.
Save Configuration
After adjusting roles below, save the configuration. Staff will see their updated access on next login.
Current config JSON (copy to STAFF_ROLES secret in Cloudflare):
🔒 Security Architecture
How the secure setup works — staff never see the API key or password.
Staff browser
→ password only →
Cloudflare Worker
→ API key (hidden) →
Google Sheets
| What | Where it lives | Visible to staff? |
|---|---|---|
| Dashboard password | Cloudflare Worker env variable | No ✓ |
| Google API key | Cloudflare Worker env variable | No ✓ |
| Spreadsheet ID | Cloudflare Worker env variable | No ✓ |
| Worker URL | This HTML file | Yes — harmless alone |
🗄️ Initialize Google Sheets
Creates required sheets with correct headers, and migrates any existing task sheets from the old column format (J–Q) to the correct format (A–H). Safe to run multiple times.
Required sheets: Main Programs, Weekly Reports, Login Audit
Program task sheets (P1 Task_List, etc.) are created automatically when you add a program.
🚀 One-Time Setup — Cloudflare Worker
Takes about 10 minutes. Free tier is more than enough.
-
Create a free Cloudflare accountGo to
cloudflare.com→ Sign up free. No credit card needed. -
Create a new WorkerDashboard → Workers & Pages → Create → Create Worker.
Give it a name likepdp-dashboard. Click Deploy. -
Paste the Worker codeClick Edit code. Delete everything in the editor.
Openpdp-worker.js(the file provided alongside this dashboard) and paste its entire contents. Click Deploy. -
Add your secrets as Environment VariablesWorker → Settings → Variables and Secrets → Add these three:DASHBOARD_PASSWORD = your staff password GOOGLE_API_KEY = your Google Sheets API key SPREADSHEET_ID = your Google Sheet IDSet each as type Secret (not plain text) so they're encrypted. Click Save.
-
Copy your Worker URLIt looks like:
https://pdp-dashboard.YOUR-NAME.workers.dev
Copy this URL. -
Update this HTML fileOpen this file in a text editor. Find the line near the top of the script:const WORKER_URL = 'https://YOUR-WORKER.YOUR-SUBDOMAIN.workers.dev';Replace it with your actual Worker URL. Save the file.
-
Deploy to GitHub PagesUpload the updated HTML file to your GitHub repo as
index.html.
Enable GitHub Pages in Settings → Pages → Deploy from branchmain.
Your live URL:https://yourusername.github.io/pdp-dashboard/ -
Update CORS in the Worker (optional but recommended)In the Worker code, find the
corsHeadersfunction and update it to only allow your GitHub Pages domain:
const allowed = /^https:\/\/yourusername\.github\.io$/;
🔑 Changing the Password
The password lives in Cloudflare — no HTML edits needed to change it.
- Go to Cloudflare → Workers → your Worker → Settings → VariablesFind
DASHBOARD_PASSWORD→ Edit → type new password → Save. - Done — takes effect immediatelyStaff using the old password will be prompted to log in again next time they refresh.
