Table of Contents

ကိုယ်ကြိုက်မှတ်တမ်းတင်စာရင်းကို အသုံးပြုခြင်း

Paintball မှာပွဲတွေဟာ မြန်ဆန်ပြီး ဆုံးဖြတ်ချက်တွေဟာ စက္ကန့်ပိုင်းအတွင်းမှာ ဖြစ်ပေါ်ပါတယ်။ Off-the-shelf scoreboard တွေဟာ ဘက်စကက်ဘော (သို့) ဘောလုံးလို အစဉ်အလာ အားကစားတွေအတွက် အမြဲတမ်း ဒီဇိုင်းထုတ်ထားပြီး paintball ရဲ့ ထူးခြားတဲ့ ကစားနည်းတွေအတွက် လိုအပ်တဲ့ ပျော့ပျောင်းမှု မရှိပါဘူး။ အံကိုက်ညီတဲ့စနစ်တစ်ခုက:

  • အရှိန်အဟုန်ရှိ အမှတ်မှတ်ချက်များ update များ များသည် ဖျက်သိမ်းခြင်းများ၊ အလံများ ဖမ်းဆီးခြင်းများ သို့မဟုတ် အမှတ်အခြေခံရည်မှန်းချက်များကို ချက်ချင်းပြန်ဟပ်စေသည်။
  • ကြမ်းတမ်းတဲ့ Template ကို မတင်းမောင်းဘဲ 3-လူသားအသင်းကနေ ကြီးမားတဲ့ ဇာတ်ညွှန်းပွဲများအထိ ပုံစံများစွာအတွက်ထောက်ပံ့မှု။
  • FLT:0 အားဖြင့် ပရိသတ်များအား တက်ကြွစွာ ပါဝင်လာစေရန်၊ တိုက်ရိုက် အချိန်ပေးရန်နှင့် အသင်းဆိုင်ရာ စာရင်းအင်းများဖြင့် အားပေးရန်။
  • တက်ဘလက်များ သို့မဟုတ် တရားသူကြီးများမှ ကိရိယာများမှတဆင့် ဒေတာသွင်းခြင်းများကို အလိုအလျောက်ပြုလုပ်ခြင်းဖြင့် လူသားအမှားများကို လျှော့ချခြင်း။
  • Branding အခွင့်အလမ်းများ ပံ့ပိုးသူ လော်ဂိုများ၊ ဖြစ်ရပ်အမည်များနှင့် အလိုက်အလျောက်အရောင်စခိုင်းများကို ပြသရန်။

အံဝင်ခွင်ကျတဲ့ ဖြေရှင်းနည်းတစ်ခုနဲ့အတူ ဒေတာကိုလည်းပိုင်ဆိုင်နိုင်ပါတယ် နောက်ပိုင်းမှာပွဲစဉ်သမိုင်း၊ ကစားသမား စွမ်းဆောင်ရည်နဲ့ ပြိုင်ပွဲအသွားအလာတွေကို ဆန်းစစ်နိုင်ပါတယ် တစ်ခါသုံး စက္ကူရွက်များ (သို့) ပိတ်ထားတဲ့ ကိုယ်ပိုင်စနစ်များဖြင့် မဖြစ်နိုင်တာတစ်ခုခုပါ။ Directus လို ခေတ်မီခေါင်းမဲ့ CMS ကတော့ ဒါကို ဖြစ်နိုင်ရုံမက ဖြစ်ရပ်တစ်ခုချင်းမှာ ထပ်ကျော့နိုင်စေပါတယ်။

သင့်မှတ်တံဆိပ်နောက်ခံအတွက် Directus ကို အသုံးချခြင်း

Directus သည် Open Source Headless CMS တစ်ခုဖြစ်ပြီးသင်၏ scoreboard application အတွက်စွမ်းအားကောင်းသော backend အဖြစ်ဆောင်ရွက်သည်။ ၎င်းသည် အုပ်ချုပ်ရေးမှူးများအတွက်အသင်းများ၊ပွဲများနှင့်မှတ်တံဆိပ်များကိုတစ်ကြောင်းတည်းကိုမရေးဘဲစီမံခန့်ခွဲနိုင်ရန်အတွက်သန့်ရှင်းပြီးအသုံးပြုသူအတွက်လွယ်ကူသော interface ကိုပေးသည်။ ၎င်း၏ REST နှင့် GraphQL API များနှင့်အစစ်အမှန် WebSocket ထောက်ပံ့မှုပေါင်းစပ်၍ Live scoreboard စနစ်အတွက်အံဖွယ်ရွေးချယ်မှုတစ်ခုဖြစ်စေသည်။

Directus စီမံကိန်းကို စတင်ခြင်း

Directus ကို မိမိကိုယ်ပိုင် ဆာဗာမှာ (ကိုယ်ပိုင်အိုးခံထားရသည်) လုပ်နိုင်သည် (သို့) Directus Cloud ဝန်ဆောင်မှုကို စီမံခန့်ခွဲမှုအတွေ့အကြုံအတွက် အသုံးပြုနိုင်သည်။ ပြိုင်ပွဲ setting အတွက် ဒေသတွင်းကွန်ရက်တစ်ခုတွင်ကိုယ်ပိုင်အိုးခံထားရသည်သည် latency ကိုရှောင်ရှားရန်အကြိုက်ဆုံးဖြစ်ကောင်းသည်။ ဤအဆင့်များကိုလိုက်ပါ:

  1. Directus ကို Docker သို့မဟုတ် Node.js deployment တစ်ခုမှတဆင့် install လုပ်ပါ။ FLT:0 ၏ တရားဝင် quickstart guide က လုပ်ငန်းစဉ်ကို မိနစ်ပိုင်းအတွင်းမှာ ဖော်ပြထားသည်။
  2. သင့်ဒေတာဘေ့စ်ကို ချမှတ်ပါ (PostgreSQL, MySQL, SQLiteSQLite သည် offline အသုံးပြုရန်အံကျသည်။)
  3. Admin user ကို ဖန်တီးပြီး သင့်ပြိုင်ပွဲအတွက် အထူးစီမံကိန်းတစ်ခု ဖန်တီးပါ။
  4. ချက်ချင်း အမှတ်အသားများအတွက် WebSockets ကိုအသုံးပြုရန် စီစဉ်နေပါက Realtime မော်ဒူးကို ဖွင့်ပါ။

