Kandideerimisülesanne

Oled mõelnud, kes olid Sinu esivanemad ning millistest maailma kohtadest nad pärit olid?
Põhjuseid, miks oma sugupuud uurima hakata on erinevaid, olgu selleks kasvõi vanaema pööningult leitud vana foto, mis lausa tekitab vastupandamatut huvi pildil toimuva vastu.

Selle jaoks, et inimesed saaksid uurida oma sugupuud on vaja esmalt sisestada süsteemi inimeste andmed ja sugulussidemed. Meie sugupuu koostamise rakenduses on peamine fookus seatud inimestele ja nende vahelistele seostele ning sellest tulenevalt pakub meile huvi eelkõige järgnev informatsioon: Nimi, vanus, sugu ning kes olid konkreetsed vanemad ja kes on ka lapsed.

Looge klient server rakendus REST API arhitektuuril. Front-end võiks olla Reactis, Angularis või sarnases populaarses JS raamistikus. Back-end server rakendus peaks olema .NET-is (ASP.NET Core) või Javas (Spring).

Funktsionaalsused, mida rakendus peab täitma (võite lahendada oma valitud järjekorras):

  • Mõelge välja, arendage ning dokumenteerige 5 ärireeglit, mis takistavad kasutajatel vigu teha
    Nt laps ei tohi olla vanem kui tema ema või isa
  • Dokumeneteerige lisaks veel 5 validatsiooni, reeglit või eriolukorda, mida rakendus peaks katma.
    Nt, kuidas kujutada ja dokumenteerida poolõdevendlust.

Looge järgmised vaated:

  • Isikute nimekirja vaade (otsinguga – otsitavad väljad otsustate ise)
  • Ühe isiku detailvaade
  • Ühe isiku lisamise/muutmise vaade
  • Vaade, kus on võimalik vaadata vastuseid järgmises punktis toodud küsimustele

Päringud, mida sugupuu rakendus peab oskama vastata

  • Mitmes laps peres on antud isik (isikut võimalik valida loetelust)?
  • Kellel on kõige rohkem eelkäijaid? Kes on tema eelkäijad?
  • Kes on kõige noorem onu või tädi?

Looge funktsionaalsus, kus joonistatakse välja üks suguvõsa graafiliselt.

  • Kasutaja saab valida ühe isiku ning joonistatakse välja tema sugupuu. Esialgselt valitud isik on selgelt visuaalselt eristatav.

Hindamiskriteeriumid:

  • Koodi struktuur
  • Andmemudeli ülesehitus
  • Tehtud ülesannete kogus
  • Algoritmi elegantsus
  • Lahenduse selgituse sisu/asjakohasus
  • Iga lahendatud ja töötav ülesanne annab ühe punkti, hästi lahendatud ülesanne annab kaks punkti.

Lahenduse esitamine (Tähtaeg 31. märts)

  • Edastage lahenduse lähtekood kas github-i lingina või ZIP failina e-maili aadressile suveulikool@netgroup.com ning lisage kirja manusesse ka oma CV
  • Võimalusel laadige rakendus ülesse mõnda pilve hostingu keskkonda – nt Heroku, Azure vmt.
  • Kirjeldage lahenduse loomisele kulunud aega.