Nyhetsbrev-abonnement

Utvikle en responsiv og universelt utformet GDPR-kompatibel app for et nyhetsbrev-abonnement og en egen funksjonalitet for å fjerne abonnement. Brukerdata skal valideres i frontend og backend, og lagres i en database.

Frontend

  1. Abonnementsskjema:
    • Et HTML-skjema (<form>) med felter for navn (obligatorisk), e-post (obligatorisk, formatvalidert), en nedtrekksliste for nyhetsbrev (minst tre valg), og en obligatorisk samtykke-avkrysningsboks med GDPR-informasjon som inkluderer en tydelig lenke til personvern.html-siden.
    • Frontend-validering for alle obligatoriske felt og e-postformat.
    • Innsending av data til en backend-URL.
    • Vis tilbakemelding til brukeren ved suksess eller feil.
  2. Avmeldingsskjema:
    • Et separat HTML-skjema (<form>) med et felt for e-post (obligatorisk, formatvalidert) for å fjerne abonnement.
    • Frontend-validering for e-postformat.
    • Innsending av e-postadressen til en backend-URL.
    • Vis tilbakemelding til brukeren ved suksess eller feil.
  3. Responsivt Design:
    • Begge skjemaene skal være responsive og tilpasse seg ulike skjermstørrelser.
  4. Universell Utforming (UU):
    • Bruk semantisk HTML, korrekte <label>-koblinger, tastaturnavigasjon, tydelig fokusindikator og tilstrekkelig fargekontrast.
  5. GDPR-Informasjon:
    • Tydelig informasjon om databruk, lagring, rettigheter og kontaktinformasjon i nærheten av samtykke-avkrysningsboksen, med en tydelig lenke (<a href="personvern.html" target="_blank">personvernerklæringen</a>) til personvern.html-siden.

Backend

  1. Mottak av Data:
    • Håndtere POST-forespørsler
  2. Backend Validering:
    • Valider navn, nyhetsbrev, e-postformat og samtykke
  3. Abonnementshåndtering:
    • Koble til en database.
    • Opprett tabellen abonnenter hvis den ikke finnes (med navn, epost (UNIQUE), nyhetsbrev, samtykke_tidspunkt).
    • Sjekk om e-postadressen allerede eksisterer i databasen.
    • Hvis e-postadressen er ny, lagre dataene (inkludert tidspunkt for samtykke).
    • Returner JSON-respons med suksessmelding eller feilmelding (inkludert indikasjon på eksisterende e-post med HTTP-statuskode 409).
  4. Fjerning av Abonnement:
    • Koble til databasen.
    • Slett raden fra abonnenter-tabellen som samsvarer med den innsendte e-postadressen.
    • Returner JSON-respons med suksessmelding (hvis abonnementet ble fjernet) eller feilmelding (hvis e-postadressen ikke ble funnet).
  5. GDPR-Kompatibel Lagring:
    • Inkluder samtykke_tidspunkt ved påmelding.
    • Kommenter i koden hvordan rutiner for innsyn, retting og sletting kan implementeres.
    • Kommenter viktigheten av begrenset lagringstid.

Vurderingskriterier

Forslag til løsning


Relaterte kompetansemål

Relaterte emner