Erinevus lehekülje "ITI0205 2020 3 iseseisev töö" redaktsioonide vahel

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti
 
(ei näidata sama kasutaja 18 vahepealset redaktsiooni)
1. rida: 1. rida:
 +
= ITI0205 3. iseseisev töö - andmebaasiga serverirakendus =
 +
 
== Mida tuleb teha ==
 
== Mida tuleb teha ==
  
 
Sinu ülesanne on kirjutada mini-Facebook kasutades selleks PHP-d ja MySQL andmebaasi. Kui oskad võid kasutada CSS raamistikke. Puhta Javascripti ja jQuery kasutamine on samuti lubatud.
 
Sinu ülesanne on kirjutada mini-Facebook kasutades selleks PHP-d ja MySQL andmebaasi. Kui oskad võid kasutada CSS raamistikke. Puhta Javascripti ja jQuery kasutamine on samuti lubatud.
  
Rakendus on vaja paigaldada turing.cs.ttu.ee serverisse aadressile http://turing.cs.ttu.ee/~uni-id/prax3 ja rakenduse lähtekood Gitlab.cs.ttu.ee kesskkonda.
+
Rakendus on vaja paigaldada turing.cs.ttu.ee serverisse aadressile http://turing.cs.ttu.ee/~uni-id/prax3 ja rakenduse lähtekood Gitlab.cs.ttu.ee kesskkonda.  
  
 
=== Rakenduse põhifunktsionaalsus ===
 
=== Rakenduse põhifunktsionaalsus ===
11. rida: 13. rida:
 
# Sarnaselt "päris" Facebookiga pead postituste vaatamiseks või ise postitamiseks olema süsteemi sisse logitud e-posti aadressi parooliga. Minimaalses versioonis võid kasutajad (sh kasutaja võtme ja fotod) otse andmebaasi kirjutada.
 
# Sarnaselt "päris" Facebookiga pead postituste vaatamiseks või ise postitamiseks olema süsteemi sisse logitud e-posti aadressi parooliga. Minimaalses versioonis võid kasutajad (sh kasutaja võtme ja fotod) otse andmebaasi kirjutada.
 
# Kasutajal on kasutajanimega seotud profiilivaade kus on näha tema profiili andmed ja postitused. Postitusi näidatakse ajalises järjestuses - hilisemad postitused enne ja varasemad hiljem.
 
# Kasutajal on kasutajanimega seotud profiilivaade kus on näha tema profiili andmed ja postitused. Postitusi näidatakse ajalises järjestuses - hilisemad postitused enne ja varasemad hiljem.
# Registreeritud kasutaja peab saama sisestada enda kirjeldusteksti, asukoha (linn) ja laadima ülesse foto.
+
# Registreeritud kasutaja peab saama sisestada enda kirjeldusteksti, asukoha (linn). Baasversiooni juures fotot ülesse laadima ei pea vaid võib kuvada vaikepilti.
# Sisselogitud kasutaja saab otsida teisi kasutajaid nimeosa ja/või asukoha järgi. Suur ja väiketähtede kasutaja ei ole oluline.
+
# Sisselogitud kasutaja saab otsida teisi kasutajaid nimeosa ja/või asukoha järgi. Otsing ei ole tõstutundlik, s.t. kuidas suur ja väiketähti kasutada ei peaks olema oluline.
 
# Registreeritud kasutaja saab saata teisele kasutajale sõbrakutse. Baasversioonis aktsepteeritakse sõbraktuse automaatselt.
 
# Registreeritud kasutaja saab saata teisele kasutajale sõbrakutse. Baasversioonis aktsepteeritakse sõbraktuse automaatselt.
 
# Kui kasutaja on juba sisse logitud, siis näeb ta enda uudisvoos oma sõprade postitusi ajalises järjestuses.
 
