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.



