PlantWise

From ICO wiki


Rühmatöö aines Programmeerimine C# keeles

Liikmed

  • Allar Vendla - projektijuht
  • Anita Sepp - front-end arendaja
  • Gert Vesterberg - nooremarendaja

Idee

Luua Androidi rakendus, mis võimaldab hallata erinevaid taimi nii koduses kui ka töökeskkonnas: salvestada taimede kirjeldusi, väetamis- ja kastmissagedusi, märkida taim kastetuks ning (nice to have funktsionaalsusena) saada meeldetuletus järgmise kastmisaja saabumise kohta.

Tehnoloogiad

Rakenduse näol on tegemist pilvepõhise teenusega, kus kasutajakontod ning nendega seonduv info on salvestatud serverisse ning mobiilirakendus saab ning salvestab infot üle REST API.

  • C# / ASP.NET
  • SQL andmebaas (HSQL/PostgreSQL)
  • Xamarin
  • Git

Analüüs

Must have

  • Kasutajaks registreerumine.
  • Eelnevalt ette salvestatud taimedega andmebaas ehk taimede raamatukogu.
  • Erinevate taimegruppide lisamine, nt. taimed tööl, kodus, maal.
  • Taimegruppide muutmine, kusutamine.
  • Konkreetsete taimede lisamine.
  • Konkreetsete taimede muutmine, kustutamine.
  • Ülevaade taimedest.
  • Väetamise ja kastmise kuupäeva uuendamine.

Nice to have

  • Taime kastmise ja väetamise ajaloo kuvamine.
  • Foto lisamine konkreetse taime ning grupi juurde.
  • Kasutajal endal võimalus taimede raamatukogu hallata. Taimi lisada, muuta, eemaldada.
  • Meeldetuletused kastmis- või väetamisaja saabumise kohta.
  • Teise kasutaja lisamine enda loodud taimegruppi kasutajaks. Näiteks saaksid elukaaslased koos hallata kodus olevaid taimi või kolleegid tööl olevaid taimi.

Edasiarenduse võimalused

  • Rakenduse ühendamine niiskusanduritega.
  • Ühendumine Facebooki kaudu.
  • Kogu andmebaas viia üle blockchain'i.
  • Tulevikus võiks rakendus kasutada big datat ja machine learningut, et tuvastada taime kastmise vajadust.

Mis võib osutuda problemaatiliseks?

  • Kuna puudub varasem mobiilirakenduste loomise kogemus, siis võib osutuda suureks väljakutseks intuitiivse ning selge UI loomine.
  • Kuna pole varem nimetatud tehnoloogiaid kasutanud võib ka aeg saada murekohaks, sest ka väikse asja tööle saamine võib võtta plaanitust kauem aega.

Andmebaasitabelid

  1. Users
  2. Plants - plant library
  3. UserPlantsGroups
  4. UserPlants
  5. PlantWateringHistory
  6. Fertilizers
  7. FertilizingHistory

Kasutuslugu 1 - rakenduse tutvustuse lugemine

Uue kasutajana soovin lugeda PlantWise rakenduse kohta, et saaksin paremini aru, millega on tegu.

  • Kasutaja avab rakenduse.
    • Avanenud 1. vaates on kaks lahtrit "Username", "Password" ja "Login" nupp. Lehe ülemises osas on menüüriba (iga vaate osa), mis koosneb PlantWise logost vasakul ning ☰ (menüü) nupust paremal.
  • Kasutaja vajutab ☰ nupule.
    • Avaneb kaks valikut "Info" ja "Register".
  • Kasutaja vajutab "Info" nupule.
    • Avanenud 2. vaates on rakendust tutvustav tekst ning menüüriba.

Kasutuslugu lõppeb.

Kasutuslugu 2 - kasutajaks registreerumine

Uue kasutajana soovin registreeruda PlantWise kasutajaks, et saaksin paremini hallata enda taimi.

  • Kasutaja avab rakenduse.
  • Kasutaja vajutab ☰ nupule ja valib "Register".
    • Avanenud 3. vaates on kolm lahtrit "Username", "Password", "Retype password" ja "Register" nupp.
  • Kasutaja sisestab kasutajanime, mis on juba kasutusel.
    • Kuvatakse veateade, et kasutajanimi on juba kasutusel.
  • Kasutaja sisestab erinevad paroolid.
    • Kuvatakse veateade, et paroolid ei kattu.
  • Kasutaja pole kõiki välju täitnud ning vajutab "Register" nupule.
    • Kuvatakse veateade täitmata väljade kohta.
  • Kasutaja sisestab korrektselt kõik väljad ja vajutab "Register" nupule.
    • Kasutaja on registreeritud ning ühtlasi ka kohe sisse logitud.

Kasutuslugu lõppeb.

Kasutuslugu 3 - sisselogimine

Registreeritud kasutajana soovin siseneda PlantWise rakendusse, et saaksin hakata enda taimi haldama.

  • Kasutaja avab rakenduse.
  • Kasutaja sisestab "Username" lahtrisse enda kasutajanime ning "Password" lahtrisse vale parooli.
    • Kuvatakse veateade, et parool on vale.
  • Kasutaja täidab korrektselt "Username" ja "Password" lahtrid ning vajutab "Login" nupule.
    • Kasutaja on sisse logitud.

Kasutuslugu lõppeb.

Kasutuslugu 4 - uue grupi lisamine