ဒေတာပုံစံကို ပုံစံထုတ်ခြင်း

သင့်မှတ်တံဆိပ်ရဲ့ ဒေတာစခီမဟာ သင့်ပြိုင်ပွဲရဲ့ တည်ဆောက်မှုကို ထင်ဟပ်သင့်ပါတယ်။ Directus မှာ စုစည်းချက် (ဇယား) တွေကို ဖန်တီးပါ။

  • အသင်းများအမည်၊ လော်ဂို (ပုံ URL), စာရင်း (ကစားသမားများနှင့် ဆက်ဆံရေး), အဓိကအရောင်။
  • ကစားသမားများအမည်၊ နံပါတ်၊ အသင်း (ဆက်ဆံရေး) ၊ ရွေးချယ်မှု စာရင်းအင်း (ပယ်ဖျက်မှု၊ သေဆုံးမှု၊ ပစ်မှတ်)
  • ပွဲစဉ်များ ပတ်စဉ်၊ ကွင်း၊ စချိန်၊ အခြေအနေ (စောင့်နေခြင်း၊ သက်ရှိခြင်း၊ ပြီးဆုံးခြင်း၊ အပိုအချိန်များ) ၊ ကြာချိန်။
  • အမှတ်များ ပွဲ (ဆက်ဆံရေး), အသင်း (ဆက်ဆံရေး), အမှတ်တန်ဖိုး, အချိန်တံဆိပ် (အထူးသဖြင့်လက်ရှိမှတ်မှတ်သွင်းမှုအတွက်အသုံးဝင်), အမှတ်ပေးပွဲအမျိုးအစား (ပယ်ဖျက်ခြင်း, အလံဖမ်းဆီးခြင်း, စသည်တို့) ။
  • ပြစ်ဒဏ်များ ရွေးချယ်မှု, ကစားသမားနှင့်ပွဲဆက်ဆံမှုနှင့်အတူအပြစ်များ (မနည်း, အကြီးမားဆုံး, ကင်းလွတ်ခြင်း) ကိုနောက်လိုက်ရန်.
  • ပွဲစဉ်ဖြစ်ရပ်များ ပြန်လည်ကစားရန်နှင့် စစ်ဆေးရန်အတွက် အရေးပါသောဖြစ်ရပ်အားလုံး (မှတ်တံဆိပ်ပြောင်းလဲခြင်း၊ ဒဏ်ခတ်ခြင်း၊ အချိန်ဖြတ်တောက်ခြင်း) ၏ မှတ်တမ်း။

ဤအသင်းများကို ချိတ်ဆက်ရန် Directus ထည့်သွင်းထားသော ဆက်စပ်မှု ကွင်းများ (အများအပြားမှ တစ်ဦး၊ အများအပြားမှ အများအပြား) ကို အသုံးပြုပါ။ ဥပမာ၊ Match တွင် အသင်းနှစ်ဖွဲ့ (သို့မဟုတ် အသင်းစုံပုံစံများအတွက် ပိုများများ) နှင့် Score ဝင်ငွေများစွာသည် အချိန်အမျိုးမျိုးတွင် မှတ်တမ်းတင်နိုင်သည်။ တူညီသော Directus instance မှပွဲတော်များစွာ run လုပ်ရန် စီစဉ်ပါက Tournament ကိုစုပေါင်းရန် စဉ်းစားပါ။ ပြိုင်ပွဲတစ်ခုစီသည် ၎င်း၏ ကိုယ်ပိုင်အစီအစဉ်နှင့် စည်းမျဉ်းများရှိနိုင်သည်။

အတည်ပြုထားတဲ့ တရားသူကြီးတွေသာ အမှတ်တွေရေးနိုင်အောင် ခွင့်ပြုချက်တွေကို သတ်မှတ်ပါ။ အများပြည်သူမှတ်တံဆိပ် ရှေ့ပိုင်းမှာ နောက်ဆုံး ဒေတာကိုသာ ဖတ်ရှုခွင့်လိုအပ်ပါတယ်။ ပြိုင်ပွဲအခြေအနေနဲ့ အမှတ်တွေအတွက်သာ စာရေးခွင့် ကန့်သတ်ထားတဲ့ မှတ်တံဆိပ်ထိန်းသိမ်းသူ အခန်းကိုလည်း ဖန်တီးနိုင်ပါတယ်။

Directus Realtime ဖြင့် အရှိန်အဟုန်ရှိ အပေါ်ယံသတင်းများ

Paintball ပြိုင်ပွဲများမှာ အမြန် ရွေ့ရှားမှုများကြောင့် အရှုပ်ထွေးမှုဖြစ်ပေါ်စေသည်။ Directus ကို Realtime module ကို ၀င်ရောက်စွာပြုလုပ်ခြင်းဖြင့် မည်သည့်အစုအဝေးမဆို ပြောင်းလဲမှုများကို လက်မှတ်ထိုးနိုင်သည်။ တရားသူကြီးက အမှတ်တစ်ခုသို့မဟုတ်ပွဲအခြေအနေကိုပြောင်းလဲတဲ့အခါ ရှေ့တန်းသည် WebSocket မှတစ်ဆင့် update ကို ချက်ချင်းလက်ခံသည်။

သုံးဖို့:

  • သင့်ရဲ့ ရှေ့ဆုံး စီမံကိန်းမှာ FLT:0 ကို တပ်ဆင်ပါ။
  • Directus instance ကို WebSocket ချိတ်ဆက်မှုတစ်ခု ဖန်တီးပါ။
  • အချိန်နဲ့တပြေးညီဖြစ်စဉ်များအတွက် မှတ်များ သို့မဟုတ် ပွဲများ စုစည်းမှုကို လက်မှတ်ထိုးပါ။
  • , နှင့် ဖြစ်ရပ်များကို နားထောင်ပြီး UI ကို သင့်လျော်စွာ update လုပ်ပါ။

