Concepten & Architectuur

Overzicht van structuur

Welkom bij de API-documentatie van Pluvo. Dit document geeft een overzicht van de belangrijkste concepten en de onderliggende structuur van het Pluvo-platform. Het is bedoeld als startpunt voor ontwikkelaars die integraties bouwen of data synchroniseren met Pluvo.

Kernconcepten

Gebruikers (Users)

Deelnemers, trainers, planners of managers — iedereen die inlogt in Pluvo is een User. Gebruikers kunnen extra gegevens (via extraFields) bevatten en worden gekoppeld aan groepen of rollen.

Groepen (Groups)

Organisatorische eenheden die gebruikers groeperen. Groepen bepalen toegang tot trainingen en kunnen eigen instellingen en managers hebben.

Leerlijnen (Trainings)

Een Training bevat leerinhoud, voortgangsregels, en planning. Wat gebruikers als een "leerlijn" zien in de interface, heet in de API een Training.

Aanbod & Inschrijving (Offers & OfferEvents)

Offer is het overkoepelende inschrijfaanbod. Een OfferEvent is een concreet instapmoment. Gebruikers schrijven zich in op een OfferEvent.

Portfolio & Resultaten

PortfolioItem slaat bewijsstukken, prestaties of certificaten op. PortfolioReport is een geavanceerde query voor het analyseren van voortgang, scores en tijdsbesteding.

Modules & Courses

Binnen een Training vind je Modules die e-learning content bevatten zoals video’s, theorie, opdrachten of externe LTI-modules.

Webhooks

Pluvo kan gebeurtenissen pushen naar jouw systeem. Voorbeelden zijn USER_CREATED, TRAINING_FINISHED en COURSE_FINISHED.

Architectuur

De Pluvo API is opgebouwd als een GraphQL API. Belangrijke kenmerken:

  • ✅ Eén endpoint, meerdere types en queries
  • 📦 Structuur gebaseerd op objecttypes (zoals User, Training, Group, etc.)
  • 🧩 Veel objecten bevatten refvelden voor externe koppelingen
  • 🔐 Webhooks bevatten HMAC-beveiliging via headers
  • 📂 Bestanden worden aangeboden via Pluvo's eigen file storage URL’s

Interactiestromen

Voorbeeldstromen binnen Pluvo:

  • Nieuwe gebruiker aanmaken → uitnodigen → koppelen aan groep → inschrijven op training
  • Gebruiker voltooit course → certificaat → portfolio-item → webhook
  • Externe tool (via LTI) voltooid → score en tijd → portfolioReport

Aanbevolen patronen

  • Gebruik updateOrCreateUser en updateExtraCategoryValues voor robuuste synchronisatie.
  • Archiveer in plaats van verwijderen (archiveUsers, archiveOffers, etc.).
  • Gebruik PortfolioReport voor evaluatie- en monitoringdoeleinden.
  • Vermijd directe afhankelijkheid van UI-namen; werk met ref, id, en contentType.
Sluit melding