Telegramda yozing@Odilient

SAAS

Pitch — XCeed Football Cup

XMUM Football Club uchun jonli futbol turnirlari platformasi: muxlislar uchun real vaqtdagi hisoblar, turnir jadvallari, pley-off to‘rlari va jamoa tarkiblari, o‘yin kuni uchun esa admin va hisob yurituvchi vositalari.

XMUM Football Club
Mijoz
Sport
Soha
2 oy
Muddat
2026
Yil
Boshlang‘ich nuqta

Muammo

XMUM Football Club’ga kampus turnirlari mavsumini yuritish uchun yagona joy kerak edi: muxlislar uchun o‘yinlar taqvimi, jonli hisoblar, turnir jadvallari va pley-off to‘rlari, tashkilotchilar va hisob yurituvchilar uchun esa o‘yin kunida ishlaydigan boshqaruv paneli. Hisob har bir tomoshabinga real vaqtda yetib borishi, hisob yurituvchilar gollar va kartochkalarni o‘yin davomida kiritishi, xato bosilgan tugma esa hech qachon guruh jadvalini buzmasligi yoki pley-offda noto‘g‘ri jamoani keyingi bosqichga o‘tkazib yubormasligi kerak edi.

Biz nima qildik

Yechim

Pitch’ni Next.js 16, React 19 va Supabase’da qurdik. Postgres Row Level Security uchta rolni — administrator, tashkilotchi va hisob yurituvchi — nazorat qiladi, ma’lumotlar bazasi triggerlari esa turnir qoidalarini majburiy qiladi, shuning uchun interfeys chetlab o‘tilsa ham noto‘g‘ri holatlar rad etiladi. Supabase Realtime hisob o‘zgarishlarini ommaviy sahifalarga darhol yuboradi. Tashkilotchilar aylanma tizim, «guruh + pley-off» yoki faqat pley-off formatidagi turnirlarni sozlaydi, X-CEED 2026 Football Cup esa xceed.my’da jonli ishlaydi.

Texnologiyalar
Next.jsReactTypeScriptSupabasePostgreSQLTailwind CSSVercelVitestPlaywrightSentry
Parda ortida

Loyiha qanday yaratildi

Universitet klubi uchun jonli futbol turnirlari platformasi

Pitch — Malayziyadagi Xiamen universiteti (Xiamen University Malaysia) qoshidagi XMUM Football Club uchun biz qurgan futbol turnirlarini boshqarish platformasi. Muxlislar klub mavsumidagi har bir turnir bo‘yicha jonli hisoblar, o‘yinlar taqvimi, turnir jadvallari, pley-off to‘rlari, eng yaxshi to‘purarlar va jamoa tarkiblarini ko‘radi; tashkilotchilar va hisob yurituvchilar esa o‘yin kunini boshqarish vositalarini oladi. Uning asosiy turniri — X-CEED 2026 Football Cup — xceed.my saytida o‘tadi.

XCeed Football Cup

X-CEED 2026 Football Cup 2026-yil 26–30-iyun kunlari XMUM stadionida sakkiz jamoani to‘pladi. Format — aylanma tizim va pley-off: ikki guruh, keyin yarim final va final. Birinchi guruh o‘yinidan finalgacha butun turnir Pitch’da o‘tdi; finalda XMUM FC Team A El Cuervo FC ustidan 4–3 hisobida g‘alaba qozondi. Turnir sahifasida chempion, yakuniy natijalar lentasi hamda jonli o‘yinlar, taqvim, jadval, pley-off to‘ri, to‘purarlar va jamoalar tablari ko‘rsatiladi.

Asosiy imkoniyatlar

  • Real vaqtdagi jonli hisoblar — bosh sahifa, turnir sahifalari va hisob yurituvchi paneli Supabase Realtime orqali Postgres o‘zgarishlariga obuna bo‘lgan, shuning uchun kiritilgan gol ommaviy sahifalarda sahifani yangilamasdan paydo bo‘ladi.
  • Uchta turnir formati — aylanma tizim, pley-off bosqichli aylanma tizim yoki to‘g‘ridan-to‘g‘ri pley-off; pley-off to‘ri 1/16 finaldan boshlab istalgan bosqichdan boshlanishi mumkin.
  • O‘yinning to‘liq hayot sikli — o‘yinlar rejalashtirilgan holatdan jonli, tanaffus va tugagan holatlarga o‘tadi; gollar (ixtiyoriy ravishda muallifi va daqiqasi bilan), kartochkalar va o‘yinchilar statistikasi qayd etiladi.
  • Guruh bosqichidan pley-offgacha — teng ochkolarda saralash qoidalarini yoqib-o‘chirish mumkin bo‘lgan guruh jadvallari, tahrirlanadigan keyingi bosqichga chiquvchilar ro‘yxati, ular asosida tuzilgan pley-off to‘ri va oldingi bosqichlar tugashi bilan keyingi bosqich o‘yinlarini navbatma-navbat rejalashtirish.
  • Hisob yurituvchi havolalari — tashkilotchilar hisob yurituvchilarni turnir yoki o‘yin bo‘yicha tayinlaydi, har bir o‘yin uchun esa tokenli, yangilanadigan havola yaratish mumkin: u faqat o‘sha o‘yin uchun ixcham panelni ochadi.
  • Tashkilotchilar uchun back-ofis — turnirni sozlash ustasi, CSV orqali o‘yinchilarni import qilish imkoniyati bilan jamoalar va tarkiblar, o‘yinlar taqvimini generatsiya qilish, guruhlarga taqsimlash va birinchi kirishda parolni majburiy almashtirish bilan foydalanuvchilarni taklif qilish.
  • Ulashishga qulay sahifalar — generatsiya qilinadigan Open Graph rasmlari, har bir turnir va jamoa uchun metama’lumotlar hamda o‘rnatiladigan PWA.

