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.
“Bestu sjálfboðaliðakerfi eru ósýnileg sjálfboðaliðunum en augljós skipuleggjendum.
Á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
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ð getutakmö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→assignmentstournaments→volunteer_registrations→profilestournaments→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
Tenglar og heimildir
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 →Sumarhus Alpha
Fullvalda gervigreindarinnviðir: 5 Go-umboðsmenn, Rust MCP-þjónn, NATS JetStream, 21 módel hjá 7 þjónustuaðilum, 15 gámar, CI/CD í framleiðslu. Raunhæft kerfi og tilraunastofa, byggt frá grunni síðan 2022.
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.