Fara beint í efnismarason.is
  • Heim
  • Um mig
  • Verkefni
  • Blogg
  • Hlaðvarp
  • Aðföng
  • Samband
EN

Magnús Smári Smárason

RannsóknirSkrifHlaðvarpHafa sambandGitHubLinkedIn
English

© 2026 Magnús Smári Smárason

Veritas in praxi

Til baka í verkefni
ViðskiptavinurÍ vinnslu

Sjálfboðaliðakerfi Andrésar andar leikanna

Umsjón sjálfboðaliða á elsta skíðamóti Íslands

Frá PIN til úthlutunar á sekúndum — tilbúið kerfi fyrir elsta barnskíðamót Íslands. Um 100 sjálfboðaliðar, 17 viðburðir, 96 próf, engar tölvupóstkeðjur.

Skoða verkefni
“Bestu sjálfboðaliðakerfi eru ósýnileg sjálfboðaliðunum en augljós skipuleggjendum.
— Hönnunarregla, Andar Volunteer Connect
HlutverkAðalforritari
Tímalengd2024–2026
ViðskiptavinurAndrésar andar leikar
StaðaÍ vinnslu
Koparvasaúr böðuð hlýrri koparbirtu í myrkri — táknmynd hraðrar úthlutunar, málverk í smrhsstyle á koldimmu.

Áskorunin

Samhæfing um 100 sjálfboðaliða yfir þriggja daga alpínamót með 17 viðburðum hafði byggt á símtölum, töflureiknum og minni stjórnendanna. Hlutverkaúthlutanir voru handvirkar, átök ósynileg þar til þau komu upp á fjallinu, og enginn einn yfirlit var til yfir hvern var hvar. Sjálfboðaliðar skráðu sig án þess að vita hvort uppáhalds vakt þeirra og hlutverk væri enn laust. Umsjónarmenn áttu ekkert stjórnborð — bara stækkandi innhólf.

Nálgunin

PIN-gætt skráningareyðublað safnar framboðsgögnum eftir degi og vakt, og kallar síðan á PostgreSQL-RPC á miðlaranum sem stofnar sjálfboðaliðasnið atómlega, setur inn skráninguna, keyrir sjálfvirka úthlutun á opin hlutverkaefni og verndar gegn tvítekningum — allt í einni ferð. Stjórnborð umsjónarmanna gefur lifandi yfirlit yfir mönnun viðburða, borðarynni verkefnaborð og fjöldatölvupóst í gegnum Resend. Opinberir stöðuskjáir á fjallinu nota þröngt les-eingöngu-RPC svo keppnisstöðvar sjái lifandi mönnun án stjórnborðsaðgangs. Kóðaskiptingarjafngil með seinkuðu hleðslu heldur skráningarformi hröðu á farsímanetum.

Niðurstöður

~100SjálfboðaliðarSkráðir og sjálfvirkt úthlutaðir yfir föstudags-, laugardags- og sunnudagsvaktir
17ViðburðirAlpínaviðburðir yfir þrjár keppnisdagar, sérhver með morgn- og síðdegishlutverk
96 prófPrófaþekja83 Playwright enda-í-enda prófanir á lifandi vefsvæði + 13 Vitest samþættiprófanir
2024–2026ÚtgáfurKerfið hefur þróast og verið notað yfir þrjár samfelldur mótaár
<600msSmíðatímiVite 8 framleiðslusmíð, skilar í /docs fyrir kyrrstæða hýsingu
0VeikleikarHrein npm-úttekt á öllum framleiðsluháðum

Mótið

Andrésar andar leikar er elsta skíðamót barna á Íslandi. Mótið er haldið árlega á Skálafelli í Borgarfirði og 50. útgáfa þess er árið 2026. Þrír keppnisdagar, sautján alpínaviðburðir og um hundrað sjálfboðaliðar gera þetta að einu stærsta sjálfboðaliðasamhæfða íþróttamóti á Íslandi utan höfuðborgarsvæðisins.

Að keyra mótið krefst þess að skipuleggja hlutverk við hverja hlið og marklínu, fylgjast með því hverjir eru tiltækir hvern dag, fæða alla í matsal og halda tugum skipuleggjenda samhæfðum á fjallinu. Í mörg ár fór sú samhæfing fram í gegnum símtöl, töflureikna og góðvilja.


Skráningarferlið

Sjálfboðaliðar opna eyðublaðið með kóðaorði mótsins — lágmarksaðgangur, ekki öryggisgirðing. Þaðan safnar þriggja flipa eyðublað (fimmtudagur / föstudagur / laugardagur) morgn- og síðdegisvakmeta. Hvert vaktarval krefst hlutverkavals; tiltæk hlutverk eru samhengismeðvæg — Leikjabrautarviðburðir bjóða upp á aðrar valkostir en staðlaðar hlíðstöðvar. Zod-staðfesting með íslenskum villuskilaboðum grípur ófullnægjandi innsendingar áður en þær ná miðlaranum.

Við innsendingu keyrir eitt submit_volunteer_registration RPC-fall inni í PostgreSQL-færslu: stofnar eða uppfærir sjálfboðaliðasnið, setur inn skráningarfærslu, keyrir sjálfvirka úthlutun á opin hlutverkaefni og verndar gegn tvítekningum. Ef RPC-fallið er ekki enn keyrt á umhverfið, notar biðlarinn eldra beint skrif sem varaplan — þannig brjóta flutningar aldrei lifandi skráningareyðublaðið.

