{
	"legaldoc_privacy": "<p><strong>Privacybeleid van Puzzel.org</strong></p><p>Van kracht sinds 18 september 2026</p><h2>1. Inleiding</h2><p>Puzzel.org (\"we\", \"ons\" of \"onze\") wordt gebouwd en beheerd door Daan Weustenraad in Nederland, en we nemen de bescherming van jouw privacy serieus. Dit beleid legt uit welke informatie we verzamelen wanneer je onze diensten gebruikt, waar we die voor gebruiken, met wie we die delen en hoe we die beschermen. Het is geschreven om te voldoen aan de Algemene Verordening Gegevensbescherming (AVG).</p><h2>2. Informatie die we verzamelen</h2><p>Als je een account aanmaakt, verzamelen we de volgende soorten informatie:</p><ul><li><strong>Persoonlijke identificatiegegevens</strong> — je voornaam en e-mailadres.</li><li><strong>Gebruiksgegevens</strong> — hoe vaak je activiteiten gebruikt worden.</li><li><strong>Technische gegevens</strong> — een cookie die je actieve sessie bewaart, zodat je de activiteiten die je hebt gemaakt kunt oppakken waar je gebleven was, en vergelijkbare functionele gegevens.</li></ul><h2>3. Waarom we je gegevens verwerken</h2><p>We verwerken en bewaren je informatie om één reden: om het platform te laten werken en zo eenvoudig mogelijk te houden. Het wordt niet gebruikt voor iets anders dan wat het platform nodig heeft om te functioneren.</p><h2>4. Rechtsgrond voor verwerking</h2><p>We verwerken persoonsgegevens op basis van de volgende rechtsgronden:</p><ul><li><strong>Toestemming</strong> — waar je toestemming hebt gegeven, verwerken we je gegevens op die basis.</li><li><strong>Overeenkomst</strong> — waar verwerking nodig is om een overeenkomst met jou uit te voeren.</li><li><strong>Wettelijke verplichting</strong> — waar we verplicht zijn om aan de wet te voldoen.</li></ul><h2>5. Hoe lang we je gegevens bewaren</h2><p>We bewaren je persoonsgegevens alleen zolang we ze nodig hebben voor de doelen waarvoor we ze verzameld hebben, inclusief eventuele wettelijke, boekhoudkundige of rapportageverplichtingen.</p><h2>6. Met wie we je gegevens delen</h2><p>We kunnen je informatie delen met:</p><ul><li><strong>Google Firebase</strong> — verzorgt authenticatie en de opslag van je gegevens.</li><li><strong>Google Classroom</strong> — alleen wanneer een docent een activiteit met cijfers toewijst: de score die een leerling heeft behaald, verzonden naar diens eigen inzending in de klas van die docent (zie paragraaf 7).</li><li><strong>Het leerplatform van je school</strong> — alleen wanneer een docent via LTI een activiteit met cijfers toevoegt: de score die een leerling heeft behaald, verzonden naar de cijferlijst van die cursus (zie paragraaf 7).</li><li><strong>SendGrid</strong> — stuurt je e-mail over mogelijke problemen met je account en over platformupdates.</li><li><strong>Overheidsinstanties</strong> — wanneer de wet dat vereist, of om onze wettelijke rechten te beschermen.</li></ul><h2>7. Google Classroom en schoolcijferlijsten</h2><p>Een docent kan Puzzel.org koppelen aan Google Classroom om een activiteit in een van zijn klassen te zetten en de score van elke leerling daarin terug te laten schrijven. Hier gebeurt niets tenzij een docent dit koppelt en een activiteit toewijst; een Puzzel.org-activiteit spelen via een gewone link werkt precies zoals beschreven in de rest van dit beleid.</p><p><strong>Wat we opvragen, en waarom</strong></p><ul><li><strong>Van het Google-account van de docent</strong>, met toestemming van de docent op het scherm van Google zelf: zijn Google-account-ID en e-mailadres, om te laten zien welk account gekoppeld is; de lijst met klassen die hij lesgeeft, zodat hij er een kan kiezen; en toestemming om opdrachten aan te maken en cijfers in te vullen in die klassen. We lezen geen klassenlijsten, namen of e-mailadressen van andere leerlingen, of ander lesmateriaal.</li><li><strong>Van een leerling die een opdracht opent</strong>: het Google-account waarmee hij inlogt — het account-ID, de naam en het e-mailadres — om te controleren dat hij in de klas zit waaraan de activiteit is toegewezen, en om zijn score op zijn eigen inzending te zetten.</li></ul><p><strong>Wat we bewaren</strong></p><ul><li>Voor een docent: het Google-account-ID en e-mailadres, de rechten die hij heeft verleend, en een versleuteld token waarmee Puzzel.org cijfers kan invullen in zijn klassen zonder opnieuw te vragen. Het token verlaat onze servers nooit.</li><li>Voor elke opdracht: bij welke activiteit hij hoort, de Google-klas en -opdracht die ermee is aangemaakt, en voor elke leerling die hem speelde: het Google-account-ID, het inzending-ID in Classroom, en de laatst verzonden score en het tijdstip daarvan. De naam en het e-mailadres van de leerling worden bij zijn resultaat bewaard, zoals bij elke speler die met Google inlogt.</li></ul><p><strong>Hoe scores worden berekend en gedeeld</strong>: een score wordt op onze servers berekend uit de antwoorden die in de activiteit gegeven zijn — nooit overgenomen uit de browser van de leerling — en het enige wat we naar Google sturen is die score, naar een inzending die al bestaat in de klas van de docent. We verkopen geen Google-gebruikersgegevens, gebruiken ze niet voor advertenties en niet om AI-modellen te trainen, en dragen ze aan niemand anders over.</p><p><strong>Hoe lang we het bewaren</strong>: het gegeven van een leerling bij een opdracht wordt verwijderd zodra de docent stopt met synchroniseren van die opdracht of de activiteit verwijdert. Wanneer een docent Google Classroom loskoppelt, of zijn account verwijdert, wordt zijn token bij Google ingetrokken en verwijderd. Cijfers die al in Google Classroom staan, blijven daar staan: ze horen bij de cijferlijst van de school, en de docent of school beheert ze in Google Classroom.</p><p><strong>Scholen</strong>: wanneer een school Puzzel.org met Google Classroom gebruikt, bepaalt de school wat er met de gegevens van haar leerlingen gebeurt, en verwerkt Puzzel.org die gegevens namens de school, alleen om scores te berekenen en af te leveren.</p><p><strong>Het eigen leerplatform van je school (LTI)</strong>: een school kan Puzzel.org ook koppelen aan haar eigen leerplatform — zoals Moodle, Canvas of Brightspace — via de LTI 1.3-standaard. Een schoolbeheerder registreert Puzzel.org één keer, ingelogd met een Puzzel.org-account. Wanneer een leerling een Puzzel.org-activiteit opent vanuit een cursus, vertelt het platform ons wie hij is: het ID dat het platform voor hem gebruikt en, als de instellingen van de school dat delen, zijn naam en e-mailadres. We gebruiken dit alleen om hem in te loggen bij die activiteit; er wordt geen Puzzel.org-account voor hem aangemaakt. Heeft een docent ervoor gekozen om scores te versturen, dan bewaren we voor elke leerling dat platform-ID, het adres van de cijferlijstkolom en de laatst verzonden score, en sturen we het platform alleen de score, berekend op onze servers zoals hierboven beschreven. We vragen het platform nooit om klassenlijsten of ander lesmateriaal. Het record van een leerling bij een plaatsing wordt verwijderd zodra de docent de synchronisatie stopzet of de activiteit verwijdert; al geschreven scores blijven in de cijferlijst van de school staan. Net als bij Google Classroom bepaalt de school wat er met de gegevens van haar leerlingen gebeurt, en verwerkt Puzzel.org die namens de school.</p><p>Het gebruik en de doorgifte door Puzzel.org aan een andere app van informatie die via Google API's is ontvangen, voldoet aan het <a href=\"https://developers.google.com/terms/api-services-user-data-policy\">Google API Services User Data Policy</a>, inclusief de Limited Use-vereisten.</p><h2>8. Internationale doorgifte van gegevens</h2><p>Als we je gegevens buiten de Europese Economische Ruimte (EER) doorgeven, zorgen we ervoor dat een passend beschermingsniveau van toepassing is — bijvoorbeeld door middel van standaardcontractbepalingen.</p><h2>9. Gegevensbeveiliging</h2><p>We gebruiken passende technische en organisatorische maatregelen om je gegevens te beschermen, waaronder beperkte toegang, beveiligde servers en elke maatregel die Google Firebase zelf neemt om aan de regelgeving te voldoen: <a href=\"https://firebase.google.com/support/privacy\" rel=\"noopener noreferrer\" target=\"_blank\">https://firebase.google.com/support/privacy</a></p><h2>10. Jouw rechten</h2><p>Onder de AVG heb je de volgende rechten:</p><ul><li><strong>Inzage</strong> — een kopie van je persoonsgegevens opvragen.</li><li><strong>Rectificatie</strong> — verzoeken dat onjuiste gegevens worden gecorrigeerd.</li><li><strong>Verwijdering</strong> — verzoeken dat je gegevens worden verwijderd.</li><li><strong>Beperking</strong> — verzoeken dat we de verwerking van je gegevens beperken.</li><li><strong>Overdraagbaarheid</strong> — je gegevens ontvangen in een gestructureerd, gangbaar formaat.</li><li><strong>Bezwaar</strong> — bezwaar maken tegen verwerking die is gebaseerd op gerechtvaardigde belangen.</li><li><strong>Toestemming intrekken</strong> — waar toestemming de basis is voor verwerking, deze op elk moment intrekken.</li></ul><h2>11. Geautomatiseerde besluitvorming en profilering</h2><p>We gebruiken geen geautomatiseerde besluitvorming of profilering die je aanmerkelijk raakt.</p><h2>12. Cookies en tracking</h2><p>Onze website gebruikt alleen functionele cookies, om je actieve sessie bij te houden — wanneer je bent ingelogd, of wanneer je activiteiten maakt of speelt. Je kunt je cookievoorkeuren beheren in je browserinstellingen.</p><h2>13. Wijzigingen in dit privacybeleid</h2><p>We kunnen dit beleid van tijd tot tijd bijwerken. We laten je weten over belangrijke wijzigingen met een melding op de website.</p><h2>14. Contact</h2><p>Als je vragen of zorgen hebt over dit beleid, of een van je rechten wilt uitoefenen, neem dan contact met ons op via:</p><p><strong>E-mail:</strong> <a href=\"mailto:daan@puzzel.org\">daan@puzzel.org</a></p><h2>15. Klachten</h2><p>Als je van mening bent dat we niet hebben voldaan aan de toepasselijke wetgeving voor gegevensbescherming, heb je het recht om een klacht in te dienen bij de toezichthouder voor gegevensbescherming in jouw land.</p>",
	"legaldoc_terms": "<p><strong>Van kracht sinds:</strong> 18 september 2026</p><h2>1. Inleiding</h2><p>Deze algemene voorwaarden (de \"Voorwaarden\") regelen je toegang tot en gebruik van de website, diensten en producten van Puzzel.org (samen de \"Diensten\"). Door de Diensten te gebruiken ga je akkoord met deze Voorwaarden. Ga je er niet mee akkoord, gebruik de Diensten dan niet.</p><h2>2. Geschiktheid</h2><p>Om de Diensten te gebruiken, moet je akkoord gaan met deze Voorwaarden en met de toepasselijke wetgeving.</p><h2>3. Gebruik van de Diensten</h2><p>Je gaat ermee akkoord om:</p><ul><li>de Diensten alleen voor rechtmatige doeleinden te gebruiken;</li><li>de Diensten niet te misbruiken of te proberen ze te verstoren;</li><li>geen enkel onderdeel van de Diensten te reverse-engineeren, te decompileren of te exploiteren.</li></ul><h2>4. Accountregistratie</h2><p>Als je een account aanmaakt, moet je juiste en volledige gegevens verstrekken.</p><h2>5. Kosten en betalingen</h2><ul><li>Eventuele kosten die voor de Diensten gelden, worden duidelijk gecommuniceerd.</li><li>Betalingen moeten op tijd worden gedaan; anders kunnen je accountvoordelen worden opgeschort.</li></ul><h2>6. Intellectueel eigendom</h2><ul><li>Alle originele content op de Diensten, inclusief tekst, afbeeldingen, logo's en software, is eigendom van Puzzel.org of zijn licentiegevers en wordt beschermd door wetgeving op het gebied van intellectueel eigendom.</li><li>Je behoudt het volledige eigendom van, en alle intellectuele-eigendomsrechten op, alle content die je naar het platform uploadt of erop maakt (jouw \"Gebruikerscontent\").</li><li>Door content naar het platform te uploaden of erop te maken, verleen je Puzzel.org een niet-exclusieve, wereldwijde, royaltyvrije licentie om die content te gebruiken, weer te geven en te verspreiden, uitsluitend om de Diensten te laten draaien.</li><li>Puzzel.org zal geen aanspraak maken op eigendom van je Gebruikerscontent, en zal die niet gebruiken voor enig doel buiten het leveren van de Diensten zonder jouw uitdrukkelijke toestemming.</li></ul><h2>7. Gebruikerscontent</h2><ul><li>Je behoudt het eigendom van alle content die je bij de Diensten indient.</li><li>Door content in te dienen, verleen je ons een wereldwijde, royaltyvrije licentie om die te gebruiken, te reproduceren, te bewerken en weer te geven met als doel de Diensten te leveren en te verbeteren.</li><li>Je verklaart dat je de rechten hebt op alle content die je indient.</li></ul><h2>8. Google Classroom en andere schoolcijferlijsten</h2><p>Als je de Diensten koppelt aan Google Classroom of een andere schoolcijferlijst:</p><ul><li>bevestig je dat je dit mag doen voor de klassen die je kiest, en dat je school de koppeling heeft goedgekeurd waar dat vereist is;</li><li>bepaalt je school (of jijzelf, als je zelfstandig lesgeeft) wat er gebeurt met de gegevens van leerlingen voor de scores die naar je klassen worden gestuurd, en verwerkt Puzzel.org die gegevens namens haar, alleen om scores te berekenen en af te leveren bij de opdrachten die je hebt aangemaakt;</li><li>worden cijfers automatisch berekend uit de antwoorden die in de activiteit zijn gegeven. Controleer ze voordat je erop vertrouwt — je kunt elk cijfer in je cijferlijst aanpassen, en een latere, betere poging van een leerling kan een cijfer vervangen dat Puzzel.org heeft verzonden;</li><li>kun je op elk moment stoppen met het verzenden van scores, per opdracht of door je cijferlijst los te koppelen.</li></ul><h2>9. Beëindiging</h2><p>We kunnen je toegang tot de Diensten opschorten of beëindigen als:</p><ul><li>je deze Voorwaarden overtreedt; of</li><li>je handelingen de Diensten of andere gebruikers schaden.</li></ul><p>Je kunt je account ook op elk moment sluiten: verwijder het vanuit je accountdashboard, of vraag ons dit te doen door te mailen naar <a href=\"mailto:daan@puzzel.org\">daan@puzzel.org</a>.</p><h2>10. Beperking van aansprakelijkheid</h2><p>Voor zover maximaal toegestaan door de wet:</p><ul><li>is Puzzel.org niet aansprakelijk voor indirecte, incidentele of gevolgschade die voortvloeit uit je gebruik van de Diensten;</li><li>is onze aansprakelijkheid voor directe schade beperkt tot het bedrag dat je ons in de afgelopen 12 maanden hebt betaald.</li></ul><h2>11. Vrijwaring</h2><p>Je gaat ermee akkoord Puzzel.org te vrijwaren en schadeloos te stellen voor alle claims, verliezen of schade die voortvloeien uit jouw overtreding van deze Voorwaarden of jouw misbruik van de Diensten.</p><h2>12. Wijzigingen in deze Voorwaarden</h2><p>We kunnen deze Voorwaarden van tijd tot tijd bijwerken. We laten je weten over belangrijke wijzigingen met een melding op de website. Als je de Diensten blijft gebruiken na een wijziging, accepteer je de bijgewerkte Voorwaarden.</p><h2>13. Toepasselijk recht</h2><p>Op deze Voorwaarden is Nederlands recht van toepassing. Elk geschil wordt voorgelegd aan de Nederlandse rechter.</p><h2>14. Geschillenbeslechting</h2><p>Geschillen kunnen worden opgelost door middel van <strong>onderhandeling</strong>: probeer het geschil eerst informeel op te lossen.</p><h2>15. Contact</h2><p>Als je vragen of zorgen hebt over deze Voorwaarden, mail ons dan op <a href=\"mailto:daan@puzzel.org\">daan@puzzel.org</a>.</p><h2>16. Overige bepalingen</h2><ul><li>Als een deel van deze Voorwaarden ongeldig blijkt, blijven de overige bepalingen van kracht.</li><li>Deze Voorwaarden vormen de volledige overeenkomst tussen jou en Puzzel.org.</li></ul>",
	"legaldoc_vendor": "<h3>Bedrijfsnaam</h3><p>Puzzel.org</p><h3>Eigenaar / hoofdcontact / aanspreekpunt</h3><p>Daan Weustenraad — daan@puzzel.org</p><h3>Locatie/adres</h3><p>Sneekermeer 13, 3825XT Amersfoort, Nederland — <a href=\"https://puzzel.org\" rel=\"noopener noreferrer\" target=\"_blank\">https://puzzel.org</a></p><h3>Product-/dienstbeschrijving (schoolabonnement)</h3><p>Het schoolabonnement geeft toegang tot het online platform voor het maken van educatieve, interactieve activiteiten, inclusief het uploaden van je eigen content.</p><p>Het loopt één jaar en omvat:</p><ul><li>een onbeperkt aantal activiteiten</li><li>elke functie op het platform</li><li>5 docentaccounts inbegrepen</li><li>tot 5.000 spelersessies per maand (beide kunnen worden opgeschaald naar elk gewenst aantal docenten of spelersessies)</li></ul><h3>Heeft de applicatie/oplossing toegang nodig tot een resource van de universiteit of USG (Banner, OneUsg, wifi, netwerk, telefoons, servers, enz.)?</h3><p>Ja — een actieve internetverbinding, via wifi of een mobiel netwerk.</p><h3>Hoe krijg je toegang tot dit product/deze oplossing? (Alleen lokaal computergebruik, oplossing gebruikt internetgebaseerde login, oplossing gebruikt schoollogin?)</h3><p>De oplossing gebruikt een internetgebaseerde login.</p><h3>Raad je een bekabelde netwerkverbinding aan, of is wifi voldoende?</h3><p>Wifi is voldoende. Pagina's zijn licht — meestal ruim onder 1 MB per stuk.</p><h3>Wat zijn je systeemvereisten (minimaal en aanbevolen) voor het volgende:</h3><p>Elke actuele browser: Chrome, Firefox, Safari en Edge werken allemaal. Internet Explorer is te oud en wordt niet ondersteund. Er zijn geen plug-ins zoals Flash nodig.</p><h3>Op welke schermgrootte/resolutie werkt je platform?</h3><p>De website is volledig responsive, dus hij werkt zowel op mobiele apparaten als op desktopcomputers.</p><p>Activiteiten maken doe je het beste op een desktopcomputer of een tablet: het grotere scherm houdt overzicht over wat je aan het maken bent.</p><h3>Aanbevolen videokaart en geheugen?</h3><p>Niet van belang — de website draait op elke redelijk moderne hardware.</p><h3>Vereist je applicatie enige (app-)installatie?</h3><p>Nee. Het is een complete webapplicatie die volledig in de browser draait.</p><h3>Wordt dit product/deze oplossing gebruikt met gegevens of informatie?</h3><p>Standaard niet. Het platform gebruikt helemaal geen trackingcookies of advertenties — alleen een sessiecookie die de gebruiker ingelogd houdt.</p><p>Bij het maken van een activiteit kan de eigenaar 'Resultaten bijhouden' en 'Registratie verplichten' inschakelen om individuele activiteitresultaten te verzamelen. Elk registratieveld wordt met de hand gekozen, zodat het formulier zo privacyvriendelijk mogelijk kan blijven.</p><h3>Geef aan welke datavelden of informatie (of soorten gegevens) mogelijk of zeker gebruikt worden met dit product/deze oplossing? (voornaam, achternaam, geboortedatum, Eagle ID, e-mail, datum, trefwoorden, tekst, foto's, video, audio, biometrische gegevens, enz.)</h3><p>Elk van deze is volledig optioneel:</p><ul><li>Activiteitresultaten</li><li>Educatieve content</li><li>Voornaam / achternaam / e-mailadres / leerlingnummer</li></ul><h3>Welke gegevenstypen worden, voor zover bekend, gebruikt met deze resource? (HIPAA, FERPA, PII, PCI, CUI, onderzoeksgegevens, ANDERS)</h3><p>Optioneel PII: voornaam en achternaam, e-mailadres, leerlingnummer.</p><h3>Wat is de verwachte termijn voor het invoeren van deze oplossing?</h3><p>De oplossing kan meteen gebruikt worden — alle puzzelgeneratoren zijn openbaar beschikbaar. Upgraden naar een betaald abonnement gaat ook direct in.</p><h3>Wat moet in ons filter/onze firewall worden gedeblokkeerd/op de allowlist worden gezet om deze dienst te laten werken?</h3><p>Om Puzzel.org volledig te laten werken, sta de volgende hosts toe:</p><ul><li>puzzel.org — de applicatie zelf</li><li>puzzelorg-cdn.s3.us-west-1.amazonaws.com — afbeeldingen en audio geüpload door accounts die in de VS zijn opgeslagen</li><li>puzzelorg-image-cdn.s3.eu-north-1.amazonaws.com — afbeeldingen en audio geüpload door accounts die in de EU zijn opgeslagen</li><li>*.googleapis.com — inloggen en tokenvernieuwing (Firebase Authentication)</li><li>puzzelorg.firebaseapp.com — de inlogpop-up voor Google- en Microsoft-accounts</li><li>wss://puzzelorg.firebaseio.com — realtime database, accounts opgeslagen in de VS</li><li>wss://puzzelorg-2.europe-west1.firebasedatabase.app — realtime database, accounts opgeslagen in de EU</li><li>fonts.googleapis.com, fonts.gstatic.com — webfonts</li><li>checkout.stripe.com — alleen tijdens het kopen of verlengen van een abonnement</li></ul><p>De realtime database verbindt via een websocket, en dat is de regel die een streng contentfilter vaak stilletjes laat vallen: als activiteiten wel openen maar resultaten nooit worden opgeslagen, is dat de regel om als eerste naar te kijken. Alleen de regio die jouw account gebruikt is nodig: een VS-account maakt nooit contact met de EU-database, en andersom. Stripe mag geblokkeerd blijven op klaslokaalapparaten.</p><h3>Staan er servers van jou in het buitenland? Zo ja, in welke landen?</h3><p>Gegevens worden standaard opgeslagen in de Verenigde Staten, met een EU-optie. Twee instellingen bepalen waar, onafhankelijk van elkaar:</p><ul><li>Accountgegevens: een Google Firebase realtime database in de Verenigde Staten (de standaard) of in europe-west1, België.</li><li>Bestanden: een Amazon S3-bucket in us-west-1 (Californië) of eu-north-1 (Stockholm). Bestaande bestanden blijven werken na een overstap.</li></ul><p>Een nieuw account begint in de regio die de tijdzone van de browser suggereert — Europa en Afrika krijgen de EU-database — en beide instellingen kunnen achteraf worden gewijzigd. Accountgegevens naar de andere regio verplaatsen gebeurt als migratie op de achtergrond en vereist een betaald abonnement. De applicatie wordt gehost en geleverd via het CDN van <a href=\"https://vercel.com\" rel=\"noopener noreferrer\" target=\"_blank\">Vercel</a>.</p><h3>Gebruikt je programma een cacheserver?</h3><p>Alleen voor statische contentpagina's.</p><h3>Vereist je dienst e-mailinteractie met leerlingen?</h3><p>Nee. Alle communicatie verloopt via de eigenaar van de activiteit, meestal de docent.</p><h3>Ondersteunt je software integraties?</h3><p>Drie manieren om te beginnen:</p><ul><li>Canvas: via een LTI-launch kiest een docent een van zijn eigen activiteiten en zet die als insluiting in de pagina.</li><li>Al het andere: kopieer de insluitcode en plak die in een willekeurige pagina — geen integratiewerk nodig. Zo wordt Puzzel.org voornamelijk gebruikt.</li><li>Een REST API kan activiteiten aanmaken vanuit je eigen systemen, met een limiet van 10 verzoeken per dag per sleutel.</li></ul><h3>Hebben docenten een eigen login?</h3><p>Ja. Elke docent maakt zijn of haar eigen login aan met een e-mailadres. Die individuele login kan later worden gekoppeld aan een schoolabonnement, waar beschikbaar.</p><h3>Levert je product onbeperkte technische ondersteuning?</h3><p>Ja — via e-mail, <a href=\"mailto:daan@puzzel.org\" rel=\"noopener noreferrer\" target=\"_blank\">daan@puzzel.org</a>.</p><p>(Op voorwaarde dat je zelf moeite doet om functies uit te proberen en de bestaande documentatie te lezen.) Beschikbaar tussen 9.00 en 22.00 uur (CET).</p><h3>Hebben wij een portaal om onze leerlingen te beheren?</h3><p>Ja en nee. Leerlingen kunnen zich registreren (als je registratie verplicht stelt) en wanneer ze activiteiten oplossen terwijl ze zijn ingelogd, heb jij toegang tot hun activiteitresultaten. Je hebt echter geen controle over hun accounts.</p><p>Je kunt al hun resultaten op elk moment verwijderen.</p><h3>Heb je aanpasbare rollen in de beheerconsole?</h3><p>Nee. Er is weinig hiërarchie in Puzzel.org: alleen de eigenaar van het schoolaccount heeft extra rechten, namelijk om andere docenten uit te nodigen voor het hoofdschoolaccount (waardoor zij Premium-toegang krijgen).</p><h3>Bied je training aan en wat houdt die in?</h3><p>Nee, maar er is behoorlijk wat documentatie in de functie- en activiteitenbouwer-secties, en vragen zijn altijd welkom per e-mail. Het platform is bovendien ontworpen om gemakkelijk op te pakken.</p><h3>Moeten er gegevens van ons worden geïmporteerd in je programma?</h3><p>Nee. Het importeren van gegevens is helemaal geen vereiste.</p><h3>Beschrijf het proces en de termijn die je hanteert om de school te informeren als een datalek wordt ontdekt. Vermeld het aanspreekpunt van het bedrijf dat PWCS zal informeren en wat de melding zal inhouden. Beschrijf hoe de melding zal plaatsvinden en in welk formaat.</h3><p>Accounthouders worden per e-mail geïnformeerd. Het aanspreekpunt bij Puzzel.org is Daan Weustenraad (zie de gegevens hierboven). De melding beschrijft het datalek, wie erdoor geraakt is en wat de gevolgen zijn.</p><h3>De infrastructuur (hosts, netwerkapparatuur, enz.) die de applicatie host, moet zich bevinden in een afgesloten, kooiachtige omgeving. Een Tier 2-datacenter (of beter) of de fysieke infrastructuur van een cloudserviceprovider zoals AWS, Google of Azure heeft de voorkeur.</h3><p>De applicatie wordt gehost door <a href=\"https://vercel.com\" rel=\"noopener noreferrer\" target=\"_blank\">Vercel</a>, een van de grotere netwerken voor het uitleveren van applicaties, en is daardoor op de best mogelijke manier beveiligd. Accounts, activiteiten en resultaten staan in een Google Firebase realtime database; geüploade afbeeldingen en audio worden opgeslagen in Amazon S3.</p><p><a href=\"https://firebase.google.com/support/privacy\" rel=\"noopener noreferrer\" target=\"_blank\">Meer over Google Firebase</a></p><p>De volledige lijst met subverwerkers — geen enkele andere partij ontvangt account- of spelersgegevens:</p><ul><li><a href=\"https://vercel.com\" rel=\"noopener noreferrer\" target=\"_blank\">Vercel</a> — hosting en levering van de applicatie</li><li><a href=\"https://firebase.google.com\" rel=\"noopener noreferrer\" target=\"_blank\">Google Firebase</a> — authenticatie en de realtime database met accountgegevens</li><li><a href=\"https://aws.amazon.com/s3/\" rel=\"noopener noreferrer\" target=\"_blank\">Amazon S3</a> — opslag voor geüploade afbeeldingen en audio</li><li><a href=\"https://stripe.com\" rel=\"noopener noreferrer\" target=\"_blank\">Stripe</a> — abonnementsbetalingen en facturatie</li><li><a href=\"https://openai.com\" rel=\"noopener noreferrer\" target=\"_blank\">OpenAI</a> — genereert content wanneer een docent de AI-assistent gebruikt</li><li><a href=\"https://pixabay.com\" rel=\"noopener noreferrer\" target=\"_blank\">Pixabay</a> — levert de gratis stockfoto's die een docent vanuit de editor kan doorzoeken</li></ul><h3>De infrastructuur die de applicatie host, moet de gegevens gescheiden houden van de gegevens van andere klanten. Dit kan op fysieke wijze (airgap, aparte servers, enz.) of op logische wijze (VLAN, subnets, security tags, virtuele hosts, enz.). Beschrijf hoe dit wordt bereikt.</h3><p>Logisch, via authenticatie. Terwijl je bent ingelogd op je account, bereik je alleen de gegevens die door jou zijn opgeslagen als eigenaar van de activiteit, of namens je activiteiten (de gegevens van de spelers van je activiteiten). Dit wordt volledig afgedwongen door de implementatie van de Firebase Security Rules.</p><p><a href=\"https://firebase.google.com/docs/rules\" rel=\"noopener noreferrer\" target=\"_blank\">Meer over Firebase Security Rules</a></p><h3>De gegevens moeten altijd versleuteld zijn tijdens verzending, tijdens gebruik en in rust, zonder uitzondering. Beschrijf hoe dit wordt bereikt.</h3><p>Het verkeer is end-to-end HTTPS, en accountgegevens worden tijdens verzending en in rust versleuteld door Google Firebase.</p><p><em>'Firebase-diensten versleutelen gegevens tijdens verzending met HTTPS en isoleren klantgegevens op logisch niveau.'</em> — Firebase</p><p><a href=\"https://firebase.google.com/support/privacy#data_encryption\" rel=\"noopener noreferrer\" target=\"_blank\">Meer over gegevensversleuteling</a></p><p>Twee uitzonderingen om te kennen. Geüploade afbeeldingen en audio worden opgeslagen in Amazon S3 en geserveerd vanaf een openbare URL — beschouw ze als openbaar en houd alles wat vertrouwelijk is buiten de media van een activiteit. En wanneer een docent de AI-assistent gebruikt, wordt wat hij of zij typt naar OpenAI gestuurd om content te genereren; spelersgegevens nooit.</p><h3>Hoe authenticeer je gebruikers? Welke opties zijn er (lokaal/handmatig, SSO, SAML, Clever, enz.)?</h3><p>Authenticatie verloopt via Google Firebase. Docenten loggen in met een e-mailadres en wachtwoord, of met het Google- of Microsoft-account dat jouw school al beheert. Spelers blijven anoniem, tenzij een docent registratie inschakelt voor een activiteit.</p><p>Ingesloten activiteiten ondersteunen OIDC single sign-on: je portaal geeft een ondertekend token door, dat wordt gecontroleerd tegen de gepubliceerde sleutels van je identity provider voordat een speler wordt toegelaten. Issuers worden per account op een allowlist gezet en op aanvraag ingesteld. Er is op dit moment geen Clever-, ClassLink- of SAML-koppeling.</p><p><a href=\"https://firebase.google.com/docs/auth\" rel=\"noopener noreferrer\" target=\"_blank\">https://firebase.google.com/docs/auth</a></p><h3>Geef informatie over het proces voor accountbeëindiging</h3><p>Een gebruikersaccount kan op elk moment worden verwijderd. Dit wist volledig elke registratie van de activiteiten en hun activiteitresultaten.</p><h3>Beschrijf wie toegang heeft tot de accountgegevens</h3><p>Alleen de eigenaar van de activiteit heeft toegang tot zijn of haar eigen gegevens. Medewerkers van Puzzel.org kunnen voor foutopsporing toegang krijgen tot een account, maar nooit zonder een uitdrukkelijk verzoek van de accounthouder.</p><h3>Accepteer je betaling via een inkooporder?</h3><p>Ja, als de inkooporder per kaart of bankoverschrijving betaald kan worden. Cheques kunnen niet worden geaccepteerd, omdat Puzzel.org niet in de VS is gevestigd. Betalingen lopen via Stripe, dus kaartgegevens bereiken nooit de eigen systemen van Puzzel.org. Heb je een formeel document nodig voordat je bestelt? De offertetool maakt een PDF-offerte met de gegevens van je school erop.</p><h3>Kan dit product of deze oplossing betalingen van elk type accepteren?</h3><p>Ja. Credit- of betaalkaart, PayPal, Apple Pay en Google Pay worden in elke valuta geaccepteerd; bij betalen in euro's worden ook iDEAL, Bancontact, Giropay en andere lokale betaalmethoden aangeboden, en bankoverschrijving is beschikbaar. Elke betaling loopt via Stripe. De volledige lijst voor jouw land staat op de prijzenpagina.</p>"
}
