CLIENT: Tangkær Fodboldkreds🇩🇰Denmark

Sunday League - League Management Platform for Amateur Football

League Manager for a Danish Amateur Football Association

Designed and built a clickable league management console for a volunteer-run county football association in Aarhus: a weekend dashboard with referee coverage and weather risk, every fixture with its officials and team sheets, results checked against three submissions, and discipline cases that turn cards into sanctions from the association's own tariff.

Scope of Work
Product design, UI build and clickable demo
Industry
Sports / League Management
Mobile
Compliance & Certifications
GDPRDanish Data Protection ActBørneattest

Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.

Impact

5 Screens
Clickable end to end

Dashboard, fixtures with a week-by-venue calendar, fixture detail, results approval and discipline cases. Every one of the 32 demo fixtures opens its own detail page with officials, team sheets, result and history.

3 Submissions
Compared on every result

The referee, the home club and the away club each report the score. Results where all three agree are approved automatically, differences show in red, and correcting a result needs a reason.

5 Cautions
Open a case automatically

Reaching 5 cautions in a season opens a 1-match suspension case, and each dismissal code carries the tariff's standard sanction, such as 3 matches and a DKK 500 club fine for abusive language to an official. All client policy.

32 Fixtures
Realistic demo data

Two match weekends across 8 divisions, with 12 clubs, 8 venues, 14 referees, 14 cautions and dismissals and 12 discipline cases at every stage from open to appeal.

The Problem

Tangkær Fodboldkreds ran about 380 teams from 96 clubs on a spreadsheet per division, an inbox per competition secretary and paper cards that referees posted or photographed after each match. Parents learned about postponements from a Facebook post, a caution from Saturday often reached the discipline committee the following Thursday after the player had already played again, and nobody could say with confidence which youth coaches had a current child protection certificate.

Our Solution

Sunday League runs the whole season in one place: fixtures with their pitches, referees and team sheets, results confirmed against the referee's and both clubs' reports, and discipline cases built from the referee's cards with the association's tariff, deadlines and suspension preview attached. The dashboard shows each week what needs attention before the weekend.

The Challenge: A Season Run by Volunteers

A county football association depends on volunteer secretaries, referees and coaches who do the work on evenings and match days. The rules they apply come from three places: data protection law, Danish child protection requirements and the association's own competition rules.

Cards That Arrived After the Next Match

Cautions and dismissals travelled on paper or as photos to an inbox, so a suspension was often decided after the player had already played again. Caution thresholds were counted by hand across divisions.

Three Versions of Every Result

The referee and both clubs each had their own record of the score and the cards. Disputes were settled by email, and missing referee reports were noticed only when a table looked wrong.

Children's Data Handled With Care

The GDPR and the Danish Data Protection Act apply, and Tangkær's own policy registers every player under 18 with a named guardian who gives each consent. Youth names and birth dates had been forwarded in unprotected spreadsheets, and børneattest status for youth coaches was not tracked.

Rules That Belong to the Association

Suspension lengths, caution thresholds, fines and team sheet deadlines are Tangkær's competition rules, not law, and they change from season to season. They had to be applied the same way by every officer and stay configurable.

Our Approach: From Competition Rules to a Clickable Console

01

Spec and Rules Research

Mapped 12 signed-in roles plus the public, 67 screens across the league admin console, the club secretary area, the referee app, the player and parent app and the public league site, and the data model for seasons, divisions, venues, fixtures, team sheets, result submissions, misconduct events, discipline cases, appeals, consents, child protection checks, invoices and fines. Wrote down the rules the design follows: the GDPR and the Danish Data Protection Act, guardian consent for children, børneattest records and the association's own codes and tariffs.

02

Clickable Demo on a Production UI Kit

Built 5 key screens of the league admin console on a production dashboard kit: the dashboard with KPIs, weekend referee coverage, pitches in use, role-based work lists, needs-attention checks and the DMI weather watch; fixtures with filters and a week-by-venue calendar; fixture detail with reschedule, postpone, award and void actions that update the status and history; results approval; and discipline cases with evidence, tariff, suspension preview and the issue decision flow. All actions run on local state.

03

What a Production Build Adds

Integrations with Vipps MobilePay, Nexi and Betalingsservice for fees, MitID through a broker for guardian consent, DMI open data for weather warnings, Dataforsyningen address lookup, GatewayAPI SMS, Postmark email, push notifications and e-conomic export. Staff auth by role, an append-only audit log, restricted safeguarding records, a fixture generator backed by a constraint solver, and the remaining screens: appointments, safeguarding, finance, settings, the club area, the offline-first referee app, the player and parent app and the public league site.

Why It Works: Problems Found Before Kick-Off

The Week's Risks in One List

Needs attention flags a suspended player named in a squad, results with no referee report, youth coaches or a referee on a youth match without a børneattest on file, team sheets missing at the 60-minute deadline and appeal hearings due. Each item links to the fixture or case.

One Result From Three Reports

Results approval lines up the referee's, home club's and away club's scores with the cards reported. Disputed rows show each side's notes, so the secretary approves or corrects with the reason on record.

Sanctions From the Tariff

Each case shows the trigger, the evidence thread, the player's season record and the standard sanction from the tariff. The suspension preview lists the fixtures the player will miss, and varying the tariff in the decision needs reasons.

Minimal Data on Children

Youth team sheets show first name and last initial only, youth cases go to the club secretary and the named guardian, and public pages never show youth player names. A børneattest is recorded as a status and date, never its contents.

Related case studies

View all: Sports & outdoors
Logo
Oceanlab

Enterprise Software Engineering - Human + AI

Languages

Locations

Global Headquarters

21 Merchant Road, 3rd Floor, Singapore 058267

Main corporate office and leadership operations

North America Office

548 Market Street, PMB 12345, San Francisco, CA 94104

Client operations and business development

India Office

402 Shivalik Shilp II, SG Highway, Ahmedabad 380015

Engineering and delivery center

© 2026 - Copyright. All Rights reserved Oceanlab