Back to home

Help & features guide

Everything Bawsala Leagues can do, and how to do it.

Getting started

Create an organization
Go to sign in → choose Google or email → you'll land on the welcome screen → choose Create an organization → name it → you're in.
Invite people
Settings → People & invites → Create invite link → share the link or code.
Your first competition
Dashboard → New competition → choose a format or use Help me choose → add teams → generate schedule → enter scores → publish.
Boys / Girls competition tracks
When creating a division you can set its Track: Open (default), Boys, or Girls. Boys/Girls divisions carry a clear badge in the season list, the division workspace, and reports. So gender-parallel school competitions can run side by side in one season.

Competition formats

League (round-robin)
Everyone plays everyone: the fairest way to rank a field over a season.
Home & away
A league where every pair plays twice. Once at home, once away.
Knockout
Win or go home: fastest way to a champion; great for one-day events.
Swiss
Many players, few rounds: opponents matched by record. Built for chess and large fields.
Double elimination
One loss isn't the end: a losers' bracket gives everyone a second chance.
Groups + knockout
Group stage to sort the field, then a knockout to crown a winner. The World Cup format.
Chess scoring
Half-points, Swiss pairing and Sonneborn-Berger tiebreaks built in.

Activities & scoring

Football
Goals for, against, difference: GF / GA / GD columns.
Robotics
Points for, against, difference: PF / PA / PD columns, typically larger totals.
Chess
Wins, draws, losses, points: goal columns disappear automatically.
Other activities
Any activity that fits a league, knockout, group or Swiss structure works. The scoring adapts.
Importing fixtures & brackets
In the division workspace, use the Fixture import card to paste a CSV of matches (home club, away club, round). Click Validate. The system checks club names against the roster and reports mismatches. Once clean, click Import to generate all fixtures at once. For knockout and double-elimination formats, use Import bracket to set the bracket structure. After import the standings engine picks up automatically.

Sharing & embedding

Publish a public page
From the competition workspace, toggle visibility to Public and click Publish.
Share on WhatsApp
On any public competition page, scroll to Share → Share on WhatsApp. Opens WhatsApp with the link pre-filled.
Download a share image
Share → Download share image: a branded 1200×630 JPEG/PNG carrying the top of the table, the latest results and the champion. Sized for link previews (WhatsApp, X, Facebook) rather than an Instagram feed post.
Download an Instagram Story image
Share → Download Instagram Story: 1080×1920, the same content laid out for a Story, with the safe area clear of Instagram's own controls.
Embed on your website
Share → Embed on your website → copy the iframe code → paste into any website's HTML editor.
Public API
Developers can pull live standings and event data from /api/v0/events. See API docs →

Inviting people & joining

Create an invite
Settings → People & invites → Create invite link → a 20-character code is generated, valid for 14 days.
Share by link
The full link auto-opens the join flow after sign-in.
Share by code
Recipients go to the welcome screen → Join an existing organization → enter the code.
Joining
The recipient signs in → accepts → lands on the dashboard with your organization.
Ask to join an organisation
No invite? On the welcome screen, choose Ask to join my organisation, find it by name and send a request with the job you will do. Its owners and admins see it under Settings, People & invites, Requests to join, choose the job and approve or decline. You are told the outcome, and the welcome screen opens the organisation once you are approved. Only organisations verified by Bawsala can be found.
Verified email domains
Owners and admins of a verified organisation can claim the email domain their staff sign in with (Settings, People & invites, Email domains). Bawsala verifies the claim. After that, people who sign in with that domain see the organisation first when they ask to join, and with Approve matching people straight away on, they join at once with the job you chose. Administrators are always chosen by a person.
New organisations and verification
A new organisation works straight away, privately. Bawsala verifies it before its public site, competitions and festivals can be made public and before it can be found in Ask to join. A sub-organisation made by, or placed under, a verified parent is verified by that parent. To place your organisation under a parent (a school under its directorate), use Settings, Sub-organizations; the parent's managers approve.

