Sporto

From ICO wiki
Jump to navigationJump to search

C# projekt Sporto

Meeskonna nimi: Sporto

Projekt

Spordiürituse korraldamis -ja haldamissüsteem (Esialgu Akrobaatika põhine ainult)

Meeskonna koosseis

  • Merit Ridaste
  • Kelli Lukas
  • Vladimir Rõkovanov
  • Mikk Raudsepp
  • Alar Ameerikas


Projektijuht: Vladimir Rõkovanov


Projektist

Ülevaade

Spordiürituse korraldamise -ja haldustarkvara WPF-is. Korraldaja saab luua üritusi, monitoorida ürituse toimumist, hallata hindamissüsteemi ja raportit, kuvada ajakava jne. Eesmärk on kiirendada ning muuta spordiüritused sujuvamaks ja tõhusamaks, kuna antud hetkel valitseb sageli võistlustel segadus või lausa kaos, kuna ei teata millal on kelle kord, kuhu peab minema jne.

Kasutatav .NET tehnoloogia

Kasutatav raamistik: .NET Framework 4.5

Kasutatav tehnoloogia: C#, Windows Presentation Foundation, Owin, SignalR, Entity Framework, LINQ

Kasutatav arhetektuuriline muster: MVVM


Täpsemalt rakenduse tööst

Topoloogia

Programmi töökäik

Sporto WPF aplicatsioon on SERVER-CLIENT desktop aplikatsioon - edaspidi kutsume lihtsalt Sporto (app). Saab käivitada 3 režiimis.

  • Sporto app Admin režiimis on appil admini vaated ja serveri funktsioon (OWIN), mis jookseb kindlal Pordil.
    • Server käivitatakse ainult Admini režiimis, mis võimaldab teiste kasutajate ühendamist.
    • Admini vaates saab teha administratiivseid operatsioon: luua üritust, lisada osalejaid, hallata ajakava, luua hindamismall.
  • Sporto app Kohtuniku režiimis on appil kliendi funktsioon, hindamis vaade, ajakava vaade.
    • Peakohtunik saab oma vaadetes teha hindamisega seotud operatsioone: kontrollib alamkohtunike hinnanguid, saab ise hinnata vastavalt vajadusele, kinnitab hindamised, lisaks kinnitab Peakohtunik ka lõppraporti.
    • Alamkohtunik: Võimalik ainult hetkel avatud etteastet hinnata ja oma hinnet parandada, kui eelmine hinne lükati peakohtuniku poolt tagasi.
  • Sporto app Ajakava režiimis on appil ürituse ajakva vaade.
    • Selles vaates on võimalik arvutil ühendada ennast läbi IP kohalikus võrgus oleva Sporto OWIN serveriga ning läbi arvuti kuvada aakava ekraanidele ja mujale kuhu vaja. Nii saavad hetkel toimuvat ja tulevasi mänge näha nii osalejad, kui ka pealtvaatajad.


Sporto app luuakse kasutades ära SignalR frameworki andmevoo edastamiseks reaalajas vaadete vahel üle WebSocketi protokolli.

SignalR ja OWIN (The open web Interface for .NET) kasutus võimaldab tuleviku mõttes muuta hetkel plaanitav desktop aplikatsioon reaalajas töötavaks veebirakenduseks.

OWIN host kasutamine teeb aplikatsiooni kergeks, sest me ei vaja tervet web serveri funktsionaalsust nagu seda pakub nt IIS.

Probleemid

  • Server ja andmbaas jooksevad meil ühes arvutis.
    • Kui midagi arvutiga juhtub, võib suur osa turniiri andmeid kaduma minna. Peab olema võimalus viimane turniiri olek taastada Sporto taaskäivitamisel.
    • Kui liiga paljud pealtvaatajad saavad Sporto appile ligipääsu võib see ülekoormata arvuti ühenduse (DDoS), millele suhtes on üksik arvut suht tundlik
    • Võivad probleemid tekkida erinevate tulemüüridega, takistades kohtunikel serveriga ühendust võtta.
  • Praegu väga manuaalne tegevus üritust luua. Korraldaja ei pruugi kõike sisestada, mis muudab programmi jooksutamise võimatuks/vigaseks.
    • Ka ülessättimine võib osutuda korraldajale rakseks, võib vaja minna kasutajajuhendit.
  • Andmebaasi kujundamine keeruline, soovides jätta tulevikus võimalust laieneda teistele spordialadele.