ဤနည်းလမ်းသည် မဲဆန္ဒထုတ်လုပ်မှုလိုအပ်ချက်ကို ဖယ်ရှားပြီး အမှတ်တံဆိပ်ကိုကြည့်ရှုသည့် ကိရိယာတိုင်းကို synchronized ဖြစ်နေစေသည်။ တစ်ပြိုင်နက်ပြိုင်ပွဲများစွာရှိသည့် ပြိုင်ပွဲကြီးများအတွက် Bandwidth ကိုလျော့ချရန်အတွက် သတ်မှတ် Match ID များအတွက် Scope ကိုက်ညီသော WebSocket Channel များကိုအသုံးပြုရန်စဉ်းစားပါ။

Deep Dive: WebSocket Connection Management ကို အသုံးပြုရန်

ခိုင်မာတဲ့ scoreboard ကိုတည်ဆောက်တဲ့အခါ handle connection ကို gracefully ကျဆင်းစေပါတယ်။ WebSocket က client ကနေ FLT:4 နဲ့ FLT:5 အဖြစ်အပျက်တွေကို Subscribe လုပ်ပါ။ ချိတ်ဆက်မှုဖြတ်တောက်တဲ့အခါ exponential backkoff ပြန်လည်ဆက်သွယ်မှုကို 1 စက္ကန့်နှောင့်နှေးမှုနဲ့စပြီး စက္ကန့် 30 အထိ နှစ်ဆလုပ်ပါ။ Directus Realtime module က အလိုလျောက်အားဖြင့် စက္ကန့် 30 စက္ကန့်တိုင်း နှလုံးခုန်နှုန်းကိုပို့ပေးတယ်။ နှလုံးခုန်နှုန်း သုံးခုပျောက်သွားရင် ချိတ်ဆက်မှုပျောက်သွားတယ်လို့ ယူဆဖို့လုံခြုံပါတယ်။

ရှေ့ဆုံး ပြခန်း တည်ဆောက်ခြင်း

ရှေ့ပိုင်းမှာ ကစားသမားတွေ၊ တရားသူကြီးတွေ၊ ပရိသတ်တွေ တကယ်တွေ့တာက ဒါကို ဝက်ဘ် အက်ပ်တစ်ခု၊ သီးသန့် တက်ဘလက် ကြားခံတစ်ခု (သို့) စခရင်ကြီးတစ်ခု dashboard အဖြစ် တည်ဆောက်နိုင်ပါတယ်။

ဘောင်ကို ရွေးချယ်ခြင်း

ခေတ်ပေါ် JavaScript framework (React, Vue, Svelte, သို့မဟုတ် Vanilla JS) မည်သည်မျှ အလုပ်ဖြစ်လိမ့်မည်။ သင့်ပြိုင်ပွဲအဖွဲ့သည် နည်းပညာမဟုတ်ပါက script လေးတစ်ခုနှင့်အတူ ရိုးရှင်းသော HTML + CSS စာမျက်နှာတစ်ခုကအလွယ်ကူဆုံးဖြစ်ကောင်းဖြစ်လိမ့်မည်။ ပိုမိုတိုးတက်သောပြန်လည်လုပ်ဆောင်နိုင်မှုအတွက် Directus SDK နှင့် React သည်မပြတ်သားသားသောရွေးချယ်မှုဖြစ်သည်။ Vue 3 သည် Composition API နှင့်အတူ real-time ဒေတာနှင့်လည်းကောင်းမွန်စွာတွဲဖက်သည်။

အသင်းများအတွက်အေးသောဖြေရှင်းနည်းကိုသာသာနှစ်သက်ပါက Alpine.js ကိုသုံးပါက build အဆင့်မရှိဘဲ static HTML သို့ reactive behavior ကိုထည့်သွင်းနိုင်သည်။

Directus SDK နှင့် ပေါင်းစပ်ခြင်း

Directus က REST client နဲ့ real-time client နှစ်ခုစလုံးကို ပေးပါတယ်။ scoreboard အတွက်တော့ ခင်ဗျားက

  • REST API ကို အသုံးပြုပြီး အစောပိုင်းပွဲစဉ် ဒေတာနဲ့ အသင်းသတင်းအချက်အလက်ကို တင်ပါ။
  • တိုက်ရိုက်အတင်ဆက်ချက်များအတွက် WebSocket subscriptions သို့ပြောင်းပါ။
  • အီးယူကို တောက်ပခြင်းမရှိဘဲ အမှတ်တွေကို update လုပ်ဖို့ ဒီဇိုင်းထုတ်ပါ။ (CSS ကူးပြောင်းမှု အကူအညီ)

ဥပမာ ပေါင်းစပ်မှု စီးဆင်းမှု

  1. ရှေ့ပိုင်းအဆုံးကို စစ်ဆေး (လိုအပ်ပါက) သို့မဟုတ် အများပြည်သူ ဖတ်နိုင်သော API token ကို အသုံးပြုပါ။
  2. Directus ကနေ လက်ရှိ ပြိုင်ပွဲစာရင်းကို ယူလာပါ။
  3. တက်ကြွတဲ့ပွဲတိုင်းအတွက် အသင်းနှစ်ခုနဲ့ လက်ရှိ အမှတ်တွေကို ပြပါ။
  4. scores collection ထဲက အပြောင်းအလဲတွေကို လက်မှတ်ထိုးပြီး score display ကို ပြန်လည်ပြသပါ။

UI ကိုမြန်ဆန်စွာထိန်းသိမ်းရန်, batch score update များ: မီလီစက္ကန့်အနည်းငယ်အတွင်းမှာ multiple score ဖြစ်ရပ်များလာပါက, Debounced အခြေအနေ update ကိုသုံးပြီးတစ်ကြိမ်တည်း render ကိုအုပ်စုပါ (ဥပမာ, requestAnimationFrame သို့မဟုတ် 100ms Debounce ကို).

User Interface ကို ဒီဇိုင်းထုတ်ခြင်း

