Overblik / Case 01

Mellemrum.
Plads til noget nyt.

Mellemrum er en kulturplatform for Aarhus, hvor brugere finder og tilmelder sig koncerter, talks og workshops. Platformen virkede, men koden og datamodellen kunne ikke vokse med den.

Jeg videreudviklede løsningen med en ny komponentstruktur, en normaliseret database i Supabase og en række forbedringer af performance og tilgængelighed.

Kunde
Mellemrum
Type
Produktoptimering
Team
Individuelt projekt
Min rolle
Frontendudvikler
Værktøjer
VS Code · GitHub · Lighthouse
Teknologi
React · Vite · CSS Modules · Supabase
Output
Live site · GitHub-repository
WebudviklingDatabasedesignFrontend-arkitekturTilgængelighed
← Tilbage til projekter
Mellemrums forside vist på en laptop Mellemrum · Forside
01  Audit

Fra 29 fund til en plan.

Casen startede med en teknisk audit af den eksisterende løsning. Hvert fund fik et område, en konsekvens, et løsningsforslag og en prioritet fra 1 til 5. Langt de fleste handlede om struktur, men de højest prioriterede var dem, brugeren mærker direkte: manglende feedback, forkert sidetitel og favicon og manglende tilgængelighed.

Fund pr. område
  • Struktur og navngivning 10
  • UI-konsistens og tilgængelighed 9
  • Robusthed og UI-states 3
  • Performance 2
  • Datamodel 1
  • Uden område 4
Prioritet 5 af 5
  1. 01
    Tilmelding giver ingen beskedBrugeren ved ikke, om tilmeldingen lykkedes.
  2. 02
    Sidetitlen er fra skabelonenFanen og søgemaskiner viser forkert kontekst.
  3. 03
    Forkert faviconFanen viser Vites ikon i stedet for Mellemrums.
  4. 04
    Aria-labels og alt-tekster manglerSiden er svær at bruge med skærmlæser.
  5. 05
    lang="en" på en dansk sideSkærmlæsere udtaler danske ord som engelske.
  6. 06
    Ubrugte mapper og README fra skabelonenRod og misvisende for den næste udvikler.
02  Struktur og data

En kodebase, der kan vokse.

Udgangspunktet var få store sidefiler, ét langt stylesheet og en tilmeldingstabel, der kopierede eventets titel, dato og sted i stedet for at pege på eventet. Jeg delte siderne op i komponenter med egne CSS Modules og normaliserede databasen, så tilmeldinger, brugere og venues har hver deres tabel. Nu skal en ændring kun laves ét sted.

Før

Mappestrukturen før: få store sidefiler

Efter

Mappestrukturen efter: opdelt i komponenter med CSS Modules

Før

Datamodellen før

Efter

Den normaliserede datamodel efter
03  Tilmelding

Et flow, brugeren kan stole på.

Tilmeldingen gemmes nu i databasen, og brugeren får en tydelig bekræftelse. Formularen er flyttet ud i sin egen komponent, så EventPage kun henter eventet og vælger den rigtige tilstand. Arrangøren kan se alle tilmeldinger samlet pr. event og søge i dem.

Før indsendelseTilmeldingsformularen før indsendelse
BekræftelseBekræftelse efter tilmelding
04  Optimering

Hurtigere, og lettere at bruge.

Forsiden henter nu kun de felter, eventkortene bruger, og billederne leveres i den størrelse, kortene viser. Siden har synligt tastaturfokus, en sidetitel pr. side og er testet i Lighthouse og ned til 320 px. Næste skridt er at fjerne de gentagne venue-felter fra events og flytte billederne væk fra Unsplash.

7
felter hentes til hvert eventkort, resten først på detaljesiden
800×600
px billeder i stedet for unødigt store filer
2
komponenter i stedet for én EventPage med fem ansvar
320
px som mindste testede skærmbredde
05  Refleksion

Brugeren først, oprydningen bagefter.

Jeg prioriterede de fund, brugeren mærker direkte, før den interne oprydning. Fravalget var, at nogle strukturfund blev udskudt. Jeg lærte, hvor meget en normaliseret datamodel og små komponenter letter senere ændringer.

06  Forretningspotentiale

Værdi for brugere, arrangører og udviklere.

Brugerne får en hurtigere side og vished om, at tilmeldingen er gået igennem. Arrangøren får overblik over tilmeldinger, og en kodebase, hvor ændringer kun laves ét sted, gør videreudvikling billigere.

Udviklet af
  • Cecilie Vestergaard Andersen
Næste projekt
Case 02
Vuuh
Optimering af onboarding