Language & accessibility

Arabic & English
Toggle EN|ع in any page header to switch. All pages، including public competition pages، work fully in Arabic with right-to-left layout.
No login for fans
Public competition pages are viewable by anyone with the link. No account needed.

Account & organization

Sub-organizations (ministry → school tree)
Settings → Sub-organizations lets an admin create child organizations under the current one. For example a ministry creates governorates, which create districts, which create schools. Each level has its own workspace, competitions, members, and public site; you switch between them from the organization menu at the top of the sidebar.
Sign in options
Google, or an email with a sign-in link and a 8-digit code you can type instead.
Organization settings
Settings → Organization (name). Public or private is the switch at the top of the Website page.
Programs
Settings → Programs: add activity programs your competitions can use.

Club profiles

Club profiles
Every club has a public profile page at /clubs/[id]. It shows the club name and colors, a short bio (editable by organizers), the club's current standings in each division they compete in, upcoming fixtures, recent results with scores, and the squad list. Club names throughout the platform, in standings tables and fixture lists, link to their profile. To add a bio: go to the division workspace, find the club in the roster list, and click the bio edit disclosure.

Scorekeeper access

Scorekeeper access
Create a scoped access link that lets a designated person submit match results for a division without a full organizer account. Go to the division workspace, open the Scorekeepers panel, and click Create scorekeeper link. Set a label, choose whether submissions require your approval, and set an expiry. Copy the generated link and share it. The scorekeeper sees only the matches in their division. Results submitted directly go live immediately and trigger a standings recompute. Results submitted in approval mode appear in the Pending approvals queue for you to review first.

Announcements

Creating & publishing announcements
Go to Announcements in the sidebar. Click New announcement, enter a title and body (up to 1,000 characters), optionally pin it to the top of the public page, and link it to a specific competition. Save to publish immediately. The announcement appears on your public site and in the notification bell for org members.
Sending by email
Toggle Send email when composing: this triggers an email blast to all confirmed followers of your organisation.
Who receives announcement emails?
Anyone who clicked Follow on your public site and confirmed their email address. Followers can unsubscribe at any time using the link at the bottom of any announcement email.

Notifications

Notifications
The bell icon in the admin header shows unread notifications. You receive a notification when: an organizer publishes an announcement, a match result is confirmed, a scorekeeper submits a result that needs your approval, or a match reminder fires 24 hours before a scheduled fixture. Click the bell to see recent notifications. Click Mark all read or click an individual notification to clear it.

Activity feed

Activity feed
The public competition page shows a chronological feed of competition activity. Result cards show both clubs, their colors, the score, the matchday, and the division. Club names link to their profile pages. Use the share button on any result card to copy a direct link. When standings change after a result, a movement indicator appears in the feed. Announcements also appear in the feed as broadcast cards. The feed updates within 60 seconds of new activity.

Reactions and comments

Match reactions
Any visitor can react to a result card on your public site with 🔥 👏 😮 💪 🎉. No account required. Reactions are local-first (instant, offline-capable) and synced to the platform in the background. Toggle Reactions on or off per competition from Community settings in the competition admin page.
Public comments
Comments on result cards are not shown to visitors. The Comments toggle and moderation queue are available in Community settings, but the public site does not currently render comments.

Registration

Player registration
Organizers review incoming player registrations from the Registrations page (sidebar). Players submit a public form with name, contact, and optional club preference. No account required. Review, approve, or reject individual applications from the admin panel. A payment link can be sent from the same page after approval.
Team (season) registration
Enable team registration on any season from the season workspace (Competitions → [season] → Registration card). Set an optional deadline, capacity, and welcome message. Share the registration link. Review applications in the Pending tab. Approve a team into a division (a club is created automatically) or reject with one click. Confirmation and rejection emails are sent automatically. Add your own questions in the Registration form builder. On the competition's Rules tab, write or upload its rules: teams see them on the registration form, and you can require a tick saying they have read them.