ရှင်းလင်းမှုက အရေးပါပါတယ်။ ကောင်းမွန်တဲ့ အမှတ်တံဆိပ် စီစဉ်မှုမှာ အောက်ပါအချက်တွေ ပါဝင်ပါတယ်။

  • အသင်းအမည်များ (ကြီးမားပြီး ဆန့်ကျင်ဘက်အရောင်များ)
  • Score နံပါတ်များ (အရမ်းကြီးပြီး အဝေးကနေ ဖတ်ဖို့လွယ်ကူပါတယ် Primary Scores အတွက် အနည်းဆုံး 80px font)
  • မက်သ်တာမိုင် (ပြန်တွက်ချက်ခြင်း သို့မဟုတ် ကုန်ဆုံးချိန်)
  • status အညွှန်းကိန်း (ဥပမာ: Playing, Break, Final)
  • ရွေးချယ်စရာ: တစ်ဦးချင်း စာရင်းအင်းအတွက် အပယ်ခံမှု ကိန်းတွက်စက်များ သို့မဟုတ် သေဆုံးမှု-သေဆုံးမှု အချိုးအစားများ။

အနက်ရောင်နောက်ခံမှာ အဖြူရောင်စာသား (ဥပမာ) သုံးပြီး ဖန်သားပြင်ကို ညစ်ညမ်းမှု ရှောင်ရှားပါ။ တုံ့ပြန်မှုရှိရှိရှိ ဒီဇိုင်းက ၅၀ လက်မ တီဗွီနဲ့ တရားသူကြီး တက်ဘလက်မှာ နှစ်ခုစလုံးမှာ အမှတ်တံဆိပ်က ကောင်းမွန်စွာ ကြည့်နေတာကို သေချာစေပါတယ်။ တီဗွီပြသမှုအတွက် ၁၆:၉ ရှုထောင့်အချိုးအစားကို ယူဆပြီး ပြိုင်ပွဲတစ်ခုတည်း ကြည့်ရှုပါ။ မိုဘိုင်း တရားသူကြီး ဖန်သားပြင်တွေအတွက်တော့ ပြိုင်ပွဲများစွာအတွက် tab တွေပါတဲ့ ပိုမိုသန့်ရှင်းတဲ့ စီစဉ်မှုကို သုံးပါ။

အမှတ်များ၊ အချိန်ကာလများနှင့် ပြိုင်ပွဲအခြေအနေများ ပြသခြင်း

ဒေတာစီးဆင်းမှုက ဒီလို အလုပ်လုပ်ပါတယ်။

  • တရားသူကြီးက မိုဘိုင်းဖုန်းတစ်ခုမှာ အမှတ် (သို့မဟုတ် အပယ်ခံပွဲ) ကိုထည့်သွင်းတယ်။ ဒီ POST တောင်းဆိုမှုက Directus API ကိုသွားပါတယ်။
  • Directus က မှတ်တမ်းကို သိမ်းဆည်းပြီး WebSocket မှတစ်ဆင့် create ဖြစ်ရပ်ကို ထုတ်လွှင့်ပေးတယ်။
  • ရှေ့ပိုင်းကပွဲကို လက်ခံပြီး ဒေသတွင်းအခြေအနေကို အပေါ်လွင်စေပြီး အမှတ်ကို ပြန်လည်ပေးသွင်းတယ်။
  • အချိန်ဆွဲစက်ကို စချိန်/အဆုံးချိန်အတွက် Directus ကွင်းများနှင့်အတူ Client-side (ဒေသတွင်းနာရီကိုသုံးပြီး) သို့မဟုတ် Server-side ဖြင့် စီမံခန့်ခွဲနိုင်သည်။ တိကျမှုအတွက် Server-side ချဉ်းကပ်မှုကိုအသုံးပြုပါ-ပွဲစတဲ့အခါ တရားသူကြီးက FLT:7 ကွင်းကိုသတ်မှတ်ပြီး Frontend က ကျန်တဲ့အချိန်ကို တွက်ချက်သည်။ Server သည် Directus စီးဆင်းမှု (သို့မဟုတ်) အသေးစား custom endpoint တစ်ခုမှတစ်ဆင့် စက္ကန့်တိုင်း FLT:8 ကွင်းကို update လုပ်နိုင်သည်။

Match Status အတွက် အငြင်းပွားသူများကို Directus တွင် အခြေအနေကွင်းကို ပြောင်းလဲစေပါ (ဥပမာ: setup မှ playing သို့ finished သို့) ။ ပုံမှန်ပုံစံတစ်ခုက အငြင်းပွားသူများအတွက် timer ကိုစတင်/ရပ်တန့်ရန်၊ တိုးမြှင့်မှတ်သတ်ချက်များနှင့်ခေါ်ယူရန် ခလုတ်များရှိ control panel view ကိုရှိစေရန်ဖြစ်သည်။ ဒါကိုအတည်ပြုရန်လိုအပ်သော သီးခြားစာမျက်နှာတစ်ခုအဖြစ် တည်ဆောက်ပါ။

အံကိုက်ညီသော အမှတ်တံဆိပ်စနစ်၏ အဓိကလက္ခဏာများ

