Tarkvaratehnoloogia praktikumide etapid: erinevus redaktsioonide vahel

Allikas: Lambda
Mine navigeerimisribale Mine otsikasti
41. rida: 41. rida:
* Andmete sqlite sisestamise asemel võid panna andmed otse veebilehele või csv faili, nii et neid serveris eraldi ei töödeldagi ja kuvamist ja valikuid teeb javascript otse veebilehel. Loe ja kasuta [[toorandmete lugemine otse javascriptis|õpetust ja näitekoodi]]
* Andmete sqlite sisestamise asemel võid panna andmed otse veebilehele või csv faili, nii et neid serveris eraldi ei töödeldagi ja kuvamist ja valikuid teeb javascript otse veebilehel. Loe ja kasuta [[toorandmete lugemine otse javascriptis|õpetust ja näitekoodi]]
* Html lehe digitalocean serverisse panemise asemel kas paned nad tehnikaülikooli [http://lambda.ee/wiki/ITV0110_1._t%C3%B6%C3%B6:_Html_p%C3%B5hioskused#Dijkstra_server dijkstra serverisse] või jätkad html lehe arendamist oma arvutis failidena, mida brauser siis kuvab.
* Html lehe digitalocean serverisse panemise asemel kas paned nad tehnikaülikooli [http://lambda.ee/wiki/ITV0110_1._t%C3%B6%C3%B6:_Html_p%C3%B5hioskused#Dijkstra_server dijkstra serverisse] või jätkad html lehe arendamist oma arvutis failidena, mida brauser siis kuvab.
Andmebaasiga rakenduse tegemise ja reaalse käivitamise jaoks on mitu varianti:
* Arendad ja testid oma arvutis, pärast paned oma serverisse või dijkstrasse (siis peab sul olema töökorras Python ja Flask)
* Arendad ja testid otse oma serveris (sinna tuleb installeerida Python (versioon 3) ja Flask)
* Arendad ja testid otse dijkstras (sinna ei tule midagi installeerida, sinu programm käib otse veebiserveri all).
Esimese asjana on sul vaja andmebaas teha ja oma andmed sinna sisse saada. Selleks alusta näiteprogrammidest:
* [[makedb.py]] teeb lihtsalt tühja baasi nimega data.db: makedb.py
* [[import.py]] impordib andmed csv-st baasi, anna sellele csv fail käsurealt ette: import.py minudata.csv
* [[check.py]] trükib kontrolliks andmebaasi data.db sisu välja: check.py
Teise asjana on sul vaja panna käima veebiteenuse programm, millelt saad brauseriga andmeid küsida. Siin on mitu varianti:
* Oma arvutis Flaski abil kasuta [[servewithflask.py]] ja selle kaivitamiseks linuxis [[runserver]]
* Dijkstras tee kataloog /home/minukasutaja/public_html/cgi-bin: selleks mine (cd /home/minukasutaja/public_html) ja ütle mkdir cgi-bin
* Kopeeri programm [[serve.py]] dijkstras kataloogi /home/minukasutaja/public_html/cgi-bin ja ütle seal chmod a+rx serve.py
* Kopeeri andmebaas data.db samasse kataloogi /home/minukasutaja/public_html/cgi-bin ja ütle seal chmod a+rw data.db
* Ava katseks url http://dijkstra.cs.ttu.ee/~tammet/cgi-bin/serve.py kus tammet asemel pane oma kasutajanimi
Kolmanda asjana on sul vaja veebileht õigesse kohta kopeerida:
* Oma arvutis Flaski abil tee oma programmide kataloogi alamkataloog static ja kopeeri [[index.html]] sinna, siis ava url http://localhost:5000/static/index.html
* Dijkstras kopeeri [[index.html]] kataloogi /home/minukasutaja/public_html ja ava ta kui http://dijkstra.cs.ttu.ee/~tammet/ kus tammet asemel pane oma kasutajanimi


== 3. päev: veebilehe kasutajaliidese tegemine ja seostamine andmebaasiga ==
== 3. päev: veebilehe kasutajaliidese tegemine ja seostamine andmebaasiga ==

Redaktsioon: 13. veebruar 2020, kell 15:34

Siintoodud etappide sisu töö reaalse töö käigus veidi muutub, kuid on üldjoontes järgmine:

1. päev: ülesande valik, soovitud tulemuse kirjeldus, keskkonna ülesseadmine, katse-html lehe tegemine

Päeva eesmärk on (a) valida andmestik ja otsustada, mida meie rakendus sellega teeks, (b) töövahendite installeerimine ja katsetamine. Neid asju võiks teha sellises järjekorras:

  • Installeeri endale sobiv tekstiredaktor (rikkalikumast minimaalsemani: vs code, atom, notepad++, scite),
  • Soovitavalt installeeri ka Python (kohe algul ei ole meil seda vaja):
  • Kui python installeeritud, siis soovitavalt ka Flask: see eeldab ja kasutab pythonit. Vaata installiks ja kasutamiseks ka . Jällegi, kohe algul ei ole seda vaja.
  • Otsi andmestik, uuri, kas see on sulle kättesaadav/töödeldav.
  • Otsusta, kuidas seda avalikkusele ilusamini kuvada ja millised filtrid/valikud lasta kasutajatel teha.
  • Kirjuta oma kavadest väike memo markdowni kasutades.
  • Installeeri endale putty ja winscp või analoogilised vajalikud vahendid serverisse sisselogimiseks ja failide kopeerimiseks.
  • Alusta oma rakenduse veebilehe tegemist esmaste html-pisikatsetustega omaenda arvutis.
  • Logi katseks dijkstra serverisse ja püüa sinna mõni fail veebiserveri alla kopeerida.
  • Tee soovitavalt konto digitaloceani serverisse ja githubi koodihoidlasse, lae viimasesse sinna faile. Digitaloceani kontoga on tööd (mis on soovitav :) lihtsam alternatiiv on kasutada ainult dijkstra serverit.


Kui Pythonit ja Flaski ei õnnestu enda arvutisse installeerida, siis on kaks järgmist varianti:

  • Püüdke endale installeerida juba Pythonit sisaldav thonny: see võib õnnestuda paremini.
  • Võite üldse loobuda Pythoni installeerimisest oma arvutisse: sellega saab töötada ka üle võrgu otse dijkstra või digitaloceani serveris, kuigi see on veidi ebamugavam.

Päeva lõpuks teeb iga grupp paariminutise ettekande, kus on öeldud (a) grupiliikmete nimed, (b) mis andmekogu ja ülesanne valiti, (b) mis töövahendid käima saadi ja kuhu õnnestus sisse logida/andmeid kopeerida, (c) kuhu aeg peamiselt kulus ja mis olid ootamatused. (d) mis on plaan järgmiseks korraks.

2. päev: andmete töötlemine ja baasi panek, esmase html lehe tegemine serveris

Päeva eesmärk on (a) katsetada tehnoloogiaid: python ja flask, sqlite (b) teha oma andmebaas ja laadida andmed oma andmebaasi (c) teha katseid päringutega andmebaasist (d) ideaalis realiseerida juba mingi mõttekas osa süsteemist. Päeva lõpuks teeb iga grupp ühe-kahe minutise ettekande, kus on öeldud (a) grupiliikmete nimed, (b) mis käima saadi (c) kuhu aeg peamiselt kulus ja mis olid ootamatused. (d) mis on plaan järgmiseks korraks.

See, mis sa päeva lõpuks (ja kuidas) realiseerid, sõltub sellest, mis tehnoloogiad sa käima saad (kas saad flaski ja pythoni ja sqlite käima, kas oled juba saanud sisse logida ja tegutseda jne). Kui sa mingite tehnoloogiatega hätta jääd, vali alternatiivne lahendus, millega asjad välja tulevad.

Kui andmete saamine andmebaasi osutub keeruliseks (sest näiteks sa ei saanud Pythonit ja Flaski ja sqlite oma arvutisse, serverisse ei õnnestu või on keeruline sisse logida vms) siis on OK teha alternatiivselt lihtsamaid ülesandeid ilma andmebaasita:

  • Andmete sqlite sisestamise asemel võid panna andmed otse veebilehele või csv faili, nii et neid serveris eraldi ei töödeldagi ja kuvamist ja valikuid teeb javascript otse veebilehel. Loe ja kasuta õpetust ja näitekoodi
  • Html lehe digitalocean serverisse panemise asemel kas paned nad tehnikaülikooli dijkstra serverisse või jätkad html lehe arendamist oma arvutis failidena, mida brauser siis kuvab.

Andmebaasiga rakenduse tegemise ja reaalse käivitamise jaoks on mitu varianti:

  • Arendad ja testid oma arvutis, pärast paned oma serverisse või dijkstrasse (siis peab sul olema töökorras Python ja Flask)
  • Arendad ja testid otse oma serveris (sinna tuleb installeerida Python (versioon 3) ja Flask)
  • Arendad ja testid otse dijkstras (sinna ei tule midagi installeerida, sinu programm käib otse veebiserveri all).

Esimese asjana on sul vaja andmebaas teha ja oma andmed sinna sisse saada. Selleks alusta näiteprogrammidest:

  • makedb.py teeb lihtsalt tühja baasi nimega data.db: makedb.py
  • import.py impordib andmed csv-st baasi, anna sellele csv fail käsurealt ette: import.py minudata.csv
  • check.py trükib kontrolliks andmebaasi data.db sisu välja: check.py

Teise asjana on sul vaja panna käima veebiteenuse programm, millelt saad brauseriga andmeid küsida. Siin on mitu varianti:

  • Oma arvutis Flaski abil kasuta servewithflask.py ja selle kaivitamiseks linuxis runserver
  • Dijkstras tee kataloog /home/minukasutaja/public_html/cgi-bin: selleks mine (cd /home/minukasutaja/public_html) ja ütle mkdir cgi-bin
  • Kopeeri programm serve.py dijkstras kataloogi /home/minukasutaja/public_html/cgi-bin ja ütle seal chmod a+rx serve.py
  • Kopeeri andmebaas data.db samasse kataloogi /home/minukasutaja/public_html/cgi-bin ja ütle seal chmod a+rw data.db
  • Ava katseks url http://dijkstra.cs.ttu.ee/~tammet/cgi-bin/serve.py kus tammet asemel pane oma kasutajanimi

Kolmanda asjana on sul vaja veebileht õigesse kohta kopeerida:

3. päev: veebilehe kasutajaliidese tegemine ja seostamine andmebaasiga

Siit alates on kolm tegevussuunda kursuse lõpuni:

  • Brauserist Flaskiga pythoni programmilt andmete küsimine.
  • Andmete arusaadav kuvamine.
  • Kasutajaliidese parandamine.

4. päev: kujunduse parandamine, testimine, arenduse jätk

5. päev: edasiarenduse planeerimine, vigade ja puuduste parandamine, ettekanne

Päeva põhieesmärk on edasiarenduse planeerimine: mida saaks/tasuks süsteemi juurde teha, kes ja kui palju neid täiendusi kasutaks, mis oleks tehnoloogiline/arhitektuuriline plaan edasiarenduse jaoks, mis on ajalise ja rahalised hinnangud, milline oleks projektiplaani kondikava. Edasiarenduse kontekstiks oleks selle tellimine, mitte teiepoolne tegelik ehitamine.

Ülejäänud aeg kasuta oma rakenduse täiustamisele: tee need asjad korda, mis jäid puudulikuks.

Kursuse lõpus teevad kõik grupid veidi pikema presentatsiooni, ca 15 minutit:

  • kui kaugele te oma rakendusega jõudsite, sh reaalne demo,
  • mis oli algses plaanis, aga mis tingimata päris lõpp-rakendusse veel ei jõudnud,
  • ettekanne oma edasiarenduse plaanist ja selle lühike arutelu.