Arxitektura va texnologiyalar

Frontend

App Router bilan Next.js 16.2 va React 19.2, TypeScript, Tailwind CSS 4 va Radix UI primitivlari; ular kichik dizayn tizimi sifatida tashkil etilgan, o‘yin kartochkalari, turnir jadvallari va pley-off to‘ri uchun Storybook hikoyalari bor. Next.js 16’da middleware o‘rnini bosgan proxy.ts fayli admin. va score. subdomenlarini tegishli marshrut guruhlariga yo‘naltiradi va ikkala bo‘limni Supabase Auth bilan himoyalaydi.

Postgres’dagi ma’lumotlar va qoidalar

Supabase Postgres, Auth va Realtime’ni taqdim etadi. Sxema 38 ta migratsiya orqali rivojlangan, turnir qoidalarining aksariyati esa faqat interfeysda emas, ma’lumotlar bazasida yashaydi. Row Level Security tashkilotchilar va hisob yurituvchilarni faqat o‘z turnirlari va o‘yinlari bilan cheklaydi, triggerlar esa minimal tarkib hajmini, guruhlarga to‘liq taqsimlashni, o‘yin bosqichlarini, boshlanish vaqtlarini va pley-off boshlanishidan oldin guruh bosqichi tugaganini majburiy tekshiradi. Pley-off to‘rini qayta tiklash ommaviy mijozlar bajara olmaydigan himoyalangan ma’lumotlar bazasi funksiyasi orqali o‘tadi, admin amallari esa audit jurnaliga yoziladi.

Biznes mantiq va testlash

Qulflash shartlari, o‘yin holatlari o‘rtasidagi o‘tishlar, keyingi bosqichga chiquvchilarni tanlash, o‘yinlarni rejalashtirish va turnirning tayyorligi — 20 ta to‘plamdagi 300 ga yaqin Vitest test holati bilan qoplangan sof TypeScript modullari. Playwright tizimga kirish, admin konsol, turnir sahifalari, moslashuvchan maketlar va ishlash vaqtidagi xatolarni aniqlashni qamrab oladi. Minimal tarkib hajmi va guruhlarning to‘liqligi kabi muhim qoidalar uch darajada majburiy qo‘llanadi — sof yordamchi funksiya, server tomonidagi tekshiruv va ma’lumotlar bazasi triggeri, shuning uchun bitta qatlamdagi xato noto‘g‘ri ma’lumotni o‘tkazib yubora olmaydi.

Infratuzilma

Ilova main tarmog‘idan Vercel’ga joylashtiriladi, har bir pull request uchun esa alohida staging Supabase loyihasiga ulangan preview deploy yaratiladi. Migratsiyalar ularga bog‘liq kod birlashtirilishidan oldin qo‘llanadi. Sentry mijoz, server va edge muhitlaridagi xatolar haqida xabar beradi, health endpoint esa ma’lumotlar bazasiga so‘rov yuborib turadi, shuning uchun loyiha turnirlar orasida ham faol qoladi.

Bizning rolimiz

Pitch’ni biz loyihalab qurdik: mahsulot spetsifikatsiyalari, dizayn tizimi, Next.js ilovasi, Supabase sxemasi va RLS siyosatlari, test to‘plamlari va deploy konveyeri. Repozitoriyda 2026-yil maydan iyungacha 380 dan ortiq commit bor, jumladan turnirni avtomatik faollashtirish, admin tomonidagi o‘yin hayot sikli, yangilanadigan havolali yagona hisob yurituvchi paneli va ma’lumotlar bazasi himoyasini kuchaytirish bosqichi.

Tegishli ishlar

Real vaqtdagi bo‘sh vaqtlar va rollarga asoslangan back-ofislarga ega yana bir platforma — Bronjoy. Pitch veb-ilovalar yaratish va raqamli mahsulotlar dizayni bo‘yicha ishlarimizni aks ettiradi.

Birga yaratamiz

Pitch — XCeed Football Cup kabi loyiha kerakmi?

Mahsulotingiz nima qilishi kerakligini ayting. Ish hajmini belgilaymiz, muddatlarni rejalashtiramiz va qat’iy narx yuboramiz — bepul va davom ettirish majburiyatisiz.

Bepul konsultatsiya Majburiyatsiz Tezkor javob