အခြေခံအချက်တွေအလွန်မှာ သင့်ပြိုင်ပွဲကို ထင်ရှားစေဖို့ ဒီ အဆင့်မြင့်အချက်တွေကို စဉ်းစားကြည့်ပါ။

  • ပွဲစဉ်များစွာကိုကြည့်ရှုခြင်း သင်၏ပြိုင်ပွဲသည်တစ်ပြိုင်နက်ကွင်းများတွင်ပြေးဆွဲပါကမှတ်တံဆိပ်ကလက်ရှိပွဲစဉ်အားလုံးကိုပြနိုင်သည် သို့မဟုတ်ကွင်းများအကြားပြောင်းနိုင်သည်။ 2x2 သို့မဟုတ် 3x2 ပaneliများနှင့်အတူ grid layout ကို multi-field display များအတွက်အသုံးပြုပါ။
  • Replay သို့မဟုတ် slow-motion scoreboard ကိုယ်တိုင်အတွက်မဟုတ်ဘဲ undo လုပ်ဆောင်ချက်များကို (သိုလှောင်သမိုင်း) ထောက်ခံနိုင်သည့်အတွက်အမှားများကိုပြင်ဆင်နိုင်သည်။ အချိန်စတိုင်များဖြင့် အမှတ်အသားအပြောင်းအလဲအားလုံး၏မှတ်တမ်းကို အကောင်အထည်ဖော်ပါ။ ထိန်းချုပ်မှုပaneliတွင် နောက်ဆုံးဖြစ်ရပ်ကိုပြန်လည်ပြောင်းလဲစေသော undo last ခလုတ်တစ်ခုပါဝင်နိုင်သည်။
  • Sponsor integration (FLT:0) ကိုဘားတစ်ခုသို့မဟုတ်ပွဲအကြားတွင်လှည့်ပါ။ sponsors အတွက် Directus ကိုသုံးပြီး ရုပ်ပုံကွင်းတစ်ခုနှင့် sort လုပ်စဉ်တစ်ခုရှိသည်။ ရှေ့ဖက်ကတစ်ဆင့်ကတစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်ဆင့်တစ်
  • FLT:0 ပွင့်လင်းမြင်သာသော ပွဲစဉ်များကို အွန်လိုင်းတွင် ထုတ်လွှင့်ပါက အမှတ်တံဆိပ်အလွှာကို iframe သို့မဟုတ် custom RTMP ဖြင့်ထည့်သွင်းပါ။ OBS ကဲ့သို့သော streaming tool များစွာသည် browser window ကိုဖမ်းယူနိုင်သည်။ ဂိမ်း feed ကိုအလွှာထားနိုင်ရန်အတွက် ပွင့်လင်းမြင်သာသောနောက်ခံတစ်ခုနှင့်အတူ အမှတ်တံဆိပ်ကိုဒီဇိုင်းဆွဲပါ။
  • စာရွက်စာတမ်း Backup mode ကို (FLT:0) ဒစ်ဂျစ်တယ်စနစ်ရှိသော်လည်း အမြဲတမ်း ပုံနှိပ်မှတ်တံကတ်နှင့်တံကိုပြင်ဆင်ပါ။ ထို့အပြင်, ဒေသခံသိုလှောင်မှုမှာမှတ်တံကိုသိုလှောင်ပြီးကွန်ရက်ပြန်လာတဲ့အခါ sync ကိုလုပ်နိုင်တဲ့ ရိုးရှင်းသော offline-အတတ်နိုင် fallback စာမျက်နှာတစ်ခုဖန်တီးပါ။

အဆင့်မြင့်: Live Streams အတွက် Scoreboard Overlay

သင်သည်သင်၏ပြိုင်ပွဲကို Live Streaming လုပ်ရန်စီစဉ်နေပါက OBS အပေါ်လွှာအတွက်ကောင်းမွန်သော သီးခြား HTML စာမျက်နှာတစ်ခု ဖန်တီးပါ။ နောက်ခံအားလုံးကိုဖယ်ရှားပါ၊ လုံးဝနေရာချထားခြင်းကိုအသုံးပြုပြီး အသင်းအရောင်များနှင့်မှတ်ချက်များအတွက် CSS ကိန်းရှင်များကိုဖေါ်ပြပါက Streaming အသင်းသည်၎င်းတို့ကို အလွယ်တကူပြင်ဆင်နိုင်သည်။ ပွင့်လင်းမြင်သာသော ကို နှင့်အတူအသုံးပြုပါ။ ဤစာမျက်နှာကို OBS တွင် Browser Source အဖြစ်ထည့်ပါ၊မှတ်ချက်များပြောင်းလဲသည်နှင့်အတူ ၎င်းသည်အရှိန်ကာလတွင် update လုပ်လိမ့်မည်။

အကောင်အထည်ဖော်မှု အဆင့်များ

သင်ရဲ့ အမှတ်တံဆိပ်ကို အစကနေ အသက်ဝင်အောင် တည်ဆောက်ဖို့ ဒီဖွဲ့စည်းထားတဲ့ လုပ်ငန်းစဉ်ကို လိုက်နာပါ။

အဆင့် (၁) ပြိုင်ပွဲစည်းမျဉ်းများနှင့် အမှတ်ပေးမှတ်ပုံတင်ခြင်း

အပိုအခွန်များအတွက် အမိန့်ပေးရန် လိုအပ်သည်မှာ - အပိုအခွန်များအတွက် အမိန့်ပေးရန် လိုအပ်သည်မှာ - အပိုအခွန်များအတွက် အမိန့်ပေးရန် လိုအပ်သည်မှာ - အပိုအခွန်များအတွက် အမိန့်ပေးရန် လိုအပ်သည်မှာ - အပိုအခွန်များအတွက် အမိန့်ပေးရန် လိုအပ်သည်မှာ - အပိုအခွန်များအတွက် အမိန့်ပေးရန် လိုအပ်သည်မှာ - အပိုအခွန်များအတွက် အမိန့်ပေးရန် လိုအပ်သည်မှာ - အပိုအခွန်များအတွက် အမိန့်ပေးရန် လိုအပ်သည်မှာ - အပိုအခွန်များအတွက် အမိန့်ပေးရန် လိုအပ်သည်မှာ - အပိုအခွန်များအတွက် အမိန့်ပေးရန် လိုအပ်သည်မှာ - အပိုအခွန်များအတွက် အမိန့်ပေးရန် လိုအပ်သည်မှာ - အပိုအခွန်များအတွက် အမိန့်ပေးရန် လိုအပ်သည်မှာ - အပိုအခွန်များအတွက် အမိန့်ပေးရန် လိုအပ်သည် - အပိုအခွန်များအတွက် အမိန့်ပေးရန် လိုအပ်သည် - အပိုအခွန်များအတွက် အမိန့်ပေးရန် လိုအပ်သည် - အပိုအခွန်များအတွက် အမိန့်ပေးရန်များ

အဆင့် ၂: Directus စုစည်းမှုများကို တည်ထောင်ပါ