Payments

How do I collect payment from registered teams?
After approving a registration, open the Registrations page and find the confirmed entry. Enter the amount in OMR and click Send payment link. This generates a Stripe Checkout URL and emails it to the contact. The team pays online by card. Payment status updates automatically once the transaction completes.

Player rosters

How do I manage player rosters?
Inside a division workspace, each club card has an expand arrow that reveals the squad. Click Add player to enter a name, number, and optional position. Players appear on the public club profile page. You can export the full roster as a CSV from the club card overflow menu.
Age eligibility bands
In a division's workspace, open 'Age eligibility (birth-year band)' under the clubs step to set the allowed birth-year range (e.g. an under-15 tier). Any rostered player whose date of birth falls outside the band gets a clear 'Outside age band' flag in the roster. Dates of birth are only visible to organizers, never on public pages.
Roster locks
In the season workspace, the Roster lock card sets a freeze date for every club roster in the season. From that date, Add player and Remove are disabled across the season's divisions and a lock notice appears on each roster. Standard practice before finals. Clear the date to unlock.

RSVP & match availability

How do RSVP invites work?
For each scheduled match in the division workspace, open the RSVP & availability panel under the match to send RSVP invites by email with Yes / No / Maybe response options. Responses appear in the same panel. Players do not need an account to respond.

Custom domain

How do I use a custom domain for my public site?
Open Website (menu) and go to Domain. Enter your custom domain (e.g. league.myclub.com) and click Connect. The screen then shows the exact DNS records to add at your domain provider: a CNAME to cname.vercel-dns.com for a subdomain (or an A record to 76.76.21.21 for a root domain), plus a TXT verification record if requested. DNS changes usually propagate in 2-60 minutes. Click “Check status”. Once verified, your public site is served at your custom domain with its own TLS certificate. Note: your own name.asabya.com subdomain is provisioned automatically and needs no setup.

Awards

Season awards & honours
Create awards for a season, Champion, Best Design, Fair Play, and similar, from the Awards & honours panel in the season workspace (Competition → Season). Each award is assigned to a winning team and stays private as a draft until you publish it; published awards appear in the honours section of your public site.

Certificates

Participation & placement certificates
Generate a print-ready certificate for any club in a division. From the division workspace, find the club and open Certificates. Choose Participation, 1st Place, 2nd Place, or 3rd Place. An A4 certificate in your colours opens in a new tab with English and Arabic side by side, whichever language you use, and a Print or save as PDF button. It carries the organisation, club, competition, division, season and date; each takes its Arabic name where you entered one, and its English name otherwise. 1st, 2nd and 3rd place print only for a club that was issued that place.

Player stats & top scorers

Top scorers leaderboard
A top scorers table appears on public club profile and competition pages for football and other goal-based activities. It ranks players by goals, assists, and matches played. Player data is drawn from the roster you enter in the division workspace. Add players there to populate the leaderboard.

Nominations (ministries & federations)

Open a call for nominations
On a season workspace, open the Nominations card and turn on “Open this season for nominations”. Schools and other organizations below yours in the hierarchy can then nominate teams from their dashboards. Add a message to explain deadlines or quotas.
Nominate a team (schools)
When an organization above you opens a call, a “Nominate a team” card appears on your dashboard. Choose the competition, name your club (in English and Arabic), add a contact, and send it. You’ll be notified, by email and in the app, when it’s reviewed.
Approve or reject a nomination
In the Nominations inbox, approve a pending nomination into any division of your season, or reject it. Approving creates the club, owned by the nominating school, so its results roll up to that school, and enrols it into the chosen division. The school’s contact is emailed the decision.

Ministry analytics

See participation across your whole hierarchy
Admins get an Analytics tab in the sidebar. It rolls up competitions, divisions (by open/boys/girls track), clubs, rostered players, matches played and scheduled, and registrations across your organization and every organization beneath it.
How the rollup is scoped
The dashboard walks the organization hierarchy downward from your active organization. You see a school or district because your admins created it. A per-organization table breaks the totals down, with a link to open each one’s workspace.

Series standings (federation editions)

Score a competition across multiple editions
On a competition page, turn on “Run this competition as a points series.” Each season becomes an edition, and its championship division (the top-tier division) final table feeds a combined series standings. How a federation runs one championship across many years.
Choosing the points per position
Set the points awarded for each finishing position, best first (default 25, 18, 15, 12, 10, 8, 6, 4, 2, 1). A club’s series total is the sum across every edition it took part in; equal totals are split by countback. More wins first, then more seconds, and so on.

Delegation entry quotas & deadlines (federations)

Let delegations enter on behalf of their members
A delegation (a governorate, district, school, or member body beneath your federation in the org tree) enters teams into your edition through the nomination flow. This is different from self-serve registration, where a team enters itself. You approve each entry into a division exactly as with nominations.
Capping entries with a quota
On the season page, under “Delegation entry quotas & deadline”, set how many live entries each delegation may hold. The database enforces it. Even if two of a delegation’s admins submit at the same moment, the quota is never exceeded. Rejecting or withdrawing an entry frees a place. No quota set means unlimited.
The hard entry deadline
Set one deadline for the whole edition. After it passes the database refuses new entries, judged by the server clock. A delegation whose own clock is behind cannot sneak in late. The delegation sees a live countdown and is blocked cleanly once it passes.

Auditable draws (contestable-proof group draws)

Publish the seed, then draw
On the season page, publish a seed first (a future block hash, a lottery number, any committed random string) and run the draw. Groups are computed deterministically from the seed and the entrant list. The same seed always gives the same draw. Each draw is recorded as an immutable attempt; a re-draw is a new row, never an overwrite.
Anyone can verify a draw
Each draw has a public audit page (no login): the entrants, the seed, the algorithm version, the resulting groups, and a “Verify this draw” button that recomputes it in your own browser and confirms nothing was changed after the fact. If the stored result were tampered with, verification fails for everyone.

Bulletins & circulars (versioned, acknowledged)

Send circulars your delegations must acknowledge
On a competition page, post a bulletin and require acknowledgement. Each delegation sees it on their dashboard and confirms receipt. Reading is tracked separately from acknowledging. “opened it” is not “confirmed it.” You see who has acknowledged and can remind the rest with one click.
New versions reset acknowledgement
Post an update as a new version and every delegation must acknowledge again. A delegation that acknowledged v1 is not counted as having acknowledged v2. That is the point of a versioned circular: “confirm you have read the CURRENT rules.”
Acknowledgement deadlines
Set an optional deadline. The database refuses acknowledgements after it, judged by the server clock. A delegation cannot backdate a late confirmation. Delegations that miss it show as overdue for follow-up.

The AI Assistant

Ask anything, on any page
The round button with the League mark in the bottom corner opens the AI Assistant on every page: the landing page, the admin app and the public pages. Signed in, it answers using your organization's live data (competitions, festivals, shifts, registrations); signed out, it gives general guidance and answers from the public page you are on. Responses are AI-generated and for guidance only; it never makes a change without asking you first. On a competition page it also reads that competition's own rules and answers from them. An owner or admin can attach a document (PDF, Word, Excel, CSV or text, up to 4 MB) and ask it to enter what the document lists, such as teams into a division, festival sessions, a festival roster or the rules, or to set the competition up from its rules. It shows every change first, and nothing changes until you tap Apply.
Suggested prompts + Explain this page
Tap a suggestion to start: How do I get started?, Explain this page, What can you do?, or Report a problem. “Explain this page” tells you what the screen you're currently on is for and the main actions available there.