# Kui kasutaja on juba sisse logitud, siis näeb ta enda uudisvoos oma sõprade postitusi ajalises järjestuses.
# Sisselogitud kasutaja saab lisada postituse milles on tekst. Skripte, embed-elemente, formaaditud tektsi ja muud HTMLi seal ei näidata.
+
# Sisselogitud kasutaja saab lisada postituse milles on tekst. Skripte, embed-elemente, formaaditud teksti ja muud HTMLi seal ei näidata.
 
# Kasutaja saab sõprade postitusele lisada reaktsiooni (like) Reaktsioone näidatakse iga postituse juures. Kasutaja saab enda antud reaktsiooni tagasi võtta.
 
# Kasutaja saab sõprade postitusele lisada reaktsiooni (like) Reaktsioone näidatakse iga postituse juures. Kasutaja saab enda antud reaktsiooni tagasi võtta.
 
# Kasutaja saab lisada oma sõprade postitusele kommentaari. Sarnaselt postitusele seal HTMLi, skripte ja muud ei näidata.
 
# Kasutaja saab lisada oma sõprade postitusele kommentaari. Sarnaselt postitusele seal HTMLi, skripte ja muud ei näidata.
21. rida: 23. rida:
 
# Kasutaja saab süsteemist välja logida.
 
# Kasutaja saab süsteemist välja logida.
  
Lisaks peavad olema täidetudKasutaja saab teise kasutaja oma sõbralistist eemaldada
+
Lisaks peavad olema täidetud elementaarsed turvanõuded
  
 
* Ei kuvata otse, nö puhastamata välja kasutaja sisestatud tekste (javascript injection ehk XSS takistatud)
 
* Ei kuvata otse, nö puhastamata välja kasutaja sisestatud tekste (javascript injection ehk XSS takistatud)
33. rida: 35. rida:
 
* Leht ei tohi välja näha väga jube. Vaata ka: http://lambda.ee/wiki/Htmli_kujunduse_%C3%BCldp%C3%B5him%C3%B5tted
 
* Leht ei tohi välja näha väga jube. Vaata ka: http://lambda.ee/wiki/Htmli_kujunduse_%C3%BCldp%C3%B5him%C3%B5tted
  
== Lisaks rakenduse põhifunktsionaalsusele ==
+
=== Lisaks rakenduse põhifunktsionaalsusele ===
  
 
Iga realiseeritud nõue annab ühe punkti, kokku 10p.
 
Iga realiseeritud nõue annab ühe punkti, kokku 10p.
44. rida: 46. rida:
 
# Kasutaja saab sõprade postitusi oma seinale edasi postitada.
 
# Kasutaja saab sõprade postitusi oma seinale edasi postitada.
 
# Rakendus on kasutatav ka mobiilis
 
# Rakendus on kasutatav ka mobiilis
# Realiseeritud on rakenduse ruutimine, s.t kättesaadav mitte ainult parameetritega antud asukohtadest, s.t profiilisvaate jaoks profile.php?user=peeter.kask vaid /profile/peeter.kask
+
# Realiseeritud on rakenduse ruutimine, s.t kättesaadav mitte ainult parameetritega antud asukohtadest, s.t profiilivaate jaoks profile.php?user=peeter.kask vaid /profile/peeter.kask
 
# Realiseeritud ja kujundatud on vealeht, mida näidatakse siis kui soovitud lehte ei leita või süsteem kokku jookseb
 
# Realiseeritud ja kujundatud on vealeht, mida näidatakse siis kui soovitud lehte ei leita või süsteem kokku jookseb
 
# Kasutatud on üht või enamat Composeri teeki vabal valikul.
 
# Kasutatud on üht või enamat Composeri teeki vabal valikul.
  
'''Kumbki täiendus annab ühe lisapunmkti'''
+
== Lisapunktid ==
  
# Kasutaja saab registreerida ja sisse logida saab päris-Facebookiga
+
Lisaks 15 baaspunktile on võimalik saada ülesande eest kaks lisapunkti (kokku 17 punkti)
# Rakenduse vaated on realieeritud mingil templeidimootoril a'la Twig, Blade
 
  
Lisaks
+
Selleks peab:
 +
# Kasutaja saama registreerida ja sisse logida päris-Facebookiga
 +
# Rakenduse vaated olema realieeritud mingil templeidimootoril a'la Twig, Blade vms
  
<pre>* HTML ja CSS eraldi ...
+
== Millises järjekorras asju teha ==
* Valideerv HTML
 
* Konsoolis ei tohi olla vigu
 
* TODO: Rääkida faviconist.</pre>
 
Leht ei tohi olla kole. Vaata ka: http://lambda.ee/wiki/Htmli_kujunduse_%C3%BCldp%C3%B5him%C3%B5tted
 
  
'''Äkki see list too-much'''
+
Rakenduse peaksid valmis ehitama oma lokaalses serveris. Kui see lokaalselt töötab ja kõik funktisonaalsus on realiseeritud, siis kõige lihtsam see turing.cs.ttu.ee-sse paigutada on läbi TTÜ Gitlabi. 
  
= ITI0205 3. iseseisev töö - andmebaasiga serverirakendus =
+
==== Üldine rakenduse struktuur ja vaated ====
 +
# Esimese sammuna mõtle välja millised vaated rakendusse üldse peaksid tulema. Tekita tühjad PHP failid nagu <code>index.php</code>, <code>login.php</code> ja <code>register.php</code>
 +
# Mõtle läbi millistesse kataloogidesse erinevad failid paigutada. Kui neid ühes kataloogis hoida võib faile tekkida palju ja neid on tülikas leida.
 +
# Mõtle läbi ühes vaates - näiteks kasutaja uudisvoos - olevad elemendid. Realiseeri see HTMLis/CSSis. Seda saad kasutada alusesks muudes vaadetes.
 +
# Mõtle välja millised oleksid korduvad osad - kindlasti on seda menüü. Tõsta menüü-HTML eraldi faili, näiteks <code>components/menu.php</code> ja lingi see põhivaatesse, näiteks <code>&lt;?php include 'components/menu.php'</code>
  
== Mida tuleb teha ==
+
==== Andmebaas ja andmed ====
  
Sinu ülesanne on kirjutada mini-Facebook kasutades selleks PHP-d ja MySQL andmebaasi. Kui oskad võid kasutada CSS raamistikke. Puhta Javascripti ja jQuery kasutamine on samuti lubatud.
+
Andmebaas ja andmemudel ehita valmis lokaalselt. Arvesta, et andmebaasimuudatuste viimine live-serverisse on tülikam kui koodimuudatuste oma - seepärast proovi see läbi mõelda teha nii valmis et struktuuris enam muudatusi hiljem ei tuleks.
  
Rakendus on vaja paigaldada turing.cs.ttu.ee serverisse aadressile http://turing.cs.ttu.ee/~uni-id/prax3 ja rakenduse lähtekood Gitlab.cs.ttu.ee kesskkonda.
+
# Mõtle välja andmebaasi struktuur. Esialgu joonista see vabas vormis ülesse, kas paberile või mõnda tööriista kasutades. Hea online tööriist on nomnoml: https://nomnoml.com/
 +
# Nüüd tee andmetabelid enda arvutis näiteks PhpMyAdminit kasutades valmis. Et päringuid oleks lihtsam kirjutada ja katsetada, siis kirjuta baasi testandmeid. Testandmeid saad genereerida näiteks selle tööriistaga: https://www.generatedata.com/
 +
# Nüüd saad PHPs andmebaasiga ühenduda ja andmebaasiga toimetada.  
 +
# Tõsta andmebaasiga ühendumise skript eraldi faili, nt. <code>includes/db.php</code>. Nüüd saad selle linkida vaadetese kus andmebaasi on vaja kasutada: <code>include 'includes/db.php</code>.
  
=== Rakenduse põhifunktsionaalsus ===
 
  
Nende nõuete realiseerimine on arvestuse saamiseks kohustuslik ja need annavad 5 punkti
+
...
 
 
# Sarnaselt &quot;päris&quot; Facebookiga pead postituste vaatamiseks või ise postitamiseks olema süsteemi sisse logitud e-posti aadressi parooliga. Minimaalses versioonis võid kasutajad (sh kasutaja võtme ja fotod) otse andmebaasi kirjutada.
 
# Kasutajal on kasutajanimega seotud profiilivaade kus on näha tema profiili andmed ja postitused. Postitusi näidatakse ajalises järjestuses - hilisemad postitused enne ja varasemad hiljem.
 
# Registreeritud kasutaja peab saama sisestada enda kirjeldusteksti, asukoha (linn) ja laadima ülesse foto.
 
# Sisselogitud kasutaja saab otsida teisi kasutajaid nimeosa ja/või asukoha järgi. Suur ja väiketähtede kasutaja ei ole oluline.
 
# Registreeritud kasutaja saab saata teisele kasutajale sõbrakutse. Baasversioonis aktsepteeritakse sõbraktuse automaatselt.
 
# Kui kasutaja on juba sisse logitud, siis näeb ta enda uudisvoos oma sõprade postitusi ajalises järjestuses.
 
# Sisselogitud kasutaja saab lisada postituse milles on tekst. Skripte, embed-elemente, formaaditud tektsi ja muud HTMLi seal ei näidata.
 
# Kasutaja saab sõprade postitusele lisada reaktsiooni (like) Reaktsioone näidatakse iga postituse juures. Kasutaja saab enda antud reaktsiooni tagasi võtta.
 
# Kasutaja saab lisada oma sõprade postitusele kommentaari. Sarnaselt postitusele seal HTMLi, skripte ja muud ei näidata.
 
# Kasutaja saab teise kasutaja oma sõbralistist eemaldada
 
# Kasutaja saab süsteemist välja logida.
 
 
 
Lisaks peavad olema täidetud elementaarsed turvanõuded
 
 
 
* Ei kuvata otse, nö puhastamata välja kasutaja sisestatud tekste (javascript injection ehk XSS takistatud)
 
* Ei kasutata otse, nö puhastamata, kasutaja sisestatud tekste SQL päringute kokkupanekul (sql injection takistatud)
 
* Parool peab olema salvestatud andmebaasi krüpteeritult
 
 
 
'''Lisaks:'''
 
 
 
* HTML ja CSS peaksid olema eraldi. Nii on sul mugav seda hallata ja muuta.
 
* Lehtede HTML peaks olema valideeruv ja javascripti kasutamisel ei tohi konsoolis olla veateateid.
 
* Leht ei tohi välja näha väga jube. Vaata ka: http://lambda.ee/wiki/Htmli_kujunduse_%C3%BCldp%C3%B5him%C3%B5tted
 
 
 
== Lisaks rakenduse põhifunktsionaalsusele ==
 
 
 
Iga realiseeritud nõue annab ühe punkti, kokku 10p.
 
 
 
# Saad registreerida uue kasutaja. Kasutaja registreerimisel pead saama anda enda nime, e-posti ja parooli koos parooli kordusega. E-posti aadress peab olema unikaalne ja parooli valimisel süsteem kontrollima parooli kordust.
 
# Pärisnime põhjal loob süsteem kasutaja võtme - näiteks kui kasutaja nimi on Peeter Kask, siis kasutajanimi on peeter.kask. '''Lisa''': Kui samanimeline aga teise e-posti aadressiga kasutaja juba eksisteerib, siis genereerib süsteem kasutajanime peeter.kask.1
 
# Lisaks kirjeldustekstile ja asukohale saab kastuada ülesse laadida oma foto. Fotot kuvatakse sarnaselt päris-Facebookiga kasutajaprofiili juures. Juhul kui fotot pole lisatud kuvatakse selle asemel vaikepilti.
 
