01.07.
Olen tutvunud firmaga. Allkirjastasun juhendid. Mulle oli antud koolituse vihikud ja projekt.
Projekt on inglise keeles. Kirjutan tema nagu nii:
Implement restful web application with frontend and backend.
The application logic should be written in a functional style and in front-end should be used Ecmascript6 and other option are available to choose for development. UX and design won't be evaluated by this task, but preferred to use in project Bootstrap.
Programming languages (one of options): Java; Scala; Kotlin.
DataStore (one of options): MongoDB; SQLite: H2: ElasticSearch.
Frameworks (back end options): Spring Framework; J2 EE; Akka; Vertx.lo
Frameworks/Libraries (fron end options): AngularJS; React; Elm.
Project builder tool (one of options): Maven; SBT; Gradle.
In addition, front-end part shoul be packaged with webpack and gulp.
For testing RESTful web service use REST-assured (https://code.google.com/p/rest-assured)
For testing User Interface use SelenlumHQ (http://docs.selenium.org) or Jasmine (http://jasmine.github.io/edge/introduction.html).
Alustan koolitada kõik need prograamid.
02.07.
Pärast väike koolitus tean, et pean instaleerida Back-End-i jaoks: Mongo BD Server (temaga koos tuleb Mongo BD Shell - tema räägib Back-End koodiga CLI-ga).
Java open JDK (juba olemas pärast 2 kursi ülikoolis).
cmder - mulle selline terminal soovitatud, kuna ta töötab hästi.
Front-Endile pean installerida: npm ja yarn.
Pärast õige installerimist ja ühendamisest ja kui mina õigesti kõik avan ja kirjutan käivitamised, siis minu tuleviku äpp avada localhost:8081-s.
Täna alustasin seda töö. Esimene proov teen homme.
03.07.
Kõigi elementide stardimine peab olla oma terminalide aknas. Cmder-s on vaja kasutada kombinatsioon ctrl + t ja enter. See kombinatsioon teeb tavaline terminal ja seal mina alustan järgmine äppi element.
Jooksen Back-end: Kõik järgmised instrumendid kokuvad pärast "mvnw spring-boot:run" kirjutamist projekti kaustas (pom.xml).
Stardin Mongo BD: Terinalis aadres C:\Program Files\MongoDB\Server\4.0\bin
Mulle vaja: mongo.exe, mongod.exe.
mongo - DB shell. Õigus suhtelda Mongo BD-ga
mongod - service mis stardib Mongo BD
Nüüd kaustas kirjutan terinalis "mongod" see stardib BD. Uues terminali aknas saamas kaustas kirjutan "mongo" ja "show databases". Kui näen missugune järjekord - siis kõik töötab.
Aga, vot - ei tööta... Kuni esmaspäeva mul on ise õppimine.
23.07.
Kirjutasin iga päev siia. Mõtlesin et nupp värskendada, on salvestmine - aga see ei olnud õige. Kõik oli kadunud...
Proviin nüüd tastuda.
Mina juba tegin: Ärikirjeldus, Huvipooled, Ärisõnastik, Mittefunktsionaalsed nõuded, Ärireeglid, Äriinfomudel, BPMN mudel, Kasutuslood, Kasutusmallid, Halva kasutusloo diagramm, Riskianalüüs, Projekti plaan, Oleku diagrammid, Tegevus diagrammid, Koostöödiagrammid, Jargnevus diagrammid
On vaja veel teha Komponent diagrammid, Evitus diagrammid.
Ärireeglid (ilma graafukuta)
Kasutusmallid
Halva kasutuslooga meie mõtleme - ei ole vaja kuna see on nii väike app, variantid millal ründaja võib midagi halvasti teha on nii väike kogus (ainult võib, kui tema võtab oma sissepääs süsteemisse, broneerida virtuaalselt saalid, ilma võimalusi kasutada neid reaal elus).
Projekti plaan.
Olen tutvunud firmaga. Allkirjastasun juhendid. Mulle oli antud koolituse vihikud ja projekt.
Projekt on inglise keeles. Kirjutan tema nagu nii:
Implement restful web application with frontend and backend.
The application logic should be written in a functional style and in front-end should be used Ecmascript6 and other option are available to choose for development. UX and design won't be evaluated by this task, but preferred to use in project Bootstrap.
Programming languages (one of options): Java; Scala; Kotlin.
DataStore (one of options): MongoDB; SQLite: H2: ElasticSearch.
Frameworks (back end options): Spring Framework; J2 EE; Akka; Vertx.lo
Frameworks/Libraries (fron end options): AngularJS; React; Elm.
Project builder tool (one of options): Maven; SBT; Gradle.
In addition, front-end part shoul be packaged with webpack and gulp.
For testing RESTful web service use REST-assured (https://code.google.com/p/rest-assured)
For testing User Interface use SelenlumHQ (http://docs.selenium.org) or Jasmine (http://jasmine.github.io/edge/introduction.html).
Alustan koolitada kõik need prograamid.
02.07.
Pärast väike koolitus tean, et pean instaleerida Back-End-i jaoks: Mongo BD Server (temaga koos tuleb Mongo BD Shell - tema räägib Back-End koodiga CLI-ga).
Java open JDK (juba olemas pärast 2 kursi ülikoolis).
cmder - mulle selline terminal soovitatud, kuna ta töötab hästi.
Front-Endile pean installerida: npm ja yarn.
Pärast õige installerimist ja ühendamisest ja kui mina õigesti kõik avan ja kirjutan käivitamised, siis minu tuleviku äpp avada localhost:8081-s.
Täna alustasin seda töö. Esimene proov teen homme.
03.07.
Kõigi elementide stardimine peab olla oma terminalide aknas. Cmder-s on vaja kasutada kombinatsioon ctrl + t ja enter. See kombinatsioon teeb tavaline terminal ja seal mina alustan järgmine äppi element.
Jooksen Back-end: Kõik järgmised instrumendid kokuvad pärast "mvnw spring-boot:run" kirjutamist projekti kaustas (pom.xml).
Stardin Mongo BD: Terinalis aadres C:\Program Files\MongoDB\Server\4.0\bin
Mulle vaja: mongo.exe, mongod.exe.
mongo - DB shell. Õigus suhtelda Mongo BD-ga
mongod - service mis stardib Mongo BD
Nüüd kaustas kirjutan terinalis "mongod" see stardib BD. Uues terminali aknas saamas kaustas kirjutan "mongo" ja "show databases". Kui näen missugune järjekord - siis kõik töötab.
Aga, vot - ei tööta... Kuni esmaspäeva mul on ise õppimine.
23.07.
Kirjutasin iga päev siia. Mõtlesin et nupp värskendada, on salvestmine - aga see ei olnud õige. Kõik oli kadunud...
Proviin nüüd tastuda.
Mina juba tegin: Ärikirjeldus, Huvipooled, Ärisõnastik, Mittefunktsionaalsed nõuded, Ärireeglid, Äriinfomudel, BPMN mudel, Kasutuslood, Kasutusmallid, Halva kasutusloo diagramm, Riskianalüüs, Projekti plaan, Oleku diagrammid, Tegevus diagrammid, Koostöödiagrammid, Jargnevus diagrammid
On vaja veel teha Komponent diagrammid, Evitus diagrammid.
Sprintide algus: 5 august.
Sprinti pikkus: 1 nädal
Standup - iga esmaspäev kell 10.00
Pean valmistada ise teoreetiline baas:
Back-end:
- Java algused;
- Java Spring Boot2 algused;
- MongoDB;
- Maven;
Front-end
- JavaScript algused;
- React algused;
- Redux;
- React Router;
- Bootstrap;
- ESlint;
- Pretier;
- Webpack;
- Yarn;
- Bebel.
- Axios;
Nüüd laadin mis on võimalus laadida (Pärast Komponentide ja Evitus diagrammide valmistamiseks teen üks fail ja panen tema veebisse, et Teil on võimalus graafikud vaadata.
Ärikirjeldus.
Sissejuhatus
Äppi idee – maksimaalne tõhusalt rendi aega levitamist ettevõtte konverentsi saali vahel.
Äpp annab võimalus koheselt võta infot
vaba/hõivatud rendi aega ükskõik millises
ettevõtte saalis.
Äpp välja töötatud ettevõtte ärijuhtidele.
Pärast võib müüja
teistele sarnastele ettevõttele. On võimalus moderniseerida tema restorani või
restorani sidele lauale broneerimise järgi.
Saali
rendija (klient,
kasutaja) võib olla nii era- kui ka äriklient.
Ettevõtte konverents saalide omanik.
Ettevõtte
ärijuht firma saali omaniku esindaja, levitab tõhusalt rendi aeg klientide vahel. Võib, näiteks
pakkuda teine aeg, või saama aeg, aga suurem saal saama rendi maksuga, juhul
kui sobivadega suurusega saal on juba hõivatud vajaliku aega.
Põhiprotsess
Saali
tellimine (klient)
1. Klient helistab firma ärijuhile.
2.
Teatab oma
soovist korralda üritus, teatud inimeste arvuga, mis toimub teatud kuupäeval ja
kestab nii palju.
3. Saab ärijuhte vastus
4. Kinnitab ärijuhti pakkumistega
5. Saab e-mailiga arvet
6. Maksab arvet
Saali
tellimine (klient)
- Klient külastab ettevõtte veebilehte
2. Täitab tellimiste vormi, kus kirjutab oma soovist korralda üritus, teatud inimeste
arvuga, mis toimub teatud kuupäeval ja kestab nii palju.
3.
Saadab
ärijuhte vastus
4.
Kinnitab
ärijuhti pakkumistega
5. Saab e-mailiga arvet
6. Maksab arvet
Ettevõtte
konverentsi saalide omanik
1.
Hoiab
saalid korras
Ärijuht
1.
Uurib
kliendilt telefooniga tema soovitust rentida saal teatud
inimeste arvuga, mis toimub teatud kuupäeval ja kestab nii palju.
2.
Avab äpp
3.
Kirjutab
andmed
4.
Uurib infot
rentidele sellel ajal võimalusi/eba võimalusi sobivatud saal
5.
Kui saal on
hõivatud, vaatab äppi abil lähim vaba aeg või võimalus teise saali rentimist
6. Annab infot kliendile
7. Pärast kliendi kinnitust broneerib aeg äppis ja saadab
arvet kliendile e-mailiga
Ärijuht
- Uurib e-mailiga saali rentimise taotlusest teatud inimeste arvuga, mis
toimub teatud kuupäeval ja kestab nii palju.
2.
Avab äpp
3.
Kirjutab
andmed
4.
Uurib infot
rentidele sellel ajal võimalusi/eba võimalusi sobivatud saal
5.
Kui saal on
hõivatud, vaatab äppi abil lähim vaba aeg või võimalus teise saali rentimist
6.
Annab infot
kliendile telefoniga, mis oli kirjutatud e-mailis
7.
Pärast
kliendi kinnitust broneerib aeg äppis ja saadab arvet kliendile e-mailiga
Huvipooled.
Firma omanik - soovib, et
nende äri sujuks ja et müüginumbrid suureneksid.
Ärijuht - soovib, et
tema saalide rendiajad oleksid kõige hõivatuvamad.
Kõik kliendid
- soovivad võimalikult soodsamalt saali rentida ja võimalikult
täpsega aega.
Ärisõnastik.
Taustainfo
Firma –
konferents Saali
omanik.
IS – (infosüsteem) – omaniku IT-süsteem (kõik kokku; koosneb Äppist ja Back-Office-ist.
Äpp – Firma IS
osa, sedakaudu osutakse põhiteenust;
Back-Office – Firma
IS osa,
tuumirakendus (core), seal töödeltakse infot kas Saal on vaba või hõivatud jne.
Kasutustingimused – dokument, mis määratleb teenuste osutamise
tingimused, sh maksetingimused.
Isik – füüsiline
isik.
Actors
Tellija – Teenust saav Isik.
Ärijuht – Isik, kes Broneerib saal ja saadab
ettemaksu Arvet.
Põhilised ärimõisted
Saalide variandid – nimekiri kus on: Saalide inimese maksimaalne arv, Saalide suurus ja
tema pildid.
Saal – neid Tellija Broneerib.
Broneerimine – üks unikaalne tellimisakt, algatud Tellija.
Standardne majandustegevus
Arve – ettemaksu Arve,
milline Tellija peab
maksma.
Tasumine –
kaasneb iga Arvega.
OSAPOOL – SÜNDMUS
- ASI
Mittefunktsionaalsed nõuded
GEN_NFR_A – Saali
rentimise infosüsteem peab tõrgeteta taluma vähemalt 50 äpi samaaegset
käigusolemist.
GEN_NFR_B – Saali
rentimise äpi turvalisus peab olema võrdväärne või parem OWASP Mobile Security
Project nõuetest
[https://www.owasp.org/index.php/OWASP_Mobile_Security_Project#tab=Top_10_Mobile_Risks].
GEN_NFR_C - Teostusel
tuleb järgida mobiilseadmete UX tavanõudeid
[https://medium.com/blueprint-by-intuit/native-mobile-app-design-overall-principles-and-common-patterns-26edee8ced10]
GEN_NFR_D -
Mobiiliaplikatsioon on alla laetav järgmistele operatsioonisüsteemidele:
Android ja iOS.
GEN_NFR_E -
Mobiiliaplikatsioon peab toetama 1 keelt (inglise).
GEN_NFR_F -
Infosüsteemi ülalolekuaeg peab olema tagatud 99% aastas (see tähendab maasoleku
aega 3.65 päeva/aastas).
GEN_NFR_G - Kogu
infosüsteemi funktsionaalsus ja andmebaasistruktuur peavad olema arusaadavalt
dokumenteeritud.
R01 – Saali Ärijuht peab registreerida oma konto Firma Infosüsteemis.
R02 – Iga Tellimuse täidab üks konkreetse broneeringu Saal ja aeg.
R03 – Ärijuht algab broon.
R04 – Ärijuht annab Arve
tellijale.
R05 – Arve tingib Maksmine.
Kasutuslood.
Epic A Saali broneerimine
US-01 Äpi alllalaadimine
Ärijuhi roolis
tahan ma endale äpi alla laadida ja oma nutiseadmes käima panna, et ma saaksin
edaspidi selle kaudu kiiresti teada millal on võimalus saali kliendile rendita
ja kiiresti nende broneerida.
US-02 Äpi
olemasolu, kus ja millega
Ärijuhi roolis ma
tahaksin, et mul oleks saali renti broneerimise äpp, kus ma saan broneerida
saal oma kliendile.
US-03 Ärijuhi
registreerimine
Ärijuhi roolis
mulle tuleb registreerida, et ma oleksin identifitseeritav.
US-04 Valik saali
vahel
Ärijuhina tahan
ma näha, mis saal on vaba ja millal.
US-05 Checkpoint
Ärijuhina, kui ma
missuguse saali broneerisin, soovin oma broneerimine veel üks kord kontrollida,
et mina broneerin õige saal ja aeg.
US-06 Checkout
Ärijuhina, kui ma
viga broneerimine tegin, soovin eemalda see broneerimine.
UC01 – Kasutaja
registreerimine
UC02 – Saali aja kontroll
UC03 – Saali aja broneering
UC04 – Broneerimine eemaldamine
UC05 – Kasutaja eemldamine
UC Name: UC01 – kasutaja
registreerimine
Scope: Saali rent, administratiivne
süsteem (arvuti)
Level: user goals,
sub-functions
User Goal:
Teha uus kasutaja, et edaspidi tema võib broneerida saalid.
Primary Actor: administraator
Stakeholders and interests:
Äpi omanik on huvitatud, et tema
töötajad võivad omada saali rendi aja täpne infot ja sellega huvitatud ka
ärijuhtid.
Preconditions:
UC01-PRE01 – Kasutajal on piisavalt
uus ja kompatiibel nutitelefon (või tahvel). Kompatiiblite OS versioonide list.
UC01-PRE02 – Uusim versioon Saali
rent äpist on saadaval vastava platvormi (Google, Apple) poes (omakorda eeldab
tehniliste nõuete täitmist).
Success Guarantee (postcondition):
Äpp on paigaldatud nutiseadmesse ja
käivitub.
Main Success Scenario:
1. Administraator on administratiivse
äppi osas.
2. Administraator vajutab nuppu “Lisa
uus kasutaja”.
3. Administraator kirjutab uue
kasutaja andmed (Ees ja perenimi, amet, Kasutaja nimi ja salasõna).
4. Administraator valib õigsede
variant (kasutaja).
5. Administraator vajutab nuppu
“Lisa”.
UC Name: UC02 – Saali
aja kontroll
Scope: Ärijuht,
kasutaja alamsüsteem (äpp)
Level: user goals,
subfunctions
User Goal:
Kontrollida kas millesed saalid,
millesel ajal on vaba või hõivatud.
Primary Actor: ärijuht
Stakeholders and interests:
Äpi omanik on huvitatud, et tema
töötajad võivad omada saali rendi aja täpne infot ja sellega huvitatud ka
ärijuhtid.
Preconditions:
UC02-PRE01 - Peab olema läbitud UC01
– kasutaja registreerimine, mis ühtlasi sisaldab ka installeerimist
nutiseadmesse
Success Guarantee (postcondition):
Äpi loogika on mõeldud 24/7
käitamiseks, ehk siis otsene väljumiskriteerium puudub.
Main Success Scenario:
1. Äpp kontrollib kasutaja
registreeritust. Kui kasutaja pole Saali rent registreeritud, siis kõik muud
menüüd peale „Authoriseeri” on hallid ja neid ei saa pruukida.
2. Ärijuht valib saal.
3. Ärijuht valib päev.
4. Ärijuht valib aeg.
5. Äpp annab infot: kui saal on vaba,
siis aeg on roheline, kui hõivatud – punane ja kirjutab kõige lähem vaba aeg.
UC Name: UC03 – Saali
aja broneering
Scope: Ärijuht, kasutaja alamsüsteem (äpp)
Level: user goals,
subfunctions
User Goal:
Broneerida saal ajal ja päeval mis on
vaja kliendile.
Primary Actor: Ärijuht
Stakeholders and interests:
Äpi omanik on huvitatud, et tema
töötajad võivad omada saali rendi aja täpne infot ja sellega huvitatud ka
ärijuhtid.
Preconditions:
UC02-PRE01 - Peab olema läbitud UC01
– kasutaja registreerimine, mis ühtlasi sisaldab ka installeerimist
nutiseadmesse
UC03-PRE01 -Ärijuht peab juba valida
õige saal, päev ja aeg.
Success Guarantee (postcondition):
Äpi loogika on mõeldud 24/7
käitamiseks, ehk siis otsene väljumiskriteerium puudub.
Main Success Scenario:
1. Ärijuht vajutab nuppu “Broneerida”.
2. Saal broneeritud.
Extensions:
2a. Saamal ajal teine ärijuht
kooskõlastas teistega klientega saama saal, saamal päeval ja ajal ja vajutasid
nuppu “Broneerida” natuke kiiremini kui esimene ärijuht.
2b. Ärijuht valib teine
saal/päev/aeg.
UC Name: UC04 –
Broneerimine eemaldamine
Scope: Ärijuht,
kasutaja alamsüsteem (äpp)
Level: user goals,
subfunctions
User Goal:
Eemalda broneerimise aeg.
Primary Actor: Ärijuht
Stakeholders and interests:
Äpi omanik on huvitatud, et tema
töötajad võivad omada saali rendi aja täpne infot ja sellega huvitatud ka
ärijuhtid.
Preconditions:
UC02-PRE01 - Peab olema läbitud UC01
– kasutaja registreerimine, mis ühtlasi sisaldab ka installeerimist
nutiseadmesse.
UC04-PRE01 – Selline broneerimise aeg
peab olla broneeritud saama kasutaja.
Success Guarantee (postcondition):
Äpi loogika on mõeldud 24/7
käitamiseks, ehk siis otsene väljumiskriteerium puudub.
Main Success Scenario:
1. Äpp kontrollib kasutaja
registreeritust. Kui kasutaja pole Saali rent registreeritud, siis kõik muud
menüüd peale „Authoriseeri” on hallid ja neid ei saa pruukida.
2. Ärijuht valib saal.
3. Ärijuht valib päev.
4. Ärijuht valib aeg.
5. Äpp annab infot: saal on hõivatud
ja kirjutab kõige lähem vaba aeg.
6. Ärijuht vajutab nuppu “Eemalda”.
7. Paiknemises aknas ärijuht vajutab
nuppu “Ok”.
Extensions:
7a. Ärijuht vajutab nuppu “Cancel”.
Alternative flow:
Primary Actor:
Administraator
Main Success Scenario:
1. Administraator avab administrative
äppi osa.
2.
Administraator valib saali kataloog.
3.
Administraator valib päev ja aeg järjekorras.
4.
Administraator vajutab „Eemalda“ nuppu.
5. Paiknemises
aknas administraator vajutab nuppu „Ok“.
Extensions:
5a. Administraator vajutab nuppu
“Cancel”.
UC Name: UC05 –
Kasutaja eemaldamine
Scope: Saali rent,
administratiivne süsteem (arvuti)
Level: user goals,
sub-functions
User Goal:
Eemaldada kasutaja, kes pole ei tööta
omaniku firmast, et edaspidi temal ei ole võimalus broneerida saalid.
Primary Actor:
administraator
Stakeholders and interests:
Äpi omanik on huvitatud, et temale
töötajadel keegi ei saa pahandada äppi abil, et nad võivad omada saali rendi
aja täpne infot ja sellega huvitatud ka ärijuhtid.
Success Guarantee (postcondition):
Töötaja, kes nüüd firmas ei tööta ei
saa kasutada äpp.
Main Success Scenario:
1. Administraator on administratiivse
äppi osas.
2. Administraator vajutab “Kasutajad”
kataloog.
3. Administraator valib järjekorrast
kasutaja.
4. Administraator vajutab nuppu
“Eemalda”.
5. Paiknemises aknas administrator
vajutab nuppu “Ok”.
Extensions:
5b. Administraator vajutab nuppu
“Cancel”.
Risk analüüs
ID
|
Riski kirjeldus
|
Tõenäosus
|
Mõju
|
Riski tase
|
Tegevusplaan
|
R00
|
Metarisk – riskid ei ole
ammendavalt kaardistatud
|
n/a
|
n/a
|
Kõrge
|
Riskida kaardistamisega
tuleks jätkuvalt tegelda.
|
R01
|
Töötajate lahkumine
ettevõttest
|
Keskmine
|
Keskmine
|
keskmine
|
Pakkuda paremad töö- ja
palgatingimusi töötajatele
|
R02
|
Firma IT dokumentatsioon
ja korraldatus osutuvad intsidenti korral ebapiisavaks
|
Kõrge
|
Keskmine
|
Kõrge
|
Kvaliteedisüsteemi
algatamine sarnaselt põhitegevusele
|
R03
|
Huvipoolte konfliktid
|
Keskmine
|
Kõrge
|
Kõrge
|
Nõuete ümberdisainimine
|
R04
|
Ettevõtte varade
mittesihtotstarbeline kasutus (mainekahju ja muud ohud)
|
Keskmine
|
Madal
|
Keskmine
|
Kordade ja regulatsioonide
kehtestamine (ennetav)
|
R05
|
Turvanõuete eiramine
töötaja poolt
|
Keskmine
|
Madal
|
Keskmine
|
Töötajakoolitused
|
R06
|
Halvad juhtimisotsused
|
Keskmine
|
Keskmine
|
Keskmine
|
Otsutusprotsessis kõige
osapoolte ära kuulmine
|
Projektiplaan | ||||||
Ülesande kirjeldus | Kokku | Algatamine | Detailimine | Konstrueerimine | Siire | |
Konstrueerimine 1 | Konstrueerimine 2 | |||||
Projekti planeerimine | 10 | 9 | 1 | 0 | 0 | 0 |
Meeskonna kokkupanek | 1 | 1 | 0 | 0 | 0 | 0 |
Ajakava koostamine | 1 | 1 | 0 | 0 | 0 | 0 |
Riskianalüüs | 8 | 7 | 1 | |||
Nõuded | 36 | 18 | 9 | 0 | 0 | 9 |
Ärikirjeldus | 4 | 2 | 1 | 1 | ||
Ärisõnastik | 4 | 2 | 1 | 1 | ||
Ärireeglid | 4 | 2 | 1 | 1 | ||
Mittefunktsionaalsed nõuded | 4 | 2 | 1 | 1 | ||
UC01 - Kasutaja registreerimine | 4 | 2 | 1 | 1 | ||
UC02 - Saali aja kontroll | 4 | 2 | 1 | 1 | ||
UC03 - Saali aja broneerimine | 4 | 2 | 1 | 1 | ||
UC04 - Broneerimine eemaldamine | 4 | 2 | 1 | 1 | ||
UC05 - Kasutaja eemaldamine | 4 | 2 | 1 | 1 | ||
Disain | 76 | 25 | 37 | 0 | 0 | 14 |
Äriinfo mudel | 11 | 7 | 3 | 1 | ||
IT andmemudel | 15 | 6 | 8 | 1 | ||
Dimensioonilised mudelid | 9 | 3 | 5 | 1 | ||
Üldine protsessi mudel | 9 | 3 | 5 | 1 | ||
Komponentidiagramm | 16 | 3 | 8 | 5 | ||
Evitusdiagramm | 16 | 3 | 8 | 5 | ||
Implementatsioon | 309 | 0 | 4 | 120 | 175 | 10 |
Arenduskeskonna ettevalmistamine | 20 | 4 | 6 | 10 | ||
UC01 - Kasutaja registreerimine | 45 | 40 | 5 | |||
UC02 - Saali aja kontroll | 35 | 30 | 5 | |||
UC03 - Saali aja broneerimine | 80 | 25 | 55 | |||
UC04 - Broneerimine eemaldamine | 60 | 10 | 50 | |||
UC05 - Kasutaja eemaldamine | 69 | 9 | 60 | |||
Testimine | 96 | 0 | 8 | 23 | 33 | 32 |
Testkeskonna ettevalmistamine | 10 | 4 | 6 | |||
Testplaani koostamine | 8 | 4 | 3 | 1 | ||
Turvatest | 10 | 3 | 6 | 1 | ||
UC01 - Kasutaja registreerimine | 10 | 5 | 5 | |||
UC02 - Saali aja kontroll | 10 | 6 | 4 | |||
UC03 - Saali aja broneerimine | 10 | 4 | 6 | |||
UC04 - Broneerimine eemaldamine | 10 | 6 | 4 | |||
UC05 - Kasutaja eemaldamine | 9 | 5 | 4 | |||
Interatsioonitest | 19 | 12 | 7 | |||
Paigaldus | 33 | 0 | 0 | 12 | 6 | 15 |
Paigaldusplaani koostamine | 11 | 6 | 5 | |||
Testkeskkonnas | 11 | 6 | 5 | |||
Live-keskkonnas | 11 | 6 | 5 | |||
Keskkonna ettevalmistus | 8 | 8 | ||||
Tarkvara paigaldamine | 8 | 8 | ||||
Koolitus | 32 | 0 | 0 | 0 | 0 | 32 |
Kasutusjuhendi koostamine | 12 | 12 | ||||
Koolitus | 20 | 20 | ||||
Kokku | 600 | 52 | 59 | 155 | 214 | 120 |
Oleku diagramm, Tegevus diagramm, Koostöödiagramm, Jargnevus diagramm,
Komponent diagramm, Evitus diagramm - tulevad veebi failiga mina loodan et täna.
Siin asub minu 3 nädala töö ilma koolituseta.
https://drive.google.com/open?id=1k5DTlPmUkRDAWzQ0O2qC3Umuh2a5NEiP
05.08.2019
Esimene sprint põhitema on Back Endi tööks ettevalmistamine.
Mis mina esimesel sprindil pean tegema:
1)Tööristade valimine
2)Maven seadistamine
3)POM.xml maveni jaoks kirjutamine ja tööristade omavaheline seadistamine
4)Tööristade omavaheline tööde katsetamine
5)Git ja git tööristade valmistane. Git repo tegemine
6)Nädala lõppus kokkuvõtte ja gitile commitide, pushimine
Sprinti tähtsam töörist on Maven mis kasutame projekti ehitamiseks ja teiseks projekti elutsükli osadeks. Projekti sees on kasutusel erinevad tööristrad back-endis, ja selleks et nad töötaksid omavahel Mavenis peaks olema igale tööristale dependencie olema.
Kõik need omavahelised seadised lähevad failile POM.xml, mis on maven kõige tähtsam fail.
Tööristad mis kasutame back-enidis:
1)Spring Boot 2
2)MongoDB
Saame maven projekt teha kasutades erinevad protsessid. Üks variant oleks kohe projekt genereerida.
Spring Booti jaoks saame genereerida kood kas Intellij'ist või kasutades link:
Spring Initializr - https://start.spring.io/
Mina valisin genereerimine linkiga start spring portalist.
Maveni jaoks valisin sellised tööristad:
1)Spring Data MongoDB
2)Spring Web Starter
3)Spring Test
4)Lombok
Pärast genereerimist saime selline struktuur:
1).mvn - maveni kaust mis maven iseseisvalt enda töös kasutab
2)src - kus on siis main ja test kaustad. Põhikaust kuhu tulevikus lähev kood
3).gitignore - git file, mis pärast hakkan kasutama
4)mvnw ja mvnw.cmd - maven scriptid
3)pom.xml - põhi maveni file mis hakkan edasi arendama
Kuna mavenis on olemas maven wrapper mina kasutan wrapper. Maven wrapper annab võimalus töötada projektiga kohe isegi kui maven on installimata. Kõige tähtsam vahe minule praegu on selline, et käsutad mavenis ja maven wrapperis on natukene teised. Näiteks mvnw -help
Kuna pom.xml on juba genereeritud kõikidega tööristage mis minule on kohe vajalikud, siis mina ei hakka praegu rohkem lisama. Mulle näidati ka teised projektid kus oli kasutatud mittu-kihiline struktuur.
Nii siis iga package jaoks oli oma pom.xml ja lisaks sellele oli ka root pom.xml mis panni kõik packagid kokku. Oli näidatud minule ka kuidas on võimalik lisada tööristad mavenile. Üks variantidest kasutada selline portal nagu mvnrepository.com. Seal on vajalik alguses valide mis töörist minule on vajalik pärast seda valida töörista version ja siis valida "maven", pärast seda lihtsalt koperin portalist enda pom.xml failile selle töörista dependency.
Selleks et katsetada et spring-boot töötab peaksin alguses teha projekti root kaustal
"mvnw clean install" ( kasutasin Windows Command Promt ) , ja siis tegin "mvnw spring-boot:run". Pärast seda avasin chrome browser kus sisestades "localhost:8080" sain default tühi leht spring-bootist. See tähendas et spring-boot toimus. Pärast seda tegin git init, commit ja lõppus kui localne git oli ühendatud github reposirotiumiga sain teha git push -u origin master. Nii esimene nädala kokkuvõttes sain 2 commiti: init ja lisandid.
Teine Sprint.
Ühendame spring-boot2 MongoDB.
Mis oli tehtud:
Kasutasin MVC - Model, View, Controller tehnika.
Esimest luuaksin 3 package:
1)Entity - siin asuvad kõik "kõige lihtsamad" ühikud BD - olemused
2)Presistence - keskmine osa View kontrollerite ja Entity (model) vahel
3)web - siin asuvad kõik kontrollerid
Entity folderis mina luuaksin:
1)Conference - entity konferets. Kõik konferentsid ehitatakse sellega "šablooniga"
2)ConferenceRoom - entity toad. Kõik toad ehitatakse sellega "šablooniga"
3)Participant - osaleja. Kõik osaleja ehitatakse sellega "šablooniga".
Lisaks lisasin seal fail DbSeeder tema on vaja andmebaaside täitmiseks. Tema on ajutine, et töö vahel andmebaasis on midagi testiiseks. Pärast kutsutan see fail.
Luuaksin fail Persistence folderis:
Standarnte interfasi kirjutamine. Tema võtab enda Konferentse millega ühendasid Participant, ConferenceRoom.
Luuksin fail web folderis:
Fail Kontroller. Kontrollerite töö ühendatud Http request, responce. REST, url-ga
Meie röögime serveriga. Front-end saadab request (küsimus) serverisse et võta mingit resultaat. Pärast seda server saadab reponse (vastus) tagasi Front-endisse.
Kõige viimane tegemine - fail application.properties - kirjutasin set-ups andmebaasi töötamiks. Port, andmebaaside nimetus mongoDB-sse - ConferenceDb, host jätsin - localhost.
Kõik minu töö on githubis.
Kolmas Sprint.
Siin asub minu 3 nädala töö ilma koolituseta.
https://drive.google.com/open?id=1k5DTlPmUkRDAWzQ0O2qC3Umuh2a5NEiP
05.08.2019
Esimene sprint põhitema on Back Endi tööks ettevalmistamine.
Mis mina esimesel sprindil pean tegema:
1)Tööristade valimine
2)Maven seadistamine
3)POM.xml maveni jaoks kirjutamine ja tööristade omavaheline seadistamine
4)Tööristade omavaheline tööde katsetamine
5)Git ja git tööristade valmistane. Git repo tegemine
6)Nädala lõppus kokkuvõtte ja gitile commitide, pushimine
Sprinti tähtsam töörist on Maven mis kasutame projekti ehitamiseks ja teiseks projekti elutsükli osadeks. Projekti sees on kasutusel erinevad tööristrad back-endis, ja selleks et nad töötaksid omavahel Mavenis peaks olema igale tööristale dependencie olema.
Kõik need omavahelised seadised lähevad failile POM.xml, mis on maven kõige tähtsam fail.
Tööristad mis kasutame back-enidis:
1)Spring Boot 2
2)MongoDB
Saame maven projekt teha kasutades erinevad protsessid. Üks variant oleks kohe projekt genereerida.
Spring Booti jaoks saame genereerida kood kas Intellij'ist või kasutades link:
Spring Initializr - https://start.spring.io/
Mina valisin genereerimine linkiga start spring portalist.
Maveni jaoks valisin sellised tööristad:
1)Spring Data MongoDB
2)Spring Web Starter
3)Spring Test
4)Lombok
Pärast genereerimist saime selline struktuur:
1).mvn - maveni kaust mis maven iseseisvalt enda töös kasutab
2)src - kus on siis main ja test kaustad. Põhikaust kuhu tulevikus lähev kood
3).gitignore - git file, mis pärast hakkan kasutama
4)mvnw ja mvnw.cmd - maven scriptid
3)pom.xml - põhi maveni file mis hakkan edasi arendama
Kuna mavenis on olemas maven wrapper mina kasutan wrapper. Maven wrapper annab võimalus töötada projektiga kohe isegi kui maven on installimata. Kõige tähtsam vahe minule praegu on selline, et käsutad mavenis ja maven wrapperis on natukene teised. Näiteks mvnw -help
Kuna pom.xml on juba genereeritud kõikidega tööristage mis minule on kohe vajalikud, siis mina ei hakka praegu rohkem lisama. Mulle näidati ka teised projektid kus oli kasutatud mittu-kihiline struktuur.
Nii siis iga package jaoks oli oma pom.xml ja lisaks sellele oli ka root pom.xml mis panni kõik packagid kokku. Oli näidatud minule ka kuidas on võimalik lisada tööristad mavenile. Üks variantidest kasutada selline portal nagu mvnrepository.com. Seal on vajalik alguses valide mis töörist minule on vajalik pärast seda valida töörista version ja siis valida "maven", pärast seda lihtsalt koperin portalist enda pom.xml failile selle töörista dependency.
Selleks et katsetada et spring-boot töötab peaksin alguses teha projekti root kaustal
"mvnw clean install" ( kasutasin Windows Command Promt ) , ja siis tegin "mvnw spring-boot:run". Pärast seda avasin chrome browser kus sisestades "localhost:8080" sain default tühi leht spring-bootist. See tähendas et spring-boot toimus. Pärast seda tegin git init, commit ja lõppus kui localne git oli ühendatud github reposirotiumiga sain teha git push -u origin master. Nii esimene nädala kokkuvõttes sain 2 commiti: init ja lisandid.
Teine Sprint.
Teeme MVC - Model View Controller FE ja DB vahel struktuur:
1)Kontroller - MainController.java
2)Service layer - ConferenceRepository.java
3)Model ( 3 entity + dbseeder ) - Conference.java, ConferenceRoom.java, Participant.java, DbSeeder.java (fail mis teeb puhas andmed katsetamiseks).
Ühendame spring-boot2 MongoDB.
Mis oli tehtud:
Kasutasin MVC - Model, View, Controller tehnika.
Esimest luuaksin 3 package:
1)Entity - siin asuvad kõik "kõige lihtsamad" ühikud BD - olemused
2)Presistence - keskmine osa View kontrollerite ja Entity (model) vahel
3)web - siin asuvad kõik kontrollerid
Entity folderis mina luuaksin:
1)Conference - entity konferets. Kõik konferentsid ehitatakse sellega "šablooniga"
2)ConferenceRoom - entity toad. Kõik toad ehitatakse sellega "šablooniga"
3)Participant - osaleja. Kõik osaleja ehitatakse sellega "šablooniga".
Lisaks lisasin seal fail DbSeeder tema on vaja andmebaaside täitmiseks. Tema on ajutine, et töö vahel andmebaasis on midagi testiiseks. Pärast kutsutan see fail.
Luuaksin fail Persistence folderis:
Standarnte interfasi kirjutamine. Tema võtab enda Konferentse millega ühendasid Participant, ConferenceRoom.
Luuksin fail web folderis:
Fail Kontroller. Kontrollerite töö ühendatud Http request, responce. REST, url-ga
Meie röögime serveriga. Front-end saadab request (küsimus) serverisse et võta mingit resultaat. Pärast seda server saadab reponse (vastus) tagasi Front-endisse.
Kõige viimane tegemine - fail application.properties - kirjutasin set-ups andmebaasi töötamiks. Port, andmebaaside nimetus mongoDB-sse - ConferenceDb, host jätsin - localhost.
Kõik minu töö on githubis.
Kolmas Sprint.
Viimane Back-end nädal.
Teenused: debugging ja Back-end teenused. Õpin kasutada Postman (tema abil teen requestid AB ja
pean võta õiged vastused serverist, pärast kontrollin mis toimub mongoDB-s), õpin töötada Chrome
Devtools-ga. Kontrollin kõik kontrollerid, sellega postman-i abil teen kõik REST küsimused
Back-Endisse.
Mis viga oli eelmises kommitis kaks annotatsioons (NoArgsConstructor ja AllArgsConstructor) ei töötanud nagu peavad. Lombook väga õrn instrument. Ta oli tehtud seeleks et, vähendada boiler plate code kasutamist. Ühe sõnadega et ei kirjuta puhas konstruktor ja täis konstruktor mina kasutasin lombok. Osaliselt annotatsioonid mina hoiaksin temaga, näiteks @Data - annab võimalus ei kirjuta geters, seters. Alguses mina tahaksin kasutada swagger nüüd ei taha, kuna mul on vähe kontrollerid ja ei ole vaja kasutada
veel üks instrument mis ei ole vaja. Mina paigaldasin postman. See on instrument mille abil mina saadan
küsimused tomcat serverisse mis on ühendatud spring-bootisse. Ka serveris on MongoDB andmebaas.
Nüüd on vaja REST. Kasutasin kindlad küsimused mis käivad kinldadega kontrolleridesse, mis algavad kindel funktsionaal, mis mõjutab andmebaasile. Testisin nagu nii küik kontrollerid.
Selleks et küik töötab, käivitan spring-boot projekti root-es komandi kasutamiks mvnw spring-boot:run
Saamas terminalis kontrollin kas spring-boot käivitas.
Avan Mongo DB compass - MongoDB GUI. Et hästi vaadata mis toimub BD-s kasutasin MongoDB GUI
Aga kui on vaja anda mingid korraldused on vaja kasutada MongoDB shell (c:\Program Files\MongoDB\Server\4.0\bin\mongo)
Shell-is kasutasin järgmised korraldused:
show dbs - näitab kõik AB lokaalses Mongo-s
use ConferenceDb - algab kasutada ainult AB nimetusega ConferenceDb
show collections - näitab kollektsioon Mongo-st.
db.Conferences.find().pretty() - annab kõik andmed kollektsioonist.
Postmanis kõiga tähtsamad elementid (MainController.java kasutamiseks) on:
1)GET - valin missugune meetod saada HTTP küsimusega serverisse.
2)URL - kirjutasin kõigile konferentsile localhost:8080/api/conferences
3)Body - nõitasin üks konferents kolmaga kasutajaga (DbSeeder)
See oli kuidas mina kontrollisin getAll kontroller. Kõik tesed mina kontrollisin:
1)getConference: localhost:8080/api/conferences/5d6040cd6a3fa32e54ecee81 - ID andis postman
2)createConference: postmani abil kasutasin järgmised instrumeentid:
-valin meetod POST
-kirjutasin URL - localhost:8080/api/conferences/create
-avan Body
-Seal kirjutasin andmed millesed POST-iga tulevad Back-endisse ja pärast AB-sse
-Valin format raw, JSON(application/json)
-Nägin et postman ise kirjutas URL-sse vajalised parametrid
- SEND.
pean võta õiged vastused serverist, pärast kontrollin mis toimub mongoDB-s), õpin töötada Chrome
Devtools-ga. Kontrollin kõik kontrollerid, sellega postman-i abil teen kõik REST küsimused
Back-Endisse.
Mis viga oli eelmises kommitis kaks annotatsioons (NoArgsConstructor ja AllArgsConstructor) ei töötanud nagu peavad. Lombook väga õrn instrument. Ta oli tehtud seeleks et, vähendada boiler plate code kasutamist. Ühe sõnadega et ei kirjuta puhas konstruktor ja täis konstruktor mina kasutasin lombok. Osaliselt annotatsioonid mina hoiaksin temaga, näiteks @Data - annab võimalus ei kirjuta geters, seters. Alguses mina tahaksin kasutada swagger nüüd ei taha, kuna mul on vähe kontrollerid ja ei ole vaja kasutada
veel üks instrument mis ei ole vaja. Mina paigaldasin postman. See on instrument mille abil mina saadan
küsimused tomcat serverisse mis on ühendatud spring-bootisse. Ka serveris on MongoDB andmebaas.
Nüüd on vaja REST. Kasutasin kindlad küsimused mis käivad kinldadega kontrolleridesse, mis algavad kindel funktsionaal, mis mõjutab andmebaasile. Testisin nagu nii küik kontrollerid.
Selleks et küik töötab, käivitan spring-boot projekti root-es komandi kasutamiks mvnw spring-boot:run
Saamas terminalis kontrollin kas spring-boot käivitas.
Avan Mongo DB compass - MongoDB GUI. Et hästi vaadata mis toimub BD-s kasutasin MongoDB GUI
Aga kui on vaja anda mingid korraldused on vaja kasutada MongoDB shell (c:\Program Files\MongoDB\Server\4.0\bin\mongo)
Shell-is kasutasin järgmised korraldused:
show dbs - näitab kõik AB lokaalses Mongo-s
use ConferenceDb - algab kasutada ainult AB nimetusega ConferenceDb
show collections - näitab kollektsioon Mongo-st.
db.Conferences.find().pretty() - annab kõik andmed kollektsioonist.
Postmanis kõiga tähtsamad elementid (MainController.java kasutamiseks) on:
1)GET - valin missugune meetod saada HTTP küsimusega serverisse.
2)URL - kirjutasin kõigile konferentsile localhost:8080/api/conferences
3)Body - nõitasin üks konferents kolmaga kasutajaga (DbSeeder)
See oli kuidas mina kontrollisin getAll kontroller. Kõik tesed mina kontrollisin:
1)getConference: localhost:8080/api/conferences/5d6040cd6a3fa32e54ecee81 - ID andis postman
2)createConference: postmani abil kasutasin järgmised instrumeentid:
-valin meetod POST
-kirjutasin URL - localhost:8080/api/conferences/create
-avan Body
-Seal kirjutasin andmed millesed POST-iga tulevad Back-endisse ja pärast AB-sse
-Valin format raw, JSON(application/json)
-Nägin et postman ise kirjutas URL-sse vajalised parametrid
- SEND.
3)updateConference:
Kasutasin saamad tegevused mis oli eelmises osas aga nüüd:
-meetod POST -> PUT
-url: localhost:8080/api/conferences/5d6040cd6a3fa32e54ecee81
-nagu oli createConference koos küsimusega mina saadan küsimusi-body. Seal kirjutasin andmed mis tulevad AB-sse vana andmese asemel.
-kontrollisin need
-vaatan need MongoDB Shell ja MongoDB compass
4)deleteConference:
Postman-s kasutan meetod DELETE
URL
localhost:8080/api/conferences/5d6040cd6a3fa32e54ecee81
kõik. Serverisse oli saadetud küsimus Back-End otsib andmed AB-s ja kutsutab need.
Neljas Sprint
Kirjutada Back-End README
Valida Webpack buileri intrumentide valik
Ettevalmistada ja seadmetada üles Webpack builder, saamal ajal ülevaadata is onBabel, Webpack, Yarn, Prettier, ESlint.
Kirjutada ja üles seadmetada kõik config failid, package.json jne.
Peased ristvarad: 1) cmder - mugav terminal inlisega git bash 2) webpack - project builder koodi osa oli kirjutatud temaga 3) yarn - täiendab webpack 4) täiend ristvara: prettierrc, eslint 5) babel - ristvara mis on vaja et genereerida ES6 -> ES5 JavaScript mis töötab kõigis brauseriga. 6) React, Redux, React Router - ristvarad millega kirjutatud Front-Endi kood. Koodi formaat JSX 7) Axios - middleware - risvara mille abis front röögib back-endiga.
Et alustada cmder peaksin väljalülitada üks Windows funktsioon:
Virus and threat protection settings. -> Real time protection.
Peaksin ka instaleerida tudengi versioon Intellij Ultimate TTU Uni-ID kasutamisega. See oli selleks et mul on võimalus töötada seal Front-Endiga IDE Intellij kasutamisega.
Instaleerisin ka npm - node package manager, yarn. Npm on vaja et instaleerida kõik raamatukogud
npm install
Pärast instaleerisin WebPack - saama asi nagu builder aga Front-Endisse.
yarn add webpack
yarn run build
yarn run dev-server
Lisasin sellel nädalal Front-Endi koodi kõige suuremaks osa. Reakt - Front-Endi alus. Pärast kasutasin Redux nagu stor-manager. Store - see on Front-Endi level sellel ajal. Selleks et kasutaja võiks töötaja mitte ainult ühes URL-is brauseris, aga omada erinevad URL-d erinevadele veebilehele kasutasin React Router.
Folderide struktuur:
1) Reakt - components, app.js
2) Redux - actions, reducers, store
3) Axios - axios
4) React Router - routers
Failid:
1) package.json - siin kirjutatakse kõik tööristad Fron-Endisse. Webpack kasutab selline fail nagu tööristade järjekord.
2) .babelrc - instrumentide babel seaded
3) webpack.config.js - siin asuvad kõik WebPack seaded.
4) yarn.lock - fail kus asub sellise prjekti versiooni instrumentide järjekord. See tähendab et, kui yarn.lock ei muuda, siis package.json ei muuda ka.
Ka package.json-s nüüd asub peafunktsioonide järjekods. Siin, näiteks kirjutatud mis tähendab yarn run dev-server
Viies Sprint
Peaplaan - teha et Front-End ja Back-End töötavad õigesti koos.
Debugging
Kirjutada Readme (Front ja Back-End).
Viies ja kuues nädal.
Kahjuks viies sprinti tarneaeg natuke liitub. Aga see oli väga täpne õpetus.
Viie nädala alguses mina kontrollisin kuidas Front-end paikneb veebis ja ilma näidata lehekülje standartne disain tame paistab Error leht.
Minu praktika kuraator kiresti nägib kus oli viga, aga kuna see oli väga oluline fail mis ei olnud tema otsustas, et parem kui mina raiskan aega, aga otsin sellina viga ise.
Mis mina tegin:
1) Kontrollisin kogu fron-endi kood, peaesmärk käivitada kogu äpp;
2) Läbivaatasin kogu projekte struktuur, kõige faili ja kogu instrumentide loogika ka oli kontrollitud;
3) Lõpuks mina otsisin kus viga oli: ei olnud kõige täptsam Front-endi fail: index.html
Selline fail on vaja selleks, et ta peab käivitada bundle.js
Oma järjekorrast bundle.js - kompeleeritud fail Front-endi instrumentidega. Seepärast, fail index.html toob ise kõige baasiline HTML struktuur ja lisas <script src="/bundle.js"></script>
Kõik teised bagid mina ei parandasin, kuna need ei olnud peaesmärk.
Seitsme nädala plaanid.
1) Vaadata reaalelus, kuidas on nähtud Debugging protsess. Sellise protsessi peaesmärk korraldada Front-Endi funktsionaal. See on vaja et kõike Front-Endi funktsionaal annab õigesti kõiged muutusid Back-Endisse.
2) Kui aeg on, siis proovida vaadata CSS ja SCSS. Plus ülevaadata miks kuraator pakkusid kasutada Bootstrap ja ei kasuta React. Ja lõpuks vaadata kuidas default bootstrap võib natuke "parandada" CSS-ga (Cascade Style Sheets - koodi mis vastutab veebi visuaalse osade).
Peaesmärk: maksimaalselt Front-Endi tegema, et on võimalus alustada järgmisele äppi rakendusele osale.
Viimased nädalad (resultaatid).
Peased ristvarad: 1) cmder - mugav terminal inlisega git bash 2) webpack - project builder koodi osa oli kirjutatud temaga 3) yarn - täiendab webpack 4) täiend ristvara: prettierrc, eslint 5) babel - ristvara mis on vaja et genereerida ES6 -> ES5 JavaScript mis töötab kõigis brauseriga. 6) React, Redux, React Router - ristvarad millega kirjutatud Front-Endi kood. Koodi formaat JSX 7) Axios - middleware - risvara mille abis front röögib back-endiga.
Et alustada cmder peaksin väljalülitada üks Windows funktsioon:
Virus and threat protection settings. -> Real time protection.
Peaksin ka instaleerida tudengi versioon Intellij Ultimate TTU Uni-ID kasutamisega. See oli selleks et mul on võimalus töötada seal Front-Endiga IDE Intellij kasutamisega.
Instaleerisin ka npm - node package manager, yarn. Npm on vaja et instaleerida kõik raamatukogud
npm install
Pärast instaleerisin WebPack - saama asi nagu builder aga Front-Endisse.
yarn add webpack
yarn run build
yarn run dev-server
Lisasin sellel nädalal Front-Endi koodi kõige suuremaks osa. Reakt - Front-Endi alus. Pärast kasutasin Redux nagu stor-manager. Store - see on Front-Endi level sellel ajal. Selleks et kasutaja võiks töötaja mitte ainult ühes URL-is brauseris, aga omada erinevad URL-d erinevadele veebilehele kasutasin React Router.
Folderide struktuur:
1) Reakt - components, app.js
2) Redux - actions, reducers, store
3) Axios - axios
4) React Router - routers
Failid:
1) package.json - siin kirjutatakse kõik tööristad Fron-Endisse. Webpack kasutab selline fail nagu tööristade järjekord.
2) .babelrc - instrumentide babel seaded
3) webpack.config.js - siin asuvad kõik WebPack seaded.
4) yarn.lock - fail kus asub sellise prjekti versiooni instrumentide järjekord. See tähendab et, kui yarn.lock ei muuda, siis package.json ei muuda ka.
Ka package.json-s nüüd asub peafunktsioonide järjekods. Siin, näiteks kirjutatud mis tähendab yarn run dev-server
Viies Sprint
Peaplaan - teha et Front-End ja Back-End töötavad õigesti koos.
Debugging
Kirjutada Readme (Front ja Back-End).
Viies ja kuues nädal.
Kahjuks viies sprinti tarneaeg natuke liitub. Aga see oli väga täpne õpetus.
Viie nädala alguses mina kontrollisin kuidas Front-end paikneb veebis ja ilma näidata lehekülje standartne disain tame paistab Error leht.
Minu praktika kuraator kiresti nägib kus oli viga, aga kuna see oli väga oluline fail mis ei olnud tema otsustas, et parem kui mina raiskan aega, aga otsin sellina viga ise.
Mis mina tegin:
1) Kontrollisin kogu fron-endi kood, peaesmärk käivitada kogu äpp;
2) Läbivaatasin kogu projekte struktuur, kõige faili ja kogu instrumentide loogika ka oli kontrollitud;
3) Lõpuks mina otsisin kus viga oli: ei olnud kõige täptsam Front-endi fail: index.html
Selline fail on vaja selleks, et ta peab käivitada bundle.js
Oma järjekorrast bundle.js - kompeleeritud fail Front-endi instrumentidega. Seepärast, fail index.html toob ise kõige baasiline HTML struktuur ja lisas <script src="/bundle.js"></script>
Kõik teised bagid mina ei parandasin, kuna need ei olnud peaesmärk.
Seitsme nädala plaanid.
1) Vaadata reaalelus, kuidas on nähtud Debugging protsess. Sellise protsessi peaesmärk korraldada Front-Endi funktsionaal. See on vaja et kõike Front-Endi funktsionaal annab õigesti kõiged muutusid Back-Endisse.
2) Kui aeg on, siis proovida vaadata CSS ja SCSS. Plus ülevaadata miks kuraator pakkusid kasutada Bootstrap ja ei kasuta React. Ja lõpuks vaadata kuidas default bootstrap võib natuke "parandada" CSS-ga (Cascade Style Sheets - koodi mis vastutab veebi visuaalse osade).
Peaesmärk: maksimaalselt Front-Endi tegema, et on võimalus alustada järgmisele äppi rakendusele osale.
Viimased nädalad (resultaatid).
Mis resultaatis töötab õigesti:
1) Back-End täiesti kontrollitud ja kõige tema funktsionaal töötab õigesti
2) Visuaalne Front-End täiesti kontrollitud, töötab - movk-data laadib kõik tehtud Back-End
Get all, get by id, create jne töötab.
Kui vaatame REST api - on olemas neli tavalised funktsioonid, mis kompileeritatakse esimesekt Back-Endis ja pärast tuuakse Back-Endisse. CRUD - Create, Read, Update, Delete.
Mis kahjuks tegemata. Oli lõpetamata CSS - tänapäeva lõpuks visuaalse kujunduseks kasutatakse Reactstrap, Bootstrap. Need kaks riistad on CSS - Cascade Style Sheets (stiilide taabel) raamatukogud. Selleks nuppud on sinised ja nähtud nagu nii.
Missugused riistad kasutatakse Front-Endi parandamiseks:
1) Chrome Dev tools - suure osas - console:
Shift + Ctrl + i avab chrome dev tools.
2) Redux dev tools - esimesest mina laadin extension chrome-sse, mis näetakse nagu töörist chrome dev tools-s.
3) Intellij Ultimate student edition - Debugger
Avamisega faili package.json näeme äppi alustamisede variaantid:
Valin debug režiim.
Ja nüüd koodi kohtas kus on pantud break point
Näidatakse andmed äppist missugused on olemas äppis sellel ajal.
Näiteks, kõik konferetsid, kasutajad jne, missugused sellel ajal on olemas sellel äppi punktis.
4) Äppi visuaalse osa kontrollimis ja paranduses kasutasin chrome dev-tools ka. Aga kasutasin komponeentide selektor chrome dev tools-st:
Jah!
Väga vabandage! Mina mõtlesin et mina andsin alguses äppi GitHubi aadress.
https://github.com/ikanyuch/conferenceapp.git
Nüüd annan.
Kokkuleppe.
• Mis üllatas?
Ülatas väga see osa, et Internetis nii palju infot, aga kui ei ole kogemus ja aega tema kasutamist ei ole võimalik. On küik õigesti ja lihtsalt kirjutatud, teen nagu oli kirjutatud, aga ei tööta. Vaatan veel üks kord, teen saama asjad - ei tööta. Lõpuks, kuna soovitaja internetis on juba professionaal, tema ei kirjuta väikesed osad, millised tema mõttes on arusaadav kõigile. Ei arusaadav!!!!
Ülatas veel üks asi - kui kirjutan midagi foorumisse naiste personaažiga - väga kiire saadan lahtine vastus pildiga - ja kõik arusaadav. Kui teha saama meeste personaažiga - maksimum mis saadavad - lingid officiaalsele veeilehele ja plus infot et ma on loll!!
• Mida teed täna teisiti kui alguses?
Ma tahan hoida minu oskused mis ma võtsin praktikast. Aga tahan tulla tagasi projeteerimise töödesse, kuna seal on suurem palk mulle tänapäevas (on juba tööleping) aga nüüd ma võin kodida Tecla Struktures (saama koodi kui Java). Ma tahan lõpeda ülikool ja pärast proovida tulla hea koodide koolitusele. Pärast saatmist normaalsed oskused proovida ise programeerijana normaalses kuupalkas. Või mina igal nädalal vaatan tööpakkumised ja kui mul tuleb õõnetus - saada projektijuhina.
Alustada minu IT tööelu proggrameerijana-internina ei taha. Mul on väike laps - liiga väike kuupalkad kahjuks. Ja praktika ettevõttes kahjuks ei tule veel suur projektid et neid on võimulus võta mulle projektijuhi tööse (aga kui on võimalus pärast võtavad).
• Mis olid kõige väärtuslikumad (õpetlikumad) eksimused/probleemid?
Programeerimine, oskus otsida lähendused internetis. Infot vajaliku rakendust ja mis nad teevad.
• Millised kogenenumate meeskonnaliikmete pädevused/oskused teevad (heas mõttes) kadedaks? Milliseid teadmisi-oskusi soovid ennekõike enda puhul edasi arendada?
See probleem mina nägin millal algasid esimesed rakenduse ained ülikoolis. Mul on väga-väga raske arusaadata koodi loogika. Mul on raske arusaadata kuidas õigesti kompileerida koodi lahendused. Aga palju minu kaasõpilased saadsin aru need asjad nagu nad teevad seda eluala. Ja minu nägin et nad mõtlevad teiseks, räägivad teiseks nende loogika on teine. Mulle meeldivad oma resultaatid aga ma pean vahetada oma pea.
Vot need asjad (heas mõttes) mind kadedaks!
• Mille poolest selline roll/töölaud/meeskond/organisatsioon Sulle sobivad, mis on pigem väljakutsuvaks osutunud?
Need asjad mina juba vastasin üleval. Mulle on väga raske koodida. Raske oli ilma koosolekuta teisest osast. Ilma süidamit kuhugi. Ainult arvuti ja internet. Kahjuks lõpuks - see veel ei ole mina. Aga proovin muuta ise.
• Milline meeskonnaliige Sa arvad, et Sa oled? Mis on Sinu tugevused?
Mina on projektijuht. Ma saan aru kuidas asjad võivad töötada. Ma on kommunikatiivne ja tean hästi kuidas teha kokkulepped. Ma saan aru rakendaja keeled (inimesed) ja võin tõlkida mis nemad tahavad õelda klienditele ja tagasi. Ja mulle meeldib rääkida inimestega.
• Kuhu edasi?
See vastus ka oli!!! Projekteeris. Tekla struture koodimis. Täna päeval ma on objektijuht peaehitamise ettevõttes aga see on ainult nimetus. Real elus mina objekit olen hästi kui 20 minutid nädalas. Joonised, koosolekud, teiste objekti vaatamine ja abi, jne. Ma tahan proovida võta projektijuhi koht. Õhtus, ui on aeg - natuke koodin või lugen. Ootan millal lõppen ülikool, siis on aeg professionaalse koolituse tulla ja seal võta praktikad ja infot kus võta oma tasede ülesanded, suurendada koodeerimise kogemus ja alusta IT töö normaalsest tasest, kui ei võta selles ajas projektijuhi töökoht.
• Kui kaugel oled lõputööst? Kas praeguse töölauaga saaks seda ühildada ning kas oled selles osas mingeid samme teinud? Tööandjaga/võimaliku juhendajaga rääkinud?
Ei mõtlesin veel sellest. Õigesti - ei tea. Mul on vaja veel lõpeda Hulgad teoorija aine (väga keeruline mulle), Filosoofia aine (ei teadnud et seal on vaja suurepärane Eesti keele oskus emakeelne tasemel, et võta paalid millised annavad mulle võimalus saada kõige halvasti hindamise - raiskan 300 sõna jaoks minimuum nädal iga õhtuti tõlgemist ja juba kaks korda oli minu teksid kutsatud. Ei tea veel mis teha) ja Inglise keel - temaga ei ole probleemi aga ka võtab aega.
Ma tulen tagasi diploomi tööde küsimust pärast praktika kaitsmist ja need kolm ained lõpetamist.
Kokkuleppe.
• Mis üllatas?
Ülatas väga see osa, et Internetis nii palju infot, aga kui ei ole kogemus ja aega tema kasutamist ei ole võimalik. On küik õigesti ja lihtsalt kirjutatud, teen nagu oli kirjutatud, aga ei tööta. Vaatan veel üks kord, teen saama asjad - ei tööta. Lõpuks, kuna soovitaja internetis on juba professionaal, tema ei kirjuta väikesed osad, millised tema mõttes on arusaadav kõigile. Ei arusaadav!!!!
Ülatas veel üks asi - kui kirjutan midagi foorumisse naiste personaažiga - väga kiire saadan lahtine vastus pildiga - ja kõik arusaadav. Kui teha saama meeste personaažiga - maksimum mis saadavad - lingid officiaalsele veeilehele ja plus infot et ma on loll!!
• Mida teed täna teisiti kui alguses?
Ma tahan hoida minu oskused mis ma võtsin praktikast. Aga tahan tulla tagasi projeteerimise töödesse, kuna seal on suurem palk mulle tänapäevas (on juba tööleping) aga nüüd ma võin kodida Tecla Struktures (saama koodi kui Java). Ma tahan lõpeda ülikool ja pärast proovida tulla hea koodide koolitusele. Pärast saatmist normaalsed oskused proovida ise programeerijana normaalses kuupalkas. Või mina igal nädalal vaatan tööpakkumised ja kui mul tuleb õõnetus - saada projektijuhina.
Alustada minu IT tööelu proggrameerijana-internina ei taha. Mul on väike laps - liiga väike kuupalkad kahjuks. Ja praktika ettevõttes kahjuks ei tule veel suur projektid et neid on võimulus võta mulle projektijuhi tööse (aga kui on võimalus pärast võtavad).
• Mis olid kõige väärtuslikumad (õpetlikumad) eksimused/probleemid?
Programeerimine, oskus otsida lähendused internetis. Infot vajaliku rakendust ja mis nad teevad.
• Millised kogenenumate meeskonnaliikmete pädevused/oskused teevad (heas mõttes) kadedaks? Milliseid teadmisi-oskusi soovid ennekõike enda puhul edasi arendada?
See probleem mina nägin millal algasid esimesed rakenduse ained ülikoolis. Mul on väga-väga raske arusaadata koodi loogika. Mul on raske arusaadata kuidas õigesti kompileerida koodi lahendused. Aga palju minu kaasõpilased saadsin aru need asjad nagu nad teevad seda eluala. Ja minu nägin et nad mõtlevad teiseks, räägivad teiseks nende loogika on teine. Mulle meeldivad oma resultaatid aga ma pean vahetada oma pea.
Vot need asjad (heas mõttes) mind kadedaks!
• Mille poolest selline roll/töölaud/meeskond/organisatsioon Sulle sobivad, mis on pigem väljakutsuvaks osutunud?
Need asjad mina juba vastasin üleval. Mulle on väga raske koodida. Raske oli ilma koosolekuta teisest osast. Ilma süidamit kuhugi. Ainult arvuti ja internet. Kahjuks lõpuks - see veel ei ole mina. Aga proovin muuta ise.
• Milline meeskonnaliige Sa arvad, et Sa oled? Mis on Sinu tugevused?
Mina on projektijuht. Ma saan aru kuidas asjad võivad töötada. Ma on kommunikatiivne ja tean hästi kuidas teha kokkulepped. Ma saan aru rakendaja keeled (inimesed) ja võin tõlkida mis nemad tahavad õelda klienditele ja tagasi. Ja mulle meeldib rääkida inimestega.
• Kuhu edasi?
See vastus ka oli!!! Projekteeris. Tekla struture koodimis. Täna päeval ma on objektijuht peaehitamise ettevõttes aga see on ainult nimetus. Real elus mina objekit olen hästi kui 20 minutid nädalas. Joonised, koosolekud, teiste objekti vaatamine ja abi, jne. Ma tahan proovida võta projektijuhi koht. Õhtus, ui on aeg - natuke koodin või lugen. Ootan millal lõppen ülikool, siis on aeg professionaalse koolituse tulla ja seal võta praktikad ja infot kus võta oma tasede ülesanded, suurendada koodeerimise kogemus ja alusta IT töö normaalsest tasest, kui ei võta selles ajas projektijuhi töökoht.
• Kui kaugel oled lõputööst? Kas praeguse töölauaga saaks seda ühildada ning kas oled selles osas mingeid samme teinud? Tööandjaga/võimaliku juhendajaga rääkinud?
Ei mõtlesin veel sellest. Õigesti - ei tea. Mul on vaja veel lõpeda Hulgad teoorija aine (väga keeruline mulle), Filosoofia aine (ei teadnud et seal on vaja suurepärane Eesti keele oskus emakeelne tasemel, et võta paalid millised annavad mulle võimalus saada kõige halvasti hindamise - raiskan 300 sõna jaoks minimuum nädal iga õhtuti tõlgemist ja juba kaks korda oli minu teksid kutsatud. Ei tea veel mis teha) ja Inglise keel - temaga ei ole probleemi aga ka võtab aega.
Ma tulen tagasi diploomi tööde küsimust pärast praktika kaitsmist ja need kolm ained lõpetamist.