Skip to content

Instantly share code, notes, and snippets.

@nokia6290
Last active September 24, 2019 19:37
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save nokia6290/0316dd996b267074db8d34bded99c460 to your computer and use it in GitHub Desktop.
Save nokia6290/0316dd996b267074db8d34bded99c460 to your computer and use it in GitHub Desktop.
NFQ 2019 rudens stojimo užduotis BACKEND

Įžanga 'backend'

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

 

Backend užduoties kontekstas

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.

 

Bonus - papildomi balai

  • 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

Svetainės talpinimas į serverį

Nemokami serveriai patalpinti svetainę

README file

Kita

Minimalus užduoties įgyvendimas ( Level 1 )

 

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:

Rekomenduojamas užduoties įgyvendinimas ( Level 2 )

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:

 

Galimas užduoties praplėtimas ( Level 3 )

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:

 

=============================

Atmink tavo geriausias pagalbininkas yra Google.

Sėkmės :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment