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

  • Implementering av både abonnements- og avmeldingsfunksjonalitet med lenke til personvern.html.
  • Korrekt frontend- og backend-validering.
  • Bruk av database for lagring og håndtering av eksisterende e-postadresser.
  • Responsivt design og universell utforming i frontend.
  • Tydelig GDPR-informasjon med fungerende lenke til personvern.html.
  • Klar og velfungerende JSON-kommunikasjon mellom frontend og backend.
  • Korrekt utformet Dockerfile for prosjektet.
  • Innhold og struktur i personvern.html er relevant og informativ.

Forslag til løsning



Relaterte kompetansemål

  • planlegge, utvikle og dokumentere løsninger med innebygd personvern og sikkerhet
  • planlegge, utvikle og dokumentere løsninger som er energieffektive og bærekraftige
  • planlegge, utvikle, sette opp og dokumentere systemer for datainnsamling, analyse og visualisering
  • planlegge, utvikle, sette opp og dokumentere integrasjoner mellom ulike systemer og databaser
  • utvikle og tilpasse brukergrensesnitt som ivaretar krav til universell utforming
  • velge og bruke relevante rammeverk og moduler til utvikling
  • beskrive hvilke krav som ulike løsninger stiller til infrastruktur, og hvilke muligheter og begrensninger som følger av infrastrukturen
  • utforske og vurdere eksisterende og nye teknologier og bransjerelevante kodespråk

Relaterte emner