A51 nudi sjajne uslove za rad, atraktivne plate i sistematičan pristup razvoju, a ovaj izazov koristimo kao način da vidimo kakav ste programer. Cela stvar je zamišljena kao zanimljiva mini aplikacija koja može da se napravi u slobodno vreme, a da uz to pokaže Vaše programersko iskustvo i pristup rešavanju problema.
Samostalno rešavanje ovog izazova je uslov da biste konkurisali na programersku poziciju u našoj firmi.
Izazov
Uz pomoć bilo kog popularnog PHP frameworka napravite mini aplikaciju koja:
- Uvozi sadržaj fajla fraze.xml u bazu podataka. Neka potpis svake "fraze" bude njen MD5 hash.
- Iako je sam XML fajl mali, potencijalno može biti dosta velik (hiljade fraza) tako da savetujemo korišćenje XPatha za izvlačenje vrednosti, umesto prostih XML to array funkcija.
- Omogućava korisnicima da definišu jezik (zahtevano polje je ime jezika), a potom prevedu sve fraze iz uvezenog fajla. Povezati frazu sa prevodom za odgovarajući jezik preko njenog "potpisa".
- Primer interfejsa za prevođenje je ponuđen (prevodilac.png) kao inspiracija. Slobodno ga učinite boljim i funkcionalnijim ako želite.
- Izlistati sve jezike koji su definisani u bazi podataka i omogućavati posetiocima da otvore jezik i pogledaju listu fraza i njihovih prevoda.
- Svaki prevod fraze počinje sa +1 glasova. Posetioci sajta mogu da glasaju za prevode podižući im vrednost za 1 za svaki pozitivan glas (i time potvrde da je prevod dobar) ili da joj daju negativan glas, što rezultuje negativnim poenom (i time kažu da je prevod loš). Glasa se klikom na + i - dugmad, koja vrednosti šalju PHP skripti kroz Ajax zahtev (POST metodom).
- Na stranici jezika, gde su prikazane prevedene fraze osvežavati broj glasova paralelnim Ajax zahtevom svakih 30 sekundi.
- Prevod fraze koji padne na -1 glasova (tj. dobije doboljno negativnih glasova da padne na vrednost ispod nule) treba da bude automatski obrisan.
Prilozi (fraze.xml i prevodilac.png): https://www.dropbox.com/s/vvmjw9hvfc649in/izazov.zip
Kada završite ovu aplikaciju, zapakujte kod i pošaljite ga na ilija.studen@activecollab.com, sa kratkim instrukcijama za podešavanje skripte.
Hvala i srećno! Iskreno se nadamo da ćemo se čuti i upoznati, te da ćete postati deo našeg tima!