# Registreeritud kasutaja saab postituses lisada ka pildi
 
# Edasiarendatud sõbrakutsete korral peab enne sõbralisti lisamist see kellele kutse saadeti selle aktsepteerima.
 
# Kasutaja saab sõprade postitusi oma seinale edasi postitada.
 
# Rakendus on kasutatav ka mobiilis
 
# Realiseeritud on rakenduse ruutimine, s.t kättesaadav mitte ainult parameetritega antud asukohtadest, s.t profiilisvaate jaoks profile.php?user=peeter.kask vaid /profile/peeter.kask
 
# Realiseeritud ja kujundatud on vealeht, mida näidatakse siis kui soovitud lehte ei leita või süsteem kokku jookseb
 
# Kasutatud on üht või enamat Composeri teeki vabal valikul.
 
 
 
'''Kumbki täiendus annab ühe lisapunmkti'''
 
  
# Kasutaja saab registreerida ja sisse logida saab päris-Facebookiga
+
# Kui kõik on valmis ja sinu lokaalses arvutis töötab, paigalda rakendus Turingu serverisse.
# Rakenduse vaated on realieeritud mingil templeidimootoril a'la Twig, Blade
 
  
== Millises järjekorras asju teha ==
+
= Keskkonnad ja serverid =
  
# Esimese sammuna mõtle välja millised vaated rakendusse üldse peaksid tulema. Tekita tühjad PHP failid nagu <code>index.php</code>, <code>login.php</code> ja <code>register.php</code>
+
Selle ülesande jaoks peaksid kasutama 3 serverit:
# Mõtle läbi millistesse kataloogidesse erinevad failid paigutada. Kui neid ühes kataloogis hoida võib faile tekkida palju ja neid on tülikas leida.
+
* Sinu lokaalne PHP installatsioon (localhost) - kus jooksevad nii Apache veebiserver, PHP rakendusekiht kui MySQL andmebaasiserver.
# Mõtle läbi ühes vaates - näiteks kasutaja uudisvoos - olevad elemendid. Realiseeri see HTMLis/CSSis. Seda saad kasutada alusesks muudes vaadetes.
+
* TTU Gitlab (gitlab.cs.ttu.ee) lähtekoodi hoidmiseks ja vahesammuks Turingu serverisse paigutamisel.
# Mõtle välja millised oleksid korduvad osad - kindlasti on seda menüü. Tõsta menüü-HTML eraldi faili, näiteks <code>components/menu.php</code> ja lingi see põhivaatesse, näiteks <code>&lt;?php include 'components/menu.php'</code>
+
* Turingu server (turing.cs.ttu.ee) kuhu paigaldatakse valmis rakendus.
 
 
...
 
  
 
= Abimaterjale ja viiteid =
 
= Abimaterjale ja viiteid =
134. rida: 95. rida:
 
* Lekkinud Facebooki lähtekood aastast 2007: https://gist.github.com/nikcub/3833406
 
* Lekkinud Facebooki lähtekood aastast 2007: https://gist.github.com/nikcub/3833406
 
* [[ Linuxi_Käsurida | Linuxi käsurea kasutamine Turingu serveri näitel ]]
 
* [[ Linuxi_Käsurida | Linuxi käsurea kasutamine Turingu serveri näitel ]]
 +
* MySQL kasutamine serveris varasemate aastate loengunäidete põhjal: http://lambda.ee/wiki/Vorgurakendused_1_SQL_naited_loengust

Viimane redaktsioon: 16. november 2020, kell 09:34

ITI0205 3. iseseisev töö - andmebaasiga serverirakendus

Mida tuleb teha

Sinu ülesanne on kirjutada mini-Facebook kasutades selleks PHP-d ja MySQL andmebaasi. Kui oskad võid kasutada CSS raamistikke. Puhta Javascripti ja jQuery kasutamine on samuti lubatud.