Funktsionaalsused

Planeeritavad funktsionaalsused

1. Andmebaas ja selle haldamine

  • Ürituse loomine (käsitsi sisestamine)
  • Kohtunike ja osalejate lisamine(käsitsi)
  • Õiguste loomine kasutajatele

2. Erinevate vaadete kuvamise võimalus.

  • Kasutajagruppide vaated(admin, peakohtunik, kohtunik)
  • Kuvada võistluse hetkeseisu ajakaval (kui kaugel ajaliselt võistlus on, mis kategooria), kuvab vaikimisi kolme ­ praegu, järgmine, valmistub).
  • Ajakava filtreeritakse kõigepealt taseme(Mini A, Mini B, Laste A, Laste B, Age(2kava), Junior(2kava)) järgi, seejärel rühma( naistepaar, meestepaar, segapaar, naiste kolmik, meeste nelik) järgi.
  • Lõpptulemuste vaade

3. Hindamissüsteem (tugineb Akrobaatikal)

  • Peakohtunik avab (n) esituse hindamisvaate tavakohtunikele.
  • Tavakohtunike poolt hinnete sisestamine.
  • Peakohtunike kontroll ja kinnitamine hinnete üle.
  • Antud esituse punktide kokkuarvutamine, salvestamine

Võimalikud funktsionaalsused (kui aega üle jääb)

  • Erinevate ürituste sidumine
  • Kohtunike ja osalejate, ürituse import/eksport
  • Tasemete automatiseerimine
  • Vanade ürituse haldamine andmebaasis
  • Eraldi ajavaated publikule ja osalejatele
  • Erinevaid üld ajavaateid (kõik seni toimunud etteasted ja nende tulemus, kõik tulevased jne)
  • Hindamissüsteemi üldistamine erinevatele aladele


Kokkusaamiste logid

Algus

16.09

Saime esimest korda kokku ja genereerisime erinevaid ideid, millest kolm olid kõige huvitavamad. Neist valisime siis välja parima - Sporto.

Teine

23.09 Algelise spetsifikatsiooni välja selgitamine, nime välja mõtlemine. Koosoleku märkmed

Kolmas

30.09

Erinevate metoodikate arutlemine.

Neljas

03.10

By Default Võimlemisalad. Esimesena teeme Akrobaatika süsteemi. Hiljem lisame teised alad (rühmvõimlemine, kulturism, maadlus, saalihoki).

Vajalik on hindamismall, andmebaasi struktuur.

Ajakaval on 2 vaadet: KOHTUNIK/muuda, VõistlusteVaade

Merit saadab Google Docis ülevaate Akrobaatikast.

Tulevikuks teada: TeamFundation, MVVM - Navigation

Viies

14.10

Akrobaatikavõistluse infosüsteemi planeerimine - õiguste jagamine kasutajate vahel, hindamissüsteemi kujundamine.

Kohtunikud jagunevad peakohtunikuks (näeb kõiki alakohtunike tulemusi, saab need kinnitada/tagasi lükata ebasobivuse korral, saata edasi ajakavas kuvamiseks) ja alakohtunikeks (ainult hindamine, kava info).

Kelli teeb andmebaaside mudelid, õiguste tabelid.

Koosoleku märkmed

Kuues

28.10

Andmebaasi mudelite ülevaatamine, muutmine. Analüüsi koostamine - kogu spetsifikatsioon. Nädalavahetuseks teeme lõpliku analüüsi, kõik vaatame üle ja vajadusel muudame. Vladimir kirjutab topoloogilise kirjelduse vaadetest, nende omavahelisest suhtlusest.