Eftir skráningu sýnir staðfestingarskjárinn samantektarspjald, WhatsApp QR-kóða fyrir sjálfboðaliðahópinn og niðurhalanlegt PDF af úthlutun sjálfboðaliðans.

Stjórnborð umsjónarmanna

  • Viðburðastjórnun — stofna og breyta viðburðum, tengja hlutverk með getu­takmörk, skoða mönnunarstöðu per vakt.
  • Sjálfboðaliðaskrá — leitanlegt yfirlit með innbyggðu smáatriðaútsýni, handvirk skráningarfærsla fyrir gönguliðamenn, ársíu fyrir fjölára sögu.
  • Matsal verkefnaborð — samhæfingarglósur per dag um matargerð og sjálfboðaliðafæðingu.
  • Viðburðaskýrslur — daglegar glósur og mönnunarsamantektir með prentþjónustu fyrir fjallsnotkun.
  • Fjöldatölvupóstur — senda mótsfréttir til allra skráðra sjálfboðaliða í gegnum Resend, sannvottað í gegnum Supabase Edge Function svo lykillinn yfirgefur aldrei miðlarann.

Opinberir stöðuskjáir

Sérhver keppnisstöð hefur vefslóð sem sýnir lifandi mönnun — hverjir eru úthlutaðir á þá stöðu, á hvaða vöktum. Þessar síður kalla á get_public_tournament_assignments, þröngt les-eingöngu-RPC sem skilar nákvæmlega þeim reitum sem stöðuskjáir þurfa og ekkert sem krefst sannvottunar. Síðurnar eru hannaðar til að hlaðast hratt á símum á svæðum með takmarkaðan fjallssamband.

Arkítektúr

  • Framendi — React 18, TypeScript (strangur hamur), Vite 8, React Router v6 (HashRouter fyrir kyrrstæða hýsingu), Tailwind CSS, shadcn/ui, React Hook Form + Zod, TanStack Query, Lucide táknmyndir, jsPDF.
  • Bakendi — Supabase PostgreSQL með 9 töflum og fullri Row Level Security. Þrjú miðlara-föll sjá um skráningu, opinberar úthlutunalestur og símanúmerajöfnun.
  • Kóðaskipting — öll 14 stjórnborðsleiðir eru seinkað-hlöðnar með React.lazy(). Skráningarknippi heldur sér lítið fyrir farsímanotendur.
  • CI/CD — GitHub Actions keyrir typecheck, lint og smíði á hverja push. Vercel dreifir við merge á main.
  • Prófanir — 83 Playwright enda-í-enda prófanir í 7 prófaskrám keyrðar á lifandi vefsvæðið. 13 Vitest samþættiprófanir ná yfir skráningarrök og RPC-varaplanshegðun.

Gagnagrunnsskema

Níu töflur með keðjutengdum venslum og fullri RLS:

  • tournaments → events → event_roles → assignments
  • tournaments → volunteer_registrations → profiles
  • tournaments → canteen_notes, event_reports, tournament_implementation_notes

Einstaka skorður á úthlutanir kemur í veg fyrir tvítekningar jafnvel þegar margar skráningar berast samtímis. normalize_phone-fallið hreinsar snið áður en snið er leitað upp, svo "+354 5551234" og "5551234" leysa til sama sjálfboðaliðasnið.

Tæknistaflinn

ReactTypeScriptViteSupabaseTailwind CSSPlaywright

Tenglar og heimildir

Lifandi vefsvæði — Andrésar andar leikar 2026other

Lærdómar

  • Miðlara-RPC-fall fyrir atómlega skráningu útrýmdi kapphlaupsaðstæðum sem komu upp þegar tveir sjálfboðaliðar sendu inn samtímis með biðlarahlíðarskrifum — gagnagrunnsfærslan annaðhvort heppnast að fullu eða rúllar til baka.
  • Samhengismeðvægt hlutverkaval (felur Portavörð/Brautarvinnslu á Leikjabrautarvöktum) minnkar skráningarvillur án þess að þurfa að útskýra muninn fyrir skipuleggjendum. Eyðublaðið þekkir reglurnar.
  • Þröngt opinbert RPC fyrir stöðuskjái er áreiðanlegra en að endurnýta stjórnborðspyrningar — það skilar nákvæmlega því sem fjallsskjáir þurfa og ekkert sem þarfnast sannvottunar.
  • RPC-varaplansmynstrið (reyndu nýja fallið; falltu til baka á eldri skrif ef það er ekki til staðar) gerði dreifingu á nýjum gagnagrunnsflutningunum áhættulausa. Eyðublaðið héldt áfram að virka á meðan fallið var keyrt út.
  • Seinkuð hleðsla allra stjórnborðsleiða héldt sjálfboðaliðabúnt lítið — skráningaupplifunin hélt sér hröð jafnvel á farsímanetum á fjallinu.

Tengd verkefni

Sjá öll verkefni →
Koparvog í jafnvægi böðuð koparbirtu í myrkri — táknmynd verndar og viðskipta, málverk í smrhsstyle á koldimmu.
Verkefni

Arctic Tracker: Gagnagreind í þágu verndar norðurslóðategunda

Gagnavettvangur sem samþættir yfir 473.000 CITES-viðskiptaskrár, IUCN-mat og gögn um ólögleg hald fyrir 43 norðurslóðategundir. Forprent í samstarfi við Dr. Tom Barry er nú í ritrýni.

10 mánuðir síðan
FyrraSmarason.is
NæstaBORG