Rakendus on vaja paigaldada turing.cs.ttu.ee serverisse aadressile http://turing.cs.ttu.ee/~uni-id/prax3 ja rakenduse lähtekood Gitlab.cs.ttu.ee kesskkonda.

Rakenduse põhifunktsionaalsus

Nende nõuete realiseerimine on arvestuse saamiseks kohustuslik ja need annavad 5 punkti

  1. Sarnaselt "päris" Facebookiga pead postituste vaatamiseks või ise postitamiseks olema süsteemi sisse logitud e-posti aadressi parooliga. Minimaalses versioonis võid kasutajad (sh kasutaja võtme ja fotod) otse andmebaasi kirjutada.
  2. Kasutajal on kasutajanimega seotud profiilivaade kus on näha tema profiili andmed ja postitused. Postitusi näidatakse ajalises järjestuses - hilisemad postitused enne ja varasemad hiljem.
  3. Registreeritud kasutaja peab saama sisestada enda kirjeldusteksti, asukoha (linn). Baasversiooni juures fotot ülesse laadima ei pea vaid võib kuvada vaikepilti.
  4. Sisselogitud kasutaja saab otsida teisi kasutajaid nimeosa ja/või asukoha järgi. Otsing ei ole tõstutundlik, s.t. kuidas suur ja väiketähti kasutada ei peaks olema oluline.
  5. Registreeritud kasutaja saab saata teisele kasutajale sõbrakutse. Baasversioonis aktsepteeritakse sõbraktuse automaatselt.
  6. Kui kasutaja on juba sisse logitud, siis näeb ta enda uudisvoos oma sõprade postitusi ajalises järjestuses.
  7. Sisselogitud kasutaja saab lisada postituse milles on tekst. Skripte, embed-elemente, formaaditud teksti ja muud HTMLi seal ei näidata.
  8. Kasutaja saab sõprade postitusele lisada reaktsiooni (like) Reaktsioone näidatakse iga postituse juures. Kasutaja saab enda antud reaktsiooni tagasi võtta.
  9. Kasutaja saab lisada oma sõprade postitusele kommentaari. Sarnaselt postitusele seal HTMLi, skripte ja muud ei näidata.
  10. Kasutaja saab teise kasutaja oma sõbralistist eemaldada
  11. Kasutaja saab süsteemist välja logida.

Lisaks peavad olema täidetud elementaarsed turvanõuded

  • Ei kuvata otse, nö puhastamata välja kasutaja sisestatud tekste (javascript injection ehk XSS takistatud)
  • Ei kasutata otse, nö puhastamata, kasutaja sisestatud tekste SQL päringute kokkupanekul (sql injection takistatud)
  • Parool peab olema salvestatud andmebaasi krüpteeritult

Lisaks:

Lisaks rakenduse põhifunktsionaalsusele

Iga realiseeritud nõue annab ühe punkti, kokku 10p.

  1. Saad registreerida uue kasutaja. Kasutaja registreerimisel pead saama anda enda nime, e-posti ja parooli koos parooli kordusega. E-posti aadress peab olema unikaalne ja parooli valimisel süsteem kontrollima parooli kordust.
  2. Pärisnime põhjal loob süsteem kasutaja võtme - näiteks kui kasutaja nimi on Peeter Kask, siis kasutajanimi on peeter.kask. Lisa: Kui samanimeline aga teise e-posti aadressiga kasutaja juba eksisteerib, siis genereerib süsteem kasutajanime peeter.kask.1
  3. Lisaks kirjeldustekstile ja asukohale saab kastuada ülesse laadida oma foto. Fotot kuvatakse sarnaselt päris-Facebookiga kasutajaprofiili juures. Juhul kui fotot pole lisatud kuvatakse selle asemel vaikepilti.
  4. Registreeritud kasutaja saab postituses lisada ka pildi
  5. Edasiarendatud sõbrakutsete korral peab enne sõbralisti lisamist see kellele kutse saadeti selle aktsepteerima.
  6. Kasutaja saab sõprade postitusi oma seinale edasi postitada.
  7. Rakendus on kasutatav ka mobiilis
  8. Realiseeritud on rakenduse ruutimine, s.t kättesaadav mitte ainult parameetritega antud asukohtadest, s.t profiilivaate jaoks profile.php?user=peeter.kask vaid /profile/peeter.kask
  9. Realiseeritud ja kujundatud on vealeht, mida näidatakse siis kui soovitud lehte ei leita või süsteem kokku jookseb
  10. Kasutatud on üht või enamat Composeri teeki vabal valikul.