Directus Project ကို Log in လုပ်ပြီး အရင်ဖော်ပြခဲ့တဲ့ Collection တွေကို ဖန်တီးပါ။ အတည်ပြုရေး စည်းမျဉ်းတွေထည့်ပါ။ ဥပမာ၊ အမှတ်တွေဟာ အပျက်သဘောမဟုတ်တဲ့ အပြည့်ကိန်းတွေ ဖြစ်ဖို့လိုပါတယ်။ အမှတ်တွေနဲ့ ပွဲအခြေအနေကို ရေးသားခွင့်ပြုဖို့ referee 角色 အတွက် ခွင့်ပြုချက်တွေကို ညွှန်ကြားပါ။ public role (ရှေ့ဖက်သုံး) မှာ ဖတ်နိုင်မှုသာရှိသည်။ တချို့ကွင်းတွေ (ကစားသမား ဆက်သွယ်ရေး အချက်အလက်တွေလို) ပုန်းထားဖို့လိုတယ်ဆိုရင် Directus ကွင်းအဆင့် ခွင့်ပြုချက်တွေကို အသုံးပြုပါ။

အဆင့် (၃) API Endpoints ကို တည်ဆောက်ရန် သို့မဟုတ် Directus SDK ကို အသုံးပြုရန်

Directus ထုတ်လုပ်သော REST အဆုံးမှတ်များကို ရှေ့ပိုင်းမှ တိုက်ရိုက်အသုံးပြုနိုင်သည် သို့မဟုတ် ပိုမိုစီးပွားရေးဆိုင်ရာ ယုတ္တိတန်မှုလိုအပ်ပါက (ဥပမာ၊ပွဲတော်များစွာမှ စုစုပေါင်းကိန်းတွက်ချက်ရန်) အပိုအဆုံးမှတ် API ကို တည်ဆောက်နိုင်သည်။ ပြိုင်ပွဲအများစုအတွက် တည်ဆောက်ထားသော REST နှင့် WebSocket အဆုံးမှတ်များ လုံလောက်သည်။ စစ်ဆေးခြင်းနှင့်အရှိန်အရှိန်သွင်းခြင်းများကို ရိုးစင်းစေရန် Directus SDK ကိုအသုံးပြုပါ။ Server-side timer ကို synchronization လုပ်ရန်လိုအပ်ပါက၊ အချိန်ဆွဲမှုတစ်ခုမှတစ်ဆင့် ] ကို စက္ကန့်တစ်စက္ကန့်တိုင်း update လုပ်သော Directus အတိုင်းအတာအဆုံးမှတ်ကို ဖန်တီးပါ။

အဆင့် ၄: ရှေ့ပိုင်း အစိတ်အပိုင်းများ ဖွံ့ဖြိုးတိုးတက်စေရန်

အမြင်အာရုံခံများအတွက် ပြသရေးစာမျက်နှာများနှင့် တရားသူကြီးများအတွက် ထိန်းချုပ်ရေးပaneli ကိုဖန်တီးပါ။ ကြည့်ရှုသူအမြင်ကို ဖတ်ရန်သာထားပါနှင့်ရှင်းလင်းသော အစိတ်အပိုင်းများအပေါ် အာရုံစိုက်ပါ။ ထိန်းချုပ်ရေးပaneli သည်ခလုတ်များနှင့်ပုံစံများနှင့် ပိုမိုသိပ်သိပ်နိုင်သည်။ အမှတ်တံဆိပ်ပြောင်းလဲမှုအတွက် CSS လှုပ်ရှားမှုများကိုအသုံးပြုပါ (ဥပမာ၊ အမှတ်တံဆိပ်တိုးတက်မှုတွင် ခဏ flash ကို) လက်ဆွဲဝတ်ထားသည့်အခါတောင် အလွယ်တကူထိနိုင်သော ကြီးမားသောခလုတ်များနှင့်အတူ မိုဘိုင်း-ဦးဆုံးဒီဇိုင်းကိုသုံးရန်စဉ်းစားပါ။

အဆင့် (၅) - စစ်ဆေးခြင်း

အချိုးအစားများနှင့်အတူ ကစားသမားများနှင့် တရားသူကြီးများအဖြစ် လုပ်ဆောင်သော စေတနာ့ဝန်ထမ်းများနှင့်အတူလေ့ကျင့်ပွဲများအား ပြေးဆွဲပါ။ ပြိုင်ပွဲများတွင် ပြိုင်ပွဲများတွင် ပြိုင်ပွဲများ ပြုလုပ်ပါ။ ပြိုင်ပွဲများတွင် ပြိုင်ပွဲများတွင် ပြိုင်ပွဲများ ပြုလုပ်ပါ။ ပြိုင်ပွဲများတွင် ပြိုင်ပွဲများ ပြုလုပ်ခြင်းဖြင့် ပြိုင်ပွဲများ ပြုလုပ်ပါ။ ပြိုင်ပွဲများတွင် ပြိုင်ပွဲများ ပြုလုပ်ခြင်းဖြင့် ပြိုင်ပွဲများ ပြုလုပ်ပါ။ ပြိုင်ပွဲများတွင် ပြိုင်ပွဲများ ပြုလုပ်ခြင်းဖြင့် ပြိုင်ပွဲများ ပြုလုပ်ပါ။ ပြိုင်ပွဲများတွင် ပြိုင်ပွဲများ ပြုလုပ်ခြင်းဖြင့် ပြိုင်ပွဲများ ပြုလုပ်ခြင်းဖြင့် ပြိုင်ပွဲများ ပြုလုပ်ခြင်းဖြင့် ပြိုင်ပွဲများ ပြုလုပ်ခြင်းဖြင့် ပြိုင်ပွဲများ ပြုလုပ်ခြင်းဖြင့် ပြိုင်ပွဲများ ပြုလုပ်ခြင်းဖြင့် ပြိုင်ပွဲများ ပြုလုပ်ခြင်းဖြင့် ပြိုင်ပွဲများ ပြုလုပ်ခြင်းဖြင့် ပြိုင်ပွဲများ ပြုလုပ်ခြင်းဖြင့် ပြိုင်ပွဲများ ပြုလုပ်ခြင်းဖြင့် ပြိုင်ပွဲများတွင် ပြိုင်ပွဲများ ပြုလုပ်ခြင်းဖြင့် ပြိုင်ပွဲများ ပြုလုပ်ခြင်းဖြင့် ပြိုင်ပွဲများ ပြုလုပ်ခြင်းဖြင့် ပြိုင်ပွဲများ ပြုလုပ်ခြင်းဖြင့် ပြိုင်ပွဲ