Registreeritud kasutajana soovin lisada uue grupi - näiteks "Taimed töö juures", et hiljem sellesse gruppi taimi lisada.

  • Kasutaja logib rakendusse sisse.
    • Kui kasutajal ei ole varasemalt taimi lisatud, siis avaneb 4. vaade tekstiga, et kasutajal ei ole veel ühtegi taime, juhised, kuidas edasi toimida ning nupp "Add new".
  • Kasutaja vajutab ☰ nupule.
    • Avaneb neli valikut "My plants", "My groups", "Info" ja "Log out".
  • Kasutaja vajutab "My groups" nupule.
    • Kui kasutajal pole ühtegi gruppi salvestatud, siis avaneb 5. vaade, kus on tekst, et kasutajal pole veel ühtegi gruppi ning nupp "Add new".
  • Kasutaja vajutab nupule "Add new".
    • Avaneb 6. vaade grupi lisamise vormiga, kus on kolm välja "Group name", "Location", "Description" ning nupud "Save" ja "Cancel".
  • Kasutaja täidab korrektselt kõik väljad ning vajutab "Save" nuppu.

Kasutuslugu lõppeb.

Kasutuslugu 5 - grupi andmete muutmine/täiendamine

Registreeritud kasutajana soovin muuta eelnevalt salvestatyd grupi andmeid, et grupp sisaldaks täpset ja õiget informatsiooni.

  • Kasutaja logib rakendusse sisse ja vajutab menüüs "My groups" nupule.
    • Kuna kasutajal on juba eelnevalt grupp salvestatud, siis avaneb 5. vaade gruppide loeteluga: grupi nimi ja sellest paremal kaks valikut "Edit" ning "Delete". Vaate ülemises osas on nupp "Add new".
  • Kasutaja vajutab nupule "Edit".
    • Avaneb 6. vaade grupi lisamise vormiga, mis on täidetud varasemalt salvestatud informatsiooniga.
  • Kasutaja teeb soovitud muudatused ning vajutab "Save" nuppu.

Kasutuslugu lõppeb.

Kasutuslugu 6 - grupi kustutamine

Registreeritud kasutajana soovin kustutada eelnevalt salvestatud gruppi, kuna ma ei soovi seda gruppi enam hallata.

  • Kasutaja logib rakendusse sisse ja vajutab menüüs "My groups" nupule.
    • Avaneb 5. vaade gruppide loeteluga: grupi nimi ja sellest paremal kaks valikut "Edit" ning "Delete". Vaate ülemises osas on nupp "Add new".
  • Kasutaja vajutab nupule "Delete".
    • Kui kasutajal on konkreetse grupiga taimed seotud, siis kuvatakse veateade ja "Ok" nupp. Kui grupi andmed kasutusel ei ole kuvatakse kinnituse küsimine.
  • Kasutaja kinnitab grupi kustutamise soovi.

Kasutuslugu lõppeb.

Kasutuslugu 7 - uue taime lisamine

Registreeritud kasutajana soovin lisada uut taime, et omada ülevaadet kastmise ning väetamise aegade kohta.

  • Kasutaja logib rakendusse sisse ja vajutab avanenud 4. vaates "Add new" nupule.
    • Avaneb 7. vaade taime lisamise vormiga, kus on: neli lahtrit "Plant name", "Location", "Last watered", "Last fertilized"; kaks rippmenüüga välja "Plant description", mis saab sisendi eelnevalt salvestatud raamatukogust ja "Add to group", mis saab sisendi kasutaja loodud gruppidest; nupud "Save" ja "Cancel".
  • Kasutaja täidab korrektselt kõik väljad ja vajutab "Save".

Kasutuslugu lõppeb.

Kasutuslugu 8 - olemasolevate taimede haldamine

Registreeritud kasutajana soovin näha ülevaadet enda taimedest ja märkida taimi kastetuks, et teada saada, millal on järgmine kastmine.

  • Kasutaja logib rakendusse sisse.
    • Kuna kasutajal on taim salvestatud siis on avanenud 4. vaates loetelu gruppide järgi.
  • Kasutaja vajutab grupi nimele.
    • Avaneb 8. vaade grupi kirjeldusega ja loeteluga grupis olevatest taimedest. Loetelus on ära toodud taime nimi, asukoht, järgmine kastmise ja väetamise aeg timebarna. Nimistus on ülevalpool taimed, mis vajavad kastmist või väetamist kõige enne. Taimest paremal on kaks nuppu "Water" ja "Fertilize".
  • Kasutaja märgib taime kastetuks, vajutades "Water" nuppu.
    • Taime järgmine kastmise aeg on uuendatud vastavalt käesolevale kuupäevale ning kastmis intervallile.
  • Kasutaja vajutab taime nimele.
    • Avaneb 9. vaade, kus on kogu info taime kohta: taime nimi, taimeliik, asukoht, kirjeldus, kastmis- ning väetamissagedus, järgmise kastmise ning väetamise aeg timebarna. Lisaks on neli nuppu: "Water", "Fertilize", "Edit", "Delete" ning "Back". Nice to have funktsionaalsusena on ka veel viies nupp "History", mis kuvab kastmiste ning väetamiste ajaloo.

Kasutuslugu lõppeb.

Tööjaotus

  • Anita - Analüüs, Kasutuslood, Kujundus, Androidi App
  • Allar - Androidi App
  • Gert - Andmebaasi disain, Andmebaasi loomine, REST API, API dokumentatsioon, Koduleht

Blogi

  • 17.09.17 Meeskonna moodustamine ja idee paika panek - Cryptocurrency-explorer.
  • 01.10.17 Koosolek kasutajaliideste raamistike teemal.
  • 22.10.17 Wiki lehe ja TFS konto loomine.
  • 04.11.17 Skype koosolek. Projekti analüüsimine, mille käigus otsustasime projekti ideed muuta - PlantWise.
  • 05.11.17 Skype koosolek. Wiki lehe täiendamine projekti analüüsiga.
  • 12.11.17 Meeskkonna "Phoney" analüüsi retsenseerimine.