Carry a series forward between editions (federations)

Reuse last edition's quotas and seeding
When you create a new edition (season) of a recurring competition, open the season workspace and use “Carry over from the previous edition”. It copies each delegation's entry quota from the last edition and carries the previous champions' seeding (from that edition's championship division final standings). A preview shows exactly what will be added before you confirm.
Safe to run more than once
Carry-over is idempotent: running it twice never doubles a quota, and any quota you already set by hand on the new edition is skipped and never overwritten. The preview marks those as skipped.

Cross-event series: one table across many competitions

Aggregate different sports into one standings
A cross-event series (Series in the sidebar) scores several distinct competitions, say a football competition, a robotics cup and a chess open, into a single aggregated table, awarding points per finishing place with the same system as a single-competition series. A club that competes in more than one contributes to its combined total.
Add source competitions
Create the series with a name and a points-per-place list, then add source competitions from your own organisation. Each source contributes its championship-division final standings; the aggregated table updates automatically. Only this organisation's competitions can be sourced.

Protests & appeals (federations)

File a protest against a result or decision
In the season workspace, open “Protests & appeals” to file a protest. Pick what it concerns (match result, player eligibility, conduct, scoring, other), give it a title and the details. The filing is timestamped by the server and recorded permanently; it cannot be edited or deleted afterwards.
Rulings are immutable; a reversal is a new ruling
A federation admin records a ruling (upheld, dismissed, partially upheld, withdrawn) with a rationale. Rulings are never edited or deleted. If a decision is overturned, a NEW ruling is recorded that supersedes the earlier one, and both remain on the record. The ruling in force is always the latest; the full history is the audit trail.

Records (federations)

Keep official records
Records (Records in the sidebar) hold official federation records. Most goals in a season, fastest time, highest score. Create a record category with its unit and whether a higher or a lower value counts as a new record, then log each performance with the holder, value, where it was set, and the date.
Breaking a record is a new entry
A record stands until it is broken. Breaking it logs a NEW entry that supersedes the previous one. Records are never edited or deleted, so a category's entries are the record's full progression. A break must actually improve on the standing record (higher, or lower, per the category); the standing record shown is always the current best.

Accreditation & visa letters (federations)

Issue badges with zones and validity
In Accreditation (sidebar), first define your access zones (field of play, media tribune, VIP lounge…), then issue a badge for each person. Category (athlete, coach, official, media, VIP, staff), the zones it grants, and a validity window. Each badge gets a unique serial. Badges are tamper-proof: they are issued and revoked only through these actions, never hand-edited, and revoking one is a permanent transition.
Print a visa support letter
For international participants, open a badge's “Visa letter” to get a printable support letter on the federation's name, confirming the holder, nationality, accreditation category, event, and dates, for use in a visa application. A revoked badge's letter is clearly marked as no longer valid.

Officials, panels & conflict of interest (federations)

Register officials and panels
Officials (sidebar) holds your referees, judges, jury members and commissioners with their licenses and their affiliation (club/delegation). Create a panel, a protest jury, judging or appeal board, and list the parties it judges, then appoint officials to it as chair or member.
Neutral panels: conflict of interest
A panel must be neutral. If an official is affiliated with one of the parties the panel judges, they have a conflict of interest and the system refuses to appoint them. Unless you explicitly waive the conflict and record a reason. The waiver is kept on the panel, so who sat despite a conflict, and why, is always on the record.

Structured results feed (media & partners)

One machine-readable feed per public competition
Every public competition publishes a structured, versioned results feed at /api/v0/events/{eventId}/feed. One JSON document with the competition details, the full standings, and every match with per-side scores. It is world-readable (no key), CORS-enabled, and cached, so a federation, a ministry, or a broadcaster can ingest live results directly instead of scraping the site.
How partners use it
Point any system at the feed URL for a published competition and it receives a stable schema (feed_version 1.0, documented in RESULTS_FEED.md): standings sorted by rank, results with home/away scores, and the generation timestamp. Only public competitions are exposed. A private or draft event returns 404. Additive fields never break the version; consumers should ignore unknown fields.

Integrity & discipline (federations)

Raise and review integrity cases
Integrity (sidebar) is the federation's case management for age fraud, doping, match-fixing, eligibility and misconduct. Raise a case against an athlete, club or official with a category and severity, then move it through a review lifecycle. Open → under review → substantiated or dismissed. A case cannot skip straight to substantiated, and once resolved it is terminal; who resolved it and when are recorded. Cases cannot be edited or deleted directly.
The disciplinary register
The register holds every sanction, ban, suspension, fine, warning, points deduction, with its window and an optional link to the case that caused it. Whether a sanction is currently in force is computed from its dates and whether it was lifted early (lifting is a recorded action, never an edit). Records are immutable, so the register stands as the federation's audit trail.

Judge analytics (judged sports)

Judge analytics: how each judge compares
Judge analytics (sidebar) is for judged competitions, robotics, artistic events, where a panel scores each team. It only reads: scores are entered on Judging, by each judge on their own device or by an owner or admin for a paper judge, and appear here as they are saved.
Bias & spread vs the panel consensus
For every entry the panel consensus is the mean of the judges' scores. The analytics table shows each judge's bias (their average signed deviation. Positive means they lean high, negative means low) and spread (how far their scores sit from consensus on average), with the most biased judge ranked first. It surfaces an outlier or a consistently generous or harsh judge across the competition.

Bulk certificates & QR verification

Issue certificates for a whole division
In the division workspace, open “Certificates (issue & verify)”. Participation certificates go to every club in one action. 1st, 2nd and 3rd place go only to the club(s) holding that place, from the published judged ranking or, once every match is scored or cancelled, the final standings. Open the print sheet: every certificate renders on its own page, ready to print or save as PDF. Issuing never duplicates and never changes an existing serial, so printed certificates stay valid. Individual certificates can be revoked.
Every certificate is verifiable by QR
Each issued certificate carries a unique serial (CERT-XXXXXXXX) and a QR code. Scanning it opens a public verification page, no login, that confirms ✓ Authentic with the issuer, club, competition, type and issue date, or shows ✗ Revoked / Not found. Schools and parents can trust a certificate because anyone can check it against the issued-certificate registry in real time.

Blackout calendar & matchday planning

Record the dates fixtures must avoid
In the season workspace, “Blackout calendar & matchday planning” holds the periods matches must not land on. Ramadan, exam windows, holidays, or a weekly rest/prayer day (e.g. every Friday). One-click presets cover the common Gulf cases; every blackout has a kind and an optional label, and season blackouts sit alongside org-wide ones.
Plan matchday dates around the blackouts
Pick the first matchday's date and a cadence (e.g. weekly) and every matchday in the season gets a date that skips all blackouts. A matchday whose nominal date falls inside Ramadan moves to the first clear day and the calendar shows “moved to avoid Ramadan”. The rest of the schedule shifts with it rather than piling onto the blackout's edge. Kickoff times are still set per match in the division workspace.

Qualifier → final advancement

Advance a qualifier's top finishers into the final
In the qualifier division's workspace, open “Advance to final”. Pick the final division (any other division in the same season) and how many qualify, then Preview: it shows exactly who would advance by final standings, seeded by finishing position, and warns if the qualifier still has unscored matches. Apply registers them into the final; generate the final's schedule or bracket as usual from there.
Explicit, idempotent, never destructive
Advancement is always an explicit admin action, never automatic. Applying twice never double-seeds; a club already entered in the final is shown as “already entered” and kept exactly as-is (its entry and seed are never overwritten). A tie at the qualification cutoff advances all tied clubs rather than arbitrarily excluding one, and both divisions must belong to the same organization. In a judged division the ranking is the judged ranking, and you can choose a minimum score instead of a number of places. To send qualifiers into a competition run by an organisation above yours, such as the directorate or the Ministry, use “Send qualifiers to the next round” on the division: it uses that call's places and closing time, and sending again skips anyone already sent.

Branding your public site

KPIs at a glance
The top row of the dashboard shows live counts for your organization. Matches played vs scheduled (with a completion bar), results still awaiting entry, upcoming matches in the next 7 days, registered players, active clubs, pending approvals, items to moderate, and published competitions. Tiles link straight to where you act.
Needs your attention
A prioritized action list surfaces only what is outstanding, results to enter, registrations and nominations to review, protests awaiting a ruling, and comments to moderate, each with a one-click link. When nothing is pending it shows an all-clear.
Participation & results trends
Two charts show participation by age band across the organization and the number of results entered per week over the last 8 weeks, so you can see momentum at a glance.

Search & quick jump

Open it anywhere
Press ⌘K (Ctrl-K on Windows) or click Search in the top bar to open the command palette from any page.
Find & jump
Type to filter across navigation, quick actions (new competition, announcement, organization), and your organization's competitions, seasons, divisions and clubs. Use the up/down arrows and Enter to jump; Escape closes.

Events and workshops: plan and book

Build the programme
Open Events, create an event (a festival, conference, workshop, exhibition, open day or school visits) with its dates and venue, then add each workshop, show, talk, exhibition, competition or school visit with its day, time, place, presenter, audience and number of seats. Publish it when it is ready, and copy the public link.
Public booking and QR tickets
Families book for themselves and teachers book for a school group, from any phone, tablet or computer, with no account. Each booking gets a ticket with a QR code; when a session is full, people join a waiting list. The festival page shows a visitor's own tickets and can be installed on their device as an app.
Visitor information and directions
On the festival page, add opening hours, parking, first aid, prayer rooms and lost children, in English and Arabic, and paste the Google Maps link of the venue. Visitors see it on the programme and every ticket, with a directions button.
QR poster and hall screens
Once the festival is published, print the A4 QR poster for schools, gates and buses, and open the hall screen on any TV: it shows what is on now and next, your notice and a QR to the programme, in Arabic and English in turn.

Festival: run it live

Door check-in and walk-ins
The door team opens Door check-in on a phone, tablet or laptop and scans the ticket QR, or types the 10-character code. Someone with no booking is admitted as a walk-in in two taps; they count in arrivals and get a ticket for a certificate.
Control room
The control room shows what is on now and next with arrivals against capacity, open issues and who is on duty with a call button. Change a session to delayed, moved or cancelled with a note: the public programme and every ticket update at once, and the people booked can be emailed. Post a short notice to the top of the public page. Before the festival starts it runs as a rehearsal at a day and time you choose.
Report an issue
Anyone on the team taps Report an issue, picks what happened (medical, safety, lost child, lost item, facilities, crowding, technical) and where, and sends it. A medical, safety or lost child report sounds an alert in the control room until someone acknowledges it; the team marks it in hand, then resolved.
Team roster
List the festival team by role, place and shift, with phone numbers. The control room shows who is on duty right now, and anyone can call or WhatsApp them from the list.
Message attendees
From the festival page, email everyone booked who gave an email, or one session, with each person receiving their own email, or open WhatsApp with the same message ready for a school group.
Festival report
The report shows people booked and who came, attendance and no-shows, seat fill, schools, the visitor rating and comments, and issues with the average time to resolve them, by day, by type and by session. Export bookings and feedback as CSV, or print the report as a PDF.

Judging, feedback and certificates

Judging
The organiser chooses the scoring sheet for each competition on Judging: a ready sheet (robotics and its tracks, drones, cybersecurity, science project, innovation pitch, exam score, Quran recitation, theatre, arts and oratory, school evaluation) or their own, with up to 20 lines, each with its own highest score and an optional weight. The organiser can also choose which judges score each category. Judges pick a category and a team and score each line from 0 up to its highest score; every card is saved under the judge’s own account, and a team counts as scored once every line is saved. Each judge sees only their own scores. The ranking (the sum of the average score per line, each times its weight) is for owners and admins, who can show it to judges and publish it on the public event page. The scores also feed judge analytics.
Attendance certificates
Once a ticket is checked in, its holder can open a certificate in English and Arabic with a QR, and print it or save it as a PDF. A teacher adds the students' names to a school booking so that every student gets their own certificate.
Visitor feedback
After check-in, the ticket asks how it was: one tap from one to five stars and an optional comment. Ratings and comments appear in the festival report.

Every role on any device

My shift
Add each team member's email on the festival Team page. When they sign in with it, My shift opens their role, zone and times, what is running in their zone now and next, who to call, and the buttons their job needs: door staff get Check people in, managers get the Control room, and everyone can report an issue. Before the festival it rehearses day one.
Help point phone
Set a help point number under Visitor information. It appears as a call button on the public page and on every ticket, and on the hall screen, so a parent who loses a child knows who to call.
Install the app
Anyone can add Bawsala Leagues to their phone, tablet or computer from the browser menu, organisers, judges, door staff and visitors alike. Long-press the icon for shortcuts to My shift, Check-in, Report an issue and Judge.
Participation by governorate
Visitors can choose their governorate when they book. The festival report shows people booked and arrived for each of Oman's eleven governorates, how many were reached, and the schools from each; the bookings export includes it.
Access needs
A booker can note access needs such as a wheelchair or hearing support. The door team sees it the moment the ticket is scanned, and it is listed with the booking and in the export.
Urgent alerts on staff devices
Under My shift or in the control room, each team member taps Turn on. From then a lost child, medical or safety report, or any issue marked urgent, arrives on that device at once with the place, even when the app is closed. Send me a test confirms it works.

Your team: jobs, tasks, calendar and chat

Each person sees only their job
An invite link made for a job (Organiser, Judge, Door team, Festival team or Control room) opens the app with only that job's menu, bottom bar and Home. Owners and admins see everything and can preview any job from Home. A job changes what a person sees; what they may change is set by their permission.
Invite and manage people
Settings, People & invites: make a link for a job, for one person or for a group, then copy it or send it on WhatsApp. A link for one person works once; a group link works for up to the number you choose, for 7 days. From the same list, change a person's job or role, or remove them.
Tasks for one or more people
Tasks: a title, a due date and the people on it: one, several, or Everyone. Each person assigned is notified. Mine shows only yours. The person who created a task, or an admin, can remove it.
Approvals
Approvals: send a request to a person. They approve or decline it with a note, and you are told the decision.
Calendar sync
Calendar: every date in one place, for Everyone or Mine. Add to my calendar gives a private link for Google, Apple or Outlook Calendar that updates by itself; sessions and shifts remind you 30 minutes before.
Team chat
One live conversation for the whole organisation, for members only. New messages reach the other members' devices when notifications are on.
Notifications with the app closed
Turn on notifications on Home or My shift (on iPhone, from the installed app). Tasks, approvals, decisions, announcements, results, team messages and urgent festival reports then reach that device.

Key concepts, in pictures

The ideas behind the formats, shown at a glance.

1Head-to-head2Score difference3Score for

Tiebreaks

When teams are level, these criteria decide the order, top one first.

Swiss pairing

Each round pairs players on the same score, so everyone keeps playing.

Advancement

Group qualifiers feed the knockout, and the bracket crowns the winner.

RegistrationMatchdaysPlayoffsFinal

Season timeline

From registration through the matchdays to the playoffs and the final.

Can't find what you're looking for? Email support@asabya.com.

What's new →

Help & features guide: Bawsala Leagues