ခြေလှမ်း ၆: ဝန်ထမ်းများအား ပို့ဆောင်ပေးခြင်းနှင့် လေ့ကျင့်ပေးခြင်း

ဒေသတွင်း ၀န်ဆောင်မှုပေးသူ သို့မဟုတ် Cloud host တွင် ရှေ့တန်းကိုဖြန့်ချိပါ။ Offline ဖြစ်ရပ်များအတွက် Directus နှင့် ရှေ့တန်းကို WiFi hotspot ရှိ ဒေသတွင်းလက်ပ်တော့ပေါ်တွင် run လုပ်ပါ။ Directus နှင့်အလျင်အလျင် Web server (Nginx သို့မဟုတ် Caddy ကဲ့သို့) ကို ရှေ့တန်းအတွက် bundle လုပ်ရန် Docker Compose ကိုအသုံးပြုပါ။ ထိန်းချုပ်ရေး panel ကိုဘယ်လိုအသုံးပြုရမလဲဆိုသည့်အတွက် တရားသူကြီးများကိုသင်ကြားပါ။ ဖြစ်နိုင်သမျှရိုးရှင်းဆုံးလုပ်ပါ: အသင်း၏မှတ်တံဆိပ်ကိုတိုးမြှင့်ရန်တစ်နှိပ်ခြင်း, အချိန်ဆွဲစက်ကိုစတင်/ရပ်ဆိုင်းရန်တစ်ခလုတ်။ မြန်မြန်မှတ်ချက်ကတ်များကိုနှိပ်ပါ။ စနစ်လုံးဝ ပျက်ကွက်မှုရှိပါက စက္ကူလက်စွဲစနစ်ပေါ်တွင် Backup score ကိုသင်ကြားပါ။

Directus တွင် လုံခြုံရေးနှင့် ခွင့်ပြုချက်များ

Scoreboard ဟာ အခန်းကဏ္ဍများစွာက ဝင်ရောက်နိုင်တဲ့ တိုက်ရိုက်စနစ်ဖြစ်လို့ လုံခြုံရေးက အရေးပါပါတယ်။ Directus ရဲ့ အခန်းကဏ္ဍ သုံးခုကို ဖန်တီးခြင်းကနေစပါ။

  • ]စီမံခန့်ခွဲသူ ]စုစည်းချက်များနှင့် settings အားလုံးကိုအပြည့်အဝရရှိနိုင် (ပြိုင်ပွဲစီစဉ်သူများအသုံးပြုသည်) ။
  • ရိဖာ (FLT:0) က အမှတ်များ၊ ပွဲအခြေအနေ၊ ဒဏ်ခတ်ချက်များနှင့် ပွဲပွဲပွဲများသို့ ဝင်ရောက်နိုင်ရေးကို ရေးသားပါ။ အသင်းများ၊ ကစားသမားများနှင့် ပြိုင်ပွဲများသို့ ဝင်ရောက်နိုင်ရေးကို ဖတ်ပါ။
  • ပြည်သူ့စာရင်းများ၊ ပွဲများ (live သို့မဟုတ် finished) အခြေအနေရှိသူများသာ) ၊ အသင်းများနှင့် ကစားသမားများအတွက် စာဖတ်ခြင်းသာ ရရှိနိုင်သည်။ စာရေးခြင်းမရှိပါ။

Directus ခွင့်ပြုချက်စနစ်ကို အသုံးပြုပြီး စုစည်းမှုအဆင့်တွင် ဤအချက်များကို အကောင်အထည်ဖော်ပါ။ ပိုမိုလုံခြုံမှုအတွက် ထိန်းချုပ်ရေးပaneliကို သီးခြားလက်မှတ်များတွင်သာ အသုံးပြုပါက IP လိပ်စာဖြင့် တရားသူကြီးဝင်ခွင့်ကို ကန့်သတ်ပါ။ Directus instance တွင် HTTPS ကိုအထူးပြုပါ၊ အထူးသဖြင့်အွန်လိုင်းသို့ပြန့်လွှင့်မှုအလွှာများအတွက်အထင်မြင်ပါက။

Live Scoreboard များအတွက် စွမ်းဆောင်ရည်ကို Optimization

ပြိုင်ပွဲတစ်ခုမှာ တစ်ပြိုင်နက်မှာ ပွဲပေါင်းများစွာ ဖြစ်ပျက်နိုင်ပါတယ်။ WebSocket feed ကို တုံ့ပြန်မှုရှိစေဖို့:

  • မကြာခဏပြောင်းလဲတတ်သော စုဆောင်းမှုများကိုသာ ၀ ယ်ယူပါ (ဥပမာ၊ နှင့် ) ။ ဖြစ်စဉ်အတွင်း update မလုပ်ပါက ကဲ့သို့သော static collection များကို ၀ ယ်ယူခြင်းရှောင်ပါ။
  • Directus filter parameters ကို အသုံးပြုပြီး သက်ဆိုင်ရာမှတ်တမ်းများကိုသာ လက်မှတ်ထိုးပါ။ ဥပမာ၊ အသံကို လျှော့ချရန် FLT:16 filter ကို အသုံးပြုပြီး FLT:15 ကို လက်မှတ်ထိုးပါ။
  • Frontend မှာ UI update တွေကို Debug လုပ်ပါ။ animation frame တစ်ခုတည်းအတွင်းမှာ score events များစွာ ရောက်လာရင် DOM update တစ်ခုတည်းအဖြစ် စုစည်းပါ။
  • အသင်းအမည်များနှင့် လော်ဂိုများကို ဘရာဆာ LocalStorage တွင် ဒေသတွင်း cache လုပ်ထားပါ
  • ပြိုင်ပွဲကြီးများအတွက် (ကစားသမား ရာချီ) ကစားသမား စာရင်းအင်းများကို စာမျက်နှာများတွင် တင်ပြီး လိုအပ်ချက်အတိုင်း တင်ပါ။

