Skip to content
Asmar.
§ CS-08 — User Manuals & Training Portal

User Manuals & Training Portal

Confidential · 2024

A secured, searchable, filterable user manual and training portal — leveraging GCP Cloud Storage for content, Articulate Rise 360 for training modules, SharePoint lists for metadata, a .NET API in front, and a React frontend over a protected sub-domain.

Period
2024
Domain
FinTech / Wealth Management
Stack
  • GCP Cloud Storage
  • Articulate Rise 360
  • SharePoint Lists
  • .NET API
  • React
  • Signed URLs
The brief

Across the line of business, user manuals and training material lived in three or four places — file shares, a SharePoint site, attached PDFs, ad-hoc training portals. Finding the current version of anything took five minutes and the right colleague.

The portal consolidates that surface. Manuals and training modules live in GCP Cloud Storage; Articulate Rise 360 publishes the interactive training experiences; SharePoint lists hold the metadata catalog; a .NET API stitches them together; a React frontend renders a searchable, filterable browsing experience over a protected sub-domain. Every download is a short-lived signed URL.

Decisions & tradeoffs
  1. 01

    GCS as the content store, SharePoint as the metadata catalog.

    CostTwo systems of record to keep in sync.

    WinGCS handles the bytes well and signs URLs cleanly; SharePoint is where the business already manages classification, ownership, and review schedules. Forcing one tool to do both jobs would have failed at one of them.

  2. 02

    Articulate Rise 360 for training modules, not a homegrown player.

    CostVendor-coupled training experience.

    WinAuthoring is a self-serve experience for the training team; we don't build a CMS or an LMS to ship a portal.

  3. 03

    .NET API as the only thing the React app talks to.

    CostAn extra hop between the browser and GCS / SharePoint.

    WinAuth, signed-URL minting, search, and filtering live in one place. The React app never sees a SharePoint URL or a GCS bucket name.

  4. 04

    Short-lived signed URLs for every artifact download.

    CostClients have to refresh URLs; downloads can't be hot-linked.

    WinNo content leaves the protected sub-domain without an authenticated, time-bound link. Audit logs capture every access.

  5. 05

    Protected sub-domain with SSO at the edge.

    CostOne more sub-domain to operate.

    WinAccess is controlled by the existing identity provider; users don't get a second login. Every request is authenticated before any handler runs.

Outcome & scope
  • Single, searchable, filterable surface for all user manuals and training modules across the line of business.
  • Self-serve training authoring through Articulate Rise 360 — content team ships without engineering involvement.
  • Every artifact access is authenticated and audited; no public links.
  • Sub-domain protected by SSO; same identity as the rest of the estate.
My role

Software Solution Architect. Designed the content/metadata split, the .NET API contract, the signed-URL strategy, and the sub-domain auth pattern. Implemented the integration glue between GCS, SharePoint, Rise 360, and the React frontend.

What I'd do differently

If we did it again I'd push more of the search surface into a dedicated index instead of querying SharePoint lists at request time — would lower the p95 noticeably for large catalogs.

← All case studies

Designing something similar?

Explore other work