Lisapunktid

Lisaks 15 baaspunktile on võimalik saada ülesande eest kaks lisapunkti (kokku 17 punkti)

Selleks peab:

  1. Kasutaja saama registreerida ja sisse logida päris-Facebookiga
  2. Rakenduse vaated olema realieeritud mingil templeidimootoril a'la Twig, Blade vms

Millises järjekorras asju teha

Rakenduse peaksid valmis ehitama oma lokaalses serveris. Kui see lokaalselt töötab ja kõik funktisonaalsus on realiseeritud, siis kõige lihtsam see turing.cs.ttu.ee-sse paigutada on läbi TTÜ Gitlabi.

Üldine rakenduse struktuur ja vaated

  1. Esimese sammuna mõtle välja millised vaated rakendusse üldse peaksid tulema. Tekita tühjad PHP failid nagu index.php, login.php ja register.php
  2. Mõtle läbi millistesse kataloogidesse erinevad failid paigutada. Kui neid ühes kataloogis hoida võib faile tekkida palju ja neid on tülikas leida.
  3. Mõtle läbi ühes vaates - näiteks kasutaja uudisvoos - olevad elemendid. Realiseeri see HTMLis/CSSis. Seda saad kasutada alusesks muudes vaadetes.
  4. Mõtle välja millised oleksid korduvad osad - kindlasti on seda menüü. Tõsta menüü-HTML eraldi faili, näiteks components/menu.php ja lingi see põhivaatesse, näiteks <?php include 'components/menu.php'

Andmebaas ja andmed

Andmebaas ja andmemudel ehita valmis lokaalselt. Arvesta, et andmebaasimuudatuste viimine live-serverisse on tülikam kui koodimuudatuste oma - seepärast proovi see läbi mõelda teha nii valmis et struktuuris enam muudatusi hiljem ei tuleks.

  1. Mõtle välja andmebaasi struktuur. Esialgu joonista see vabas vormis ülesse, kas paberile või mõnda tööriista kasutades. Hea online tööriist on nomnoml: https://nomnoml.com/
  2. Nüüd tee andmetabelid enda arvutis näiteks PhpMyAdminit kasutades valmis. Et päringuid oleks lihtsam kirjutada ja katsetada, siis kirjuta baasi testandmeid. Testandmeid saad genereerida näiteks selle tööriistaga: https://www.generatedata.com/
  3. Nüüd saad PHPs andmebaasiga ühenduda ja andmebaasiga toimetada.
  4. Tõsta andmebaasiga ühendumise skript eraldi faili, nt. includes/db.php. Nüüd saad selle linkida vaadetese kus andmebaasi on vaja kasutada: include 'includes/db.php.


...

  1. Kui kõik on valmis ja sinu lokaalses arvutis töötab, paigalda rakendus Turingu serverisse.

Keskkonnad ja serverid

Selle ülesande jaoks peaksid kasutama 3 serverit:

  • Sinu lokaalne PHP installatsioon (localhost) - kus jooksevad nii Apache veebiserver, PHP rakendusekiht kui MySQL andmebaasiserver.
  • TTU Gitlab (gitlab.cs.ttu.ee) lähtekoodi hoidmiseks ja vahesammuks Turingu serverisse paigutamisel.
  • Turingu server (turing.cs.ttu.ee) kuhu paigaldatakse valmis rakendus.

Abimaterjale ja viiteid