Full fart från start till mål — eller slipp skit i resultatlistan.
fartOLa är ett tävlingssystem som funkar i webbläsaren på Linux, Mac, Windows och Android. Varje SI-stämpling sparas som en händelse i en lokal logg*, så resultaten kan räknas fram (och räknas om) när som helst. Phase 2 lägger till MeOS-bryggan (MIP/MOP) så klubbar kan köra fartOLa parallellt med en befintlig MeOS-installation, plus Eventor-cache för 252 000+ löpare med FTS5-sökning, statusmodell i linje med IOF/Eventor (OK · MP · DNF · DNS · DQ · MAX) och tävlingsfas-grind (Förtävling → Tävling pågår) så ingen registrerar löpare när målet redan är öppet.
*Tekniskt: append-only event log med idempotenta händelser — samma stämpling kan skickas in tio gånger utan att räknas dubbelt.
Sju steg från banfil till liveresultat. Samma flöde finns klickbart i demon.
Exportera från Condes som IOF XML 3.0 och dra in filen. Funkar lika bra för Purple Pen, OCAD eller OE — alla banprogram som kan spara IOF XML. Klasserna skapas automatiskt.
Startlista i förväg från Eventor eller IOF XML — eller walk-up på plats.
BSM7 eller BSM8 i USB-porten. Edge-bridgen hittar den.
Varje pinne läses, resultaten räknas fram live från händelseloggen.
Sex mallar att välja på, inklusive ”Skogis” för barnen.
Per klass, i helskärm för publiken eller på en skärm i målfållan.
IOF XML 3.0 till Eventor när tävlingsdagen är slut.
fartOLa bygger på en lokal append-only-logg där varje SI-stämpling är en händelse. Resultaten räknas fram från loggen i stället för att skrivas in i en delad databas. Det gör att flera sekretariat kan jobba samtidigt, att klienter funkar offline, och att en nätdipp inte slutar i att någon måste återskapa läget under press.
Varje punkt är ett konkret val, inte en säljpitch.
Linux-laptop, Mac, Windows, Android-platta. Inga drivrutiner låsta till en plattform, ingen flotta att underhålla.
Varje nod äger sin egen händelselogg. När en nod tappar nätet hänger den inte upp resten — sekretariatet jobbar vidare lokalt och synkar när nätet kommer tillbaka.
Phase 2 talar MeOS Input Protocol (MIP) och MeOS Online Protocol (MOP) över LAN. En klubb kan låta MeOS-sekretariatet vara kvar och köra fartOLa på sidan — bricka i fartOLa, mål i MeOS, och bryggan håller dem synkroniserade.
Stämplingarna ligger som händelser, inte som muterad state. Ändra reducern, räkna om — inget korrupt resultatregister att laga på plats.
Animerad målskärm, ljud, namnuppläsning och ett samlingsbart "Skogis"-kvitto. Rekryteringsverktyg från Phase 3 — inte något vi skjuter på till "sen".
IOF XML 3.0, Eventor REST (cachedcompetitors), MeOS MIP v3.0 + MOP v2.0 över LAN, ROC och SIRAP planerade. En klubb kan köra ett befintligt system primärt och fartOLa parallellt under en eventuell övergång.
Demon är en designprototyp av hela Phase 1-flödet, helt på klientsidan — ingen backend, ingen hårdvara. Tryck på Simulera avläsning i sidopanelen för att låta deltagare komma i mål. Prototypen var designen som Phase 1 byggdes efter; eventuell drift mellan demo och shipped app är feedback i sig.
Vi går inte vidare förrän nuvarande fas använts av en riktig orienterare på ett riktigt arrangemang. Träning räknas.
Node-skript som läser SI-kort via BSM7/BSM8 på Linux och loggar JSON. CRC16-CCITT-validering, SI5/8/9/10/SIAC.
Kör en klubbträning från start till mål på en Linux-laptop. Inget internet behövs. Purple Pen-import, walk-up, DNF/MP-detektering, ESC/POS-kvitto, IOF XML 3.0 export.
Det här. GitHub Pages med klickbar demo och en feedback-knapp innan Phase 2 börjar. Hela flödet i webbläsaren — ingen hårdvara, ingen backend.
Klubben kör befintlig MeOS-installation och fartOLa parallellt över LAN. MIP (fartOLa → MeOS) skickar walk-ups + bricka-bindningar; MOP (MeOS → fartOLa) tar emot mål-event och resultat. Eventor-cachen ger 252 000+ deltagare offline med FTS5-smartsök (diakritik-tolerant, klubb-scope). Eventor startlista-import (REST) lägger upp anmälda i förväg. Hyrbricka-flödet håller koll på 200+ uthyrda SI-kort med kontaktinfo + retur + 30 d PII-scrub. Registreringsdisken pipar in barn i en kö och advancerar automatiskt. Race-phase-grind (Förtävling → Tävling pågår) hindrar registrering efter start. Statusmodellen är utökad till OK · MP · DNF · DNS · DQ · CANCEL · MAX i linje med IOF/Eventor.
100–200 startande på en sanktionerad tävling. Eventor results push, tre+ samtidiga sekretariat med Yjs-CRDT samredigering, åskådar-resultatsida på arena-WiFi, bridge överlever process-kill, race-reset + tävlingsinfo-modal + course-compare. Bygger på MIP/MOP-substratet, Eventor entries och Inställningar-UI:n från 2.0.
Det synliga UX-språnget. Animerad målskärm med TTS, SMS till föräldrar, inbäddningsbar live-widget för klubbens hemsida, speaker-dashboard.
ROC-protokollmottagning, SIRAP TCP-gateway, peer-to-peer sync mellan edge-noder under simulerad partition, Yjs CRDT för samtidig redigering över flera noder.
Mål-kapacitet för femdagars med 25 000+ startande. Partitionerad Postgres per etapp, CDN-tier för 30 000 samtidiga tittare, 4G/5G + Starlink-uplink-playbook.
Ingen av punkterna nedan är en preferens. De kommer från användarna och federationen.
Tjänster som behöver internet finns inte ute på stigen. Edge-noden ska klara en hel tävlingsdag offline och synka när den kommer hem.
Användarna är 40–70 år, tekniskt kunniga men inte utvecklare. Alla strängar börjar på svenska. Engelska kommer sen.
Klubbar äger SI5-kort. Legacy-stöd är inte förhandlingsbart. Samma gäller IOF XML 2.0.3 för äldre banverktyg.
Operatörer jobbar i stress, i solljus, på 13"-laptop. Inga 12px-grå-på-vita texter. 44px minsta träffyta, högkontrast-läge.
Federationen (Eventor) äger deltagar-PII — vi cachar bara person-id + namn för matchning. Hyrbricka-kontakter (REQ-PRIV-002) scrubbas efter 30 dagar. GDPR art. 20/17 i Phase 4.
Appen är AGPL-3.0. packages/sportident är MIT — samma licens som uppströmsbiblioteket vi portar från.
Jonas Hagberg, senior systemutvecklare och certifierad IT-arkitekt på @NBISweden till vardags. Springer för Stora Tuna OK och började faktiskt orientera först på Ösa-träffen 2023, så jag är nybörjare i skogen.
Det som driver mig är tekniskt: göra något modernt och busenkelt att sätta igång, som funkar på Linux, Mac och Android — inte bara Windows, och som kan rulla en hel tävlingsdag på batteri med billig och stabil hårdvara.
fartOLa byggs på lediga kvällar och helger, tillsammans med Claude, Codex och Gemini. Och SI-protokollet visade sig vara mer spännande att gräva i än jag trodde.
Projektet är pengafritt, AGPL-3.0-licensierat och utan exit-mål. Säg hej via GitHub, öppna en issue eller maila fartola@lindan.se. Feedback från riktiga sekretariat och löpare är det enda som styr roadmapen.
fartOLa byggs av och för svenska orienteringsklubbar. Är du operatör, deltagare eller bara nyfiken — prova demon och säg vad du tänker. Det är enklare nu än när Phase 2 är byggd.