အောင်မြင်စွာ အကောင်အထည်ဖော်ရန် အကြံပေးချက်များ

  • ကွန်ရက်ကို ရိုးရှင်းစွာ ထိန်းသိမ်းပါ။ လုံလောက်တဲ့ bandwidth ရှိ WiFi ကွန်ရက်တစ်ခုတည်းကို အသုံးပြုပါ။ အများသုံးကိရိယာများ ချိတ်ဆက်ခြင်းကို ရှောင်ရှားပါ။ တရားသူကြီးပြုဖို့ သီးသန့် tablet များကို အသုံးပြုပါ။ နှောင့်ယှက်မှုနည်းပါးမှုအတွက် 5 GHz ကွန်ရက်ကိုစဉ်းစားပါ။
  • အစပိုင်းဒေတာကို Cache လုပ်ပါ။ WebSocket အပြတ်အသတ်တစ်ခုက display ကို ချက်ချင်းမဖျက်ဆီးစေရန်အတွက် အသင်းအမည်များ၊ပွဲစဉ်ဇယားများနှင့်လୋଗိုများကို စတင်ချိန်တွင် ရှေ့ပိုင်းသို့ထည့်ပါ။
  • Fallback ကိုသုံးပါ။ နောက်ဆုံးရွေးချယ်စရာအဖြစ် လက်လုပ်သွင်းမှုစကေးများနှင့်အတူ Static HTML စာမျက်နှာတစ်ခုရှိပါက နောက်ပိုင်းတွင်တင်နိုင်သော ဒေသတွင်း JSON ဖိုင်တစ်ခုသို့ synced လုပ်ပါ။
  • အချိန်ဆွဲစက်ရဲ့ တိကျမှုကို စစ်ဆေးပါ။ Server-side timer ကိုသုံးပါက WebSocket သတင်းစကားတွေမှာ ကိရိယာတွေကြားက drift ကိုရှောင်ရှားဖို့ server အချိန်ကိုတိကျစွာပါဝင်တာ သေချာစေပါ။ အခြားနည်းတစ်ခုအနေနဲ့ ပိုတိကျတဲ့ ကြားကာလအတွက် ဖောက်သည်မှာ FLT:2 ကိုသုံးပါ။
  • ရယူနိုင်မှုကို စဉ်းစားပါ။ မြင်အာရုံ ချို့ယွင်းမှုရှိသူများအတွက် font များနှင့် ဆန့်ကျင်မှုမြင့်မားကို အသုံးပြုပါ။ ပွဲစတင် / အဆုံးလို အရေးပါတဲ့ဖြစ်ရပ်များအတွက် အသံပြန်ကြားချက် (buzzer) ကိုပေးပါ။ Screen Reader အသုံးပြုသူများအတွက် အမှတ်အပြောင်းအလဲများကို ကြေညာရန် FLT:18 ဒေသများကို အသုံးပြုပါ။
  • စွမ်းအင်အတွက် အစီအစဉ်။ ကိရိယာအားလုံးအားပြည့်ဝပြီး ဘက်ထရီများနှင့် စွမ်းအင်လမ်းကြောင်းများအတွက် Backup ရှိသင့်သည်။ ဖြစ်နိုင်လျှင် UPS တွင် scoreboard လက်ပ်တော့ကို run လုပ်ပါ။
  • ] သင့်ဒေတာပုံစံကို မှတ်တမ်းတင်ပါ။ ] အနာဂတ်ပြိုင်ပွဲစီစဉ်သူများက စနစ်ကို အလွယ်တကူ ပြုပြင်နိုင်ရန် စုစည်းမှုနှင့် ဆက်ဆံရေးများ၏ ပြက္ခဒိန်ကို ထိန်းသိမ်းပါ။

အဆုံးသတ်ချက်

Directus ကို အခြေခံပြီး ပြုလုပ်ထားတဲ့ အံလိုက်မှတ်တံဆိပ်စနစ်က paintball ပြိုင်ပွဲကို ကမောက်ကမောက်လက်မှတ်တွေကနေ ကျွမ်းကျင်ပြီး စိတ်ဝင်စားစရာကောင်းတဲ့ အတွေ့အကြုံတစ်ခုအဖြစ် ပြောင်းလဲစေပါတယ်။ သင့်ရဲ့ ဒေတာပုံစံကို ပိုင်ဆိုင်ပြီး အချိန်နဲ့တပြေးညီ အပ်ဂျက်တာတွေကို အသုံးချခြင်းအားဖြင့် ကစားသမားတွေနဲ့ ပရိသတ်တွေကို ပွဲရဲ့ စက္ကန့်တိုင်း သတင်းပေးထားရင်း ဘယ်စည်းမျဉ်းကိုမဆို လိုက်ဖက်အောင် ပြုပြင်ဖို့ လုံးဝကို ပျော့ပျောင်းမှု ရရှိပါတယ်။ ဒီနေရာမှာ ဖော်ပြထားတဲ့ အဆင့်တွေနဲ့ ဒေတာပုံစံထုတ်ခြင်းကနေ ဖြန့်ချိမှုအထိ ပြိုင်ပွဲနေ့မှာ ယုံကြည်မှုရှိရှိ ပြိုင်ပွဲမှာ လူတိုင်းကို စိတ်လှုပ်ရှားစေတဲ့ အမှတ်တံဆိပ်တစ်ခု ဖန်တီးနိုင်ပါတယ်။

ပိုမိုဖတ်ရှုရန် FLT:0 Directus ဝက်ဘ်ဆိုက်၊ FLT:2 APPA ပြိုင်ပွဲစည်းမျဉ်းများနှင့် လက်တွေ့ web development tutorial များကို ရှာဖွေပါ။