Užduotį galima atlikti pagal skirtingus sudėtingumo lygius ( level 1
, level 2
, level 3
ir Bonus
). Kiekviename lygmenyje gaunami taškai už atliktus reikalavimus. Taškai sumuojami į bendrą balą pagal kurį sprendžiamas tavo stojimas į NFQ Akademiją.
Geriausiai atlikusiems užduotį dar bus 30 min pokalbis susipažinimui ( telefonu ).
Užduotį atlikti ir atsiųsti iki rugsėjo 23-tos vidurnakčio. Siųsti čia - https://forms.gle/cUpGNWfi991iicidA
Norint įgyvendinti level 2 ar level 3 reikės įgyvendinti level 1
Ligoninėse, bankuose, pašte, pasų išdavimo skyriuose ir pan. galima matyti ekranus su skaičiukais. Ateini, gauni lapuką pas pasirinktą specialistą/darbuotoją/langelį ir lauki savo eilės.
Ar kada pagalvojote, kaip būtų faina, jei žinotumėte kiek maždaug dar reikia laukti eilėje ir atitinkamai susiplanuoti savo darbus.
- Projektas įkeltas į public GitHub ( tvarkingai, o ne zip failas ) ir duotas veikiantis GitHub URL
- Stengiamasi darbus skaidyti į logiškas dalis ir juos įkelti kaip atskirus
commit
į versijų valdymo sistemą - Projektas yra live - t.y. patalpintas viešai ir prieinamas, ir duotas veikiantis URL
- Projekto aprašymas - trumpai pagrįsk, kodėl pasirinkai tokį sprendimą (3 – 5 sakiniai)
- Nenaudojant framework ( kaip Laravel, Symfony ir pan ) bus skiriami papildomi taškai
- Kodas rašomas tvarkingai (naudojamas
PSR-2
ar pan. kodo stilius, linkas apačioje) - Projektas veikia be fatal, parse error ir pan. notice
- Panaudotas objektinis programavimas
- README failas yra
Siūloma (papildoma) literatūra:
GitHub instrukcijos
- https://www.codecademy.com/courses/learn-git/lessons/git-workflow
- https://help.github.com/en/articles/adding-a-file-to-a-repository-using-the-command-line
- https://help.github.com/en/articles/adding-an-existing-project-to-github-using-the-command-line
Svetainės talpinimas į serverį
- https://scotch.io/@phalconVee/deploying-a-php-and-mysql-web-app-with-heroku
- https://www.youtube.com/watch?v=LXb6f8GJ0qs
Nemokami serveriai patalpinti svetainę
- https://www.awardspace.com
- https://infinityfree.net
- https://www.000webhost.com/free-php-hosting
- https://www.heroku.com
README file
Kita
- https://www.php-fig.org/psr/psr-2/
- https://en.wikipedia.org/wiki/Atomic_commit
- https://en.wikipedia.org/wiki/Object-oriented_programming
Turi būti 3 puslapiai:
- Administravimo puslapis, skirtas įvesti naują klientą į eilę (Klientas turi įvesti bent jau savo vardą)
- Švieslentės puslapis skirtas rodyti greitai sulauksiančius klientus
- Specialisto puslapis, kur jis gali pažymėti, kad aptarnavo klientą
Techniniai kriterijai:
- Yra failas duomenų bazės struktūrai
- Yra failas prisijungimui prie duomenų bazės ( config file )
- Panaudotas
POST
HTTP metodas - Panaudotas
GET
HTTP metodas - Įrašoma į duomenų bazę
- Skaitoma iš duomenų bazės (su rikiavimu)
- Ištrinimas iš duomenų bazės (
WHERE
sąlyga) - Keli būdai atvaizduoti tuos pačius duomenis (
LIMIT
sąlyga) - Panaudotas sudėtingesnė SQL struktūra (kelios lentelės susietos ryšiais (1:daug))
Siūloma literatūra:
- https://www.w3schools.com/php/
- https://www.w3schools.com/sql/sql_ref_mysql.asp
- https://www.w3schools.com/html/
Vertinama, kai yra padarytos pirmos dalys
Extra puslapis
- Lankytojo puslapis, kur jis mato laiką iki savo eilės (nebūtina žiūrėti į švieslentę)
Techniniai kriterijai:
- Specialistui aptarnavus klientą, vietoj duomenų ištrynimo, pažymima, kad klientas aptarnautas
- Švieslentėje rodomi tik neaptarnauti klientai
- Yra funkcija ar SQL užklausa apskaičiuoti, kiek truko apsilankymas (galima apsilankymų laikus saugoti atskiroje lentelėje)
- Švieslentėje rodoma, kiek laiko liko klientui laukti (vidurkis pagal laukimo laiką per specialistą)
- Lankytojas gavęs nuorodą (ar įvedęs savo numerį kažkokioje formoje) mato tik jam skirtą laukti laiką
- Lankytojo puslapyje numatomas laikas patikslinamas kas 5s (JavaScript arba HTML meta)
- Užregistravus naują klientą turi išvesti
Užregistruota sėkmingai
arbaĮvyko klaida, kreipkitės telefonu
Siūloma (papildoma) literatūra:
Vertinama, kai yra padarytos pirmos dalys
Extra puslapiai
- Lankytojo puslapyje pridėti galimybę pavėlinti apsilankymą
- Puslapis su statistika, kada labiausiai verta ateiti pas specialistą
Techniniai kriterijai:
- Apsilankymų laikas grupuojamas pagal dienas (SQL)
- Statistikoje galima uždėti filtrą konkretiems specialistams
- Lankytojui sugeneruojama unikali nuoroda į lankytojo puslapį (kad apsaugoti URL atspėjimą)
- Lankytojas mato mygtuką pavėlinti (sukeičia su už juo esančiu žmogumi)
- Pavėlinimas negalimas, jei lankytojas yra paskutinis eilėje
- Lankytojas gali atšaukti susitikimą pas specialistą (PHP + SQL)
- Įvedamų duomenų validavimas PHP pusėje
Vardenis
( data validation ) - Po duomenų validavimo PHP pusėje forma turi išlaikyti užpildytą informaciją
Siūloma (papildoma) literatūra:
- https://dev.mysql.com/doc/
- https://www.php.net/manual/en/index.php
- https://getcomposer.org/
- https://getbootstrap.com/
- https://www.w3schools.com/w3css/
- https://phpunit.de/
=============================
Atmink tavo geriausias pagalbininkas yra Google.
Sėkmės :)