Meeskond:Me&MyWorkout

From EIK wiki

Meeskond: Me&MyWorkout

Meeskonna liikmed:

  • Triin Oja (projektijuht)
  • Johanna Kammiste
  • Julia Kraam

Tööjaotus:

  • Triin - projektijuht, vanemprogrammerija, kujundus, testimine
  • Johanna - vanemprogrammeerija, funktsionaalsus, kujundus
  • Julia - nooremprogrammeerija, esitlus, wiki, retsensioonid

Projekti idee

Luua treeningpäevik, mis võimaldab sisseloginud kasutajal treeningkava kokku panna, tehtud treeninguid kalendrisse salvestada ning progressi jälgida. Hetkel on otsustatud jääda WPF-i peale, kui aega üle jääb, siis proovime arendada projekt Windows Phone 8-le.

Tehnoloogia

  • Visual Studio
  • C#/XAML


Analüüs

Mudel

C diargramm.jpg

  • Kasutaja loob treeningplaane, mis koosnevad trennidest, mis omakorda koosnevad harjutustest. Kasutaja saab luua trenne ja harjutusi, mis pole seotud veel ühegi treeningplaaniga, kui aga kasutaja otsustab treeningplaani luua, siis ta saab enne luua selle jaoks vajalikud harjutused ja trennid või valida olemasolevate seast.
  • Kasutaja saab muuta ja lisada karakteristikuid ehk füüsilisi andmeid, mille kohta rakendus kuvab statistikat.
  • Kasutaja saab muuta ja lisada kontakte.

Mida see endas sisaldab?

Kasutaja saab luua endale konto ning sisestada oma andmed. Registreerimata kasutajal ei ole võimalik rakendust kasutada kuna raskuste ja harjutuste valikul on vaja teada inimese sugu, vanust ning kehakaalu. Registreerimisel küsitakse nime, perekonnanime, e-maili, kaalu, sugu, sünnikuupäeva - viimase järgi arvutatakse vanus, siis kasutaja ei pea oma vanust pidevalt sisestama. Kasutajal on võimalik oma andmeid hiljem muuta. Arvestades, et kehakaal võib treeningute tagajärjel päris palju muutuda, siis iga kahe nädala tagant suunatakse kasutaja tema andmete lehele, et kasutaja teeks vajalikud muudatused.

Kasutajaid on kahte tüüpi - tavakasutaja ja admin. Tavakasutaja saab pärast oma konto loomist sisse logida, oma andmeid muuta, koostada endale treeningkava või valida olemasolev ning vaadata eelmisi treeninguid.Admin saab treeningkavasid ning harjutusi lisada ja kustutada. Samuti saab admin kustutada mittevajalike kasutajate kontosid.

Oma treeningkava koostamisel kasutajal on võimalik valida kehapiirkond, mida ta soovib treenida ning seejärel harjutused. Iga harjutuse juurde käib kirjeldus kuidas seda harjutust õigesti teha ning kordade arv. Samuti kasutaja valib endale millise seeria kas 5x5 või 8x3 ta tahab teha. Vajadusel seeriat on võimalik korrata. Iga harjutuse järel on ette nähtud puhkus (vähemalt 20 sek). Harjutuste seeria on võimalik ka vajaduse korral pausi peale panna.

Rakendus salvestab treeningkorral tehtud harjutusi, treeningkorra kestvust ning kasutatud raskusi. Iga järgneva sisselogimisega kasutajalt küsitakse kas ta soovib oma treeningkoormust suurendada, vähendada või jätta samaks, nagu oli eelmisel korral. Kui kasutaja soovib treeningkoormust suurendada, siis raskusi korrutatakse etteantud koefitsiendiga läbi. Seega kasutaja ei pea neid andmeid meeles pidama ega arvutama.

Treeningpäevik sisaldab endas kalendrit, kuhu on salvestatud kõik treeningkorrad ning tehtud harjutused. Pärast autentimist on kasutajal võimalik vaadata kalendri vaates oma treenitud päevad üle. Need päevad, millal on käidud spordisaalis, on märgitud punase värviga. Vajutades sellele päevale avaneb uus vaade, kus kuvatakse treeningu kuupäev, ajaline pikkus, tehtud harjutuste nimetused, harjutuste seeriate arv ning kasutatud raskused. Kasutaja saab tagasisidet oma treeningute ning edasimineku kohta. Treeninguid on võimalik üle vaadata kuupäevaliselt ning edasimineku tagasiside kujutab endast võrdlust esimese treeninguga.

