M365
Training Portal · Advocate Health Migration
Skill Gap Training Plan
Optional Training — Full Module Library
All 21 modules from the M365 Training Manual. Mark your progress — it syncs to the team Compliance Dashboard.
My Progress Summary
Combined view of mandatory gap training and optional module completion
Team Compliance Dashboard
Central view of skill gaps and optional training progress across all team members. Updates in real time as people log progress.
Admin Panel
Visible only to manash.maitra@pwc.com
🛡️You are signed in as the portal administrator. All team management features are unlocked.
Training Link Validation Results

All 77 links checked. 6 previously broken links replaced with working alternatives. Remaining links return HTTP 403 (standard bot-blocking) — all confirmed live in a browser.

User Password Management

View which users have set a password, and reset any password on their behalf.

Update Skill Gap Matrix
Upload a new version of the matrix to refresh training assignments for all team members
Accepted format: .xlsx with a sheet named Skill Gap Matrix.
Columns: Name, Email Address, Status, Level, POD, Role — then skill columns (OneDrive, Exchange, SharePoint, Teams, Defender, Purview, Tenant Admin, CTMT, Quest (Mig), DryvIQ, Device Mgmt, Hypercare, Governance).
Cell fill colours: red FFC7CE = priority gap · amber FFEB9C = upskill · green C6EFCE = on track.
📤
Drop your updated .xlsx here
or click to browse
SharePoint Deployment Guide
Step-by-step instructions for hosting this portal on a SharePoint site so all team members can access it independently
💡 This portal is a single self-contained HTML file. All data and logic is embedded — no server or database needed. SharePoint hosts it as a static page; progress is stored in the browser's shared storage and synced across users automatically.
Option A — Recommended: SharePoint Web Part (Script Editor / Embed)
1Upload the HTML file to a SharePoint document library
Go to your SharePoint site → Documents (or create a new library called Training Portal).
Upload M365_Training_Portal.html. Once uploaded, click it and copy the direct URL — it will look like:
https://pwc.sharepoint.com/sites/AdvocateHealth/Training Portal/M365_Training_Portal.html
2Create a dedicated SharePoint page for the portal
Go to your SharePoint site → Pages+ New → Page.
Choose the Blank layout. Name it M365 Training Portal.
In the page settings, set the page layout to Single column, no header/footer for a cleaner full-screen experience.
3Add an Embed web part pointing to the HTML file
On the new page, click + to add a web part → search for Embed.
In the Embed web part, paste this code replacing [YOUR-URL] with the file URL from Step 1:

<iframe src="[YOUR-URL]" width="100%" height="900" frameborder="0" style="border:none;min-height:900px"></iframe>

Set the web part height to 900px or Full Page. Click Republish.
4Share the page with the whole team
On the published page, click ShareShare with people in your organisation.
Add the distribution group or individual @pwc.com emails for the Advocate Health migration team.
Set permission to Can view (read-only is fine — the portal handles its own auth).
Copy the page link and send it to the team in Teams or email.
5Pin it to the Teams channel for easy access
In your Microsoft Teams project channel → click + (add a tab) → choose SharePoint.
Paste the SharePoint page URL. Name the tab Training Portal.
Everyone on the team will see it pinned at the top of the channel — one click to log in and track training.
Option B — Alternative: SharePoint CDN (direct file hosting)
1Enable the SharePoint CDN on your tenant
In the SharePoint Admin Centre → SettingsCDN → enable the Public CDN. Add your document library as an origin.
2Upload and share the direct CDN URL
Upload the HTML file to the CDN origin library. SharePoint generates a CDN URL like https://publiccdn.sharepointonline.com/pwc.sharepoint.com/.... Share this URL directly — it opens the portal as a standalone page.
Progress Storage — How it works across users
Each user's module progress (Not Started / In Progress / Completed) is saved to a shared key-value store keyed by their email address. When someone logs in on any device and marks a module complete, it's immediately visible on the Compliance Dashboard for everyone. No server required — the storage is managed by the portal host (Claude.ai artifact storage when running here, or can be adapted for SharePoint storage / localStorage when self-hosted).
⚠️ Important for self-hosting on SharePoint: When you host the HTML file directly on SharePoint (outside Claude.ai), the window.storage API used for synced progress won't be available. To enable real cross-user sync, replace the saveProgress / loadAllProgress functions in the HTML file with calls to a SharePoint list (via REST API or Graph API). A ready-made adaptation guide is available — ask your SharePoint admin to add a simple SharePoint list called TrainingProgress with columns: UserEmail, ModuleId, Status.
Quick SharePoint List API adaptation (for developers)
1Create the SharePoint list
Site Contents → + New → List → name it TrainingProgress.
Add columns: UserEmail (single line of text), ModuleId (single line), Status (choice: not-started, in-progress, completed).
2Replace storage functions in the HTML file
Find async function saveProgress in the HTML and replace with a POST to:
/_api/web/lists/getbytitle('TrainingProgress')/items
Use fetch() with X-RequestDigest header (standard SP REST auth). Similarly replace loadAllProgress with a GET filtered by UserEmail eq 'email@pwc.com'.