Treeningute ülevaates on võimalik võrrelda praegu kasutatavaid raskusi nendega, mis olid kasutatud esimeses treeningus. Rakenduses on summeeritud aeg, mis on veedetud treeningsaalis.

Mis on selle eesmärk?

Eesmärk on pakkuda kiiret, lihtsat ning eestikeelset treeningpäevikut. Erinevus teistest samalaadsetest rakendustest seisneb selles, et iga treeningkorraga on võimalik oma treeningkoormust ühe nupuvajutusega kas suurendada, vähendada või jätta samaks.

Kuna rakenduses oleva valemi järgi arvutatakse raskuste kaal ning igal treeningkorral suurendatakse (või vähendatakse) raskuste kaalu teatud koefitsiendi võrra, mille tulemusel kasutajal puudub vajadus meelde jätta mis raskustega ta on harjutusi teinud ning arvutada mis raskusega tal tuleb järgmine kord harjutusi sooritada.

Mida kasutaja sellega teha saaks?

Treenida, treenida ja veelkord treenida :)

Milliste osade realiseerimine võib osutuda problemaatiliseks?

Problemaatiliseks võib osutuda taimeri ja harjutuste kokku viimine. Kuna tegemist on päris mahuka tööga, siis ajaliselt võime hätta jääda.

Must Have funktsionaalsused

  • Kasutajate loomine
  • Kalender
  • Taimer
  • Registreeritud kasutajal on võimalik oma andmeid muuta (kehakaalu palutakse muuta iga 2 nädala tagant)
  • Kalendrisse uute kirjete loomine
  • Oma treeningkava koostamine
  • Treeningu koormuse vähendamine/suurendamine
  • Kokkuvõtete kuvamine
  • Treeningute kustutamine

Nice to have funktsionaalsused

  • Iga harjutuse juurde teha videoklipp, mille järgi saab kontrollida harjutuse õige sooritamise. Videoklipid on plaanis panna ülesse youtube-i ning lingid siduda rakendusega.
  • Facebookiga sisselogimine
  • Windows Phone 8 rakendus

Hetkeseis

30.11.2014

  • Praegusel hetkel on loodud andmebaas, transpordimudelid, transpordiloogika, WCF teenus, klientrakendus, vaateprojekt (kujundus). Probleemseks on osutunud asjaolu, et andmebaasi esialgne disain osutus ehk pisut puudulikuks, mistõttu tuli entity'd lisada ja ka sellepõhjal palju muudatusi muudes projektides teha.
  • Selle asemel, et palju koodi vaate xaml.cs faili kirjutada, käib nüüd kõik ViewModelite ja Command'ide kaudu.
  • Puudub veel login, videote kuvamine jms. Kindlasti aitaks parandada kujundust, kuid projektijuhi haigestumise tõttu on tööjõudu vähe olnud.
  • Plaanis on seega lisada veel login, register funktsionaalsused, videote kuvamine, enda harjutuste lisamine(praegu saab kasutaja lisada ainult enda treeninguid ja treeningplaane). Plaanis ka ehk muuta andmebaasi.
  • Koodis on ka veel kahtlaselt palju TODO--kommentaare, mida olen rühmakaaslastele edastanud, mida nad võiks teha

Prototüüp

Prototüübi asupaik veebis

Versioonid

  • 21.01.2015 Uusim versioon siin
    • Muudatused ja märked:
      • Prototüüp-valmisprojekt. Paljud funktsionaalsused veel puuduvad, kuid ajapuudusel neid ei saanud teostada.
      • Puudub publish versioon, kuna esines probleeme selle testimisel teiste arvutite peal.
      • Rakendus peaks teoreetiliselt püüdma kinni algelisel viisil vead, aga aegajalt mõnes arvutis see ei tööta. Probleemile lahendust leida ei jõudnud.
  • 1.12.2014 Vana prototüüp (läks lähe muutmisel kaduma) siin

Juhend

Käivitamine

  • Käivitamiseks kõigepealt panna startup projektiks testingapp ja käivitada main meetod, mis täidab andmebaasi andmetega.
  • Järgnevalt panna startup projektiks MyWorkout.ClientApp ja käivitada. Luua kasutaja klikkides 'Register'.

Võimalused

  • Klientrakenduse võimalused:
    • Lisada ja muuta kasutajaandmeid ja karakteristikuid (menüüs 'Konto')
    • Vaadata treeningplaane (menüüs 'Treeningplaanid')
    • Lisada trenne ja harjutusi ja treeningplaane (menüüs 'Lisa ja muuda asju')