Web Technologies

Hey there! From February till June I teach Web development laboratories at the local Computer Science faculty . Link to the slides and repo, below ⬇⬇⬇




Day'to'day exercises on the DevDrive.io platform!


  1. Coding training / M

    Creați o platformă Web pentru exersarea și îmbunătățirea cunoștințelor tehnice. Orice utilizator poate adăuga public exerciții de programare împreună cu soluția si o explicație succinta a acesteia în format text (eventual, video). Fiecare exercitiu va avea anumite tag-uri asociate in functie de specificul si dificultatea sa (ex: Front-end, Back-end, usor, intermediar, greu). De asemenea, acestea vor putea fi votate de utilizatori. Se vor atasa o serie de informatii publice, precum numarul de vizualizari, numarul de rezolvari, scorul etc. In plus, platforma va oferi și o funcționalitate publică de acces in timp real (live streaming) ce va fi folosita pentru lectii on-line. Orice utilizator va vizualiza lista de live-stream-uri si se va putea alatura la oricare dintre ele unde, pe langa vizualizare, acesta va putea pune intrebari si oferi feedback profesorului.

    In plus fiecare utilizator se va putea înregistra/autentifica via OAuth folosind un cont existent pe rețele sociale (Twitter/Github/Facebook) și va avea pe pagina de profil un rezumat al activității sale. Functionalitatile vor fi expuse prin intermediul unui API REST.

    Bonus: adoptarea unei arhitecturi modulare pentru a permite extinderea sistemului cu alte facilitati de interes.

    Persoane alocate: 3

  2. Autonom / M

    Să se construiască un agregator autonom al evenimentelor dedicate unei comunitati de practica (de pilda, conferinte referitoare la dezvoltare Web). Mai exact, administratorul aplicației va introduce o listă de persoane și pagini de interes a căror activitate pe rețelele sociale va fi urmărită în mod automat. Când acestea crează sau publică date despre un nou eveniment (ex: CodeCamp Iași 2019), aplicația va procesa automat informațiile evenimentului (folosind datele oferite de Facebook, Eventsbrite, Meetup, sit personal etc) si le va centraliza pe propria pagină. Minimal, fiecare eveniment va avea asociate data și locația, o descriere, prețul biletului, cât și tag-uri descriptive (Web Development, Social Skills, Public Speaking,...), plus alte informatii de interes: numar maxim de locuri disponibile, acces doar cu invitatie, categoria evenimentului (tehnic, publicitar, recrutare de personal) etc. Aceste informatii vor fi de folosit utilizatorilor înregistrați pe platformă, care se vor putea "abona" la anumite tag-uri și vor primi notificari prin posta electronica si/sau SMS in legatura cu evenimentele de interes din urmatoarea perioada de timp (la nivel de zile/saptamani/luni). Calendarul desfasurarii evenimentelor va putea fi exportat ca document iCalendar.

    De asemenea, aplicația va oferi posibilitatea oricărui utilizator de a corecta informațiile evenimentului -- aceste modificări trebuie aprobate de administrator. Functionalitatile sistemului vor fi expuse via un API REST recurgand pentru raspuns la formatele JSON si XML.

    Persoane alocate: 3

  3. wDBAdmin / M

    Scopul acestui proiect Web este realizarea unei variante optimizate vizand interactiunea optima cu utilizatorii ce recurg la platforme mobile (telefon, tableta) pentru a avea acces la functionalitatile unui manager de baze de date relaţionale (similar variantei Web clasice a instrumentului Adminer). Acest sistem modular, recurgand la (micro)servicii Web, va oferi suport pentru editari colaborative de comenzi SQL si de generare de cod-sursa in diverse limbaje de programare (minimal, PHP si Java). Ca inspiratie, de experimentat DB Fiddle.

    Resurse suplimentare

    Persoane alocate: 4

  4. BikeS / B

    Creați un sistem online de management al programărilor și stocurilor unui operatii de service de biciclete. Fiecare client va consulta calendarul service-ului, iar apoi va completa un formular cu data și ora dorită, plus detalii despre problemă, putând adăuga inclusiv fișiere media: imagini și filme. Administratorul afacerii va putea respinge programarea adăugând un mesaj explicativ: "Ne pare rău, dar nu avem în stoc piesele necesare pentru reparație. Reveniți în S săptămâni" sau o va putea aproba, oferind și un preț estimativ.

    De asemenea, aplicația îi va permite acestuia să țină evidența stocurilor existente, cât și a comenzilor date către furnizori. Acesta va putea importa atat date în format CSV și JSON, cât și exporta în oricare din formatele CSV, JSON, PDF.

    Persoane alocate: 2

  5. LostPets / B

    Creați o aplicație Web care să vină în ajutorul recuperării animalelor pierdute de o persoana. Proprietarul animalului pierdut va completa un formular cu detalii despre acesta: nume, fotografie, zona în care a fost ultima dată văzut, plus alte detalii de interes (specie, existenta unor semnalmente, date despre zgarda, medalion, recompense acordate,...) si modalități de contact (minimal, adresa e-mail + numar de telefon). Odată adăugate aceste date, toți utilizatorii aflați în acea zonă vor fi automat notificați. Locul ultimei vizualizări a animalului poate fi actualizat de ceilalți utilizatori, schimbându-se astfel zona și fiind deci notificați alți oameni.

    Anunțurile vor fi afisate în ordine cronologica, fiind figurate pe baza unor servicii cartografice OpenStreetMap. Se vor genera statistici de interes -- disponibile in formatele HTML, CSV si PDF -- privind cazurile de animale pierdute, recuperarea acestora, zonele cele mai vulnerabile, recompense etc.

    Persoane alocate: 3

  6. WeBall / B

    Urmand modelul campionatelor internationale de fotbal (sau orice joc de echipa similar: handbal, polo, volei,...), sa se conceapa o aplicatie Web care organizeaza -- eventual, cu aportul utilizatorului -- echipele pe grupe si, ulterior, realizeaza diverse tipuri de finale. Utilizatorii vor putea vedea lista grupelor, rezultatele partidelor jucate si clasamentul provizoriu, in formatele HTML, CSV, JSON si PDF. Anumiti utilizatori autentificati cu rol de administrator vor putea actualiza rezultatele meciurilor disputate.

    Se va oferi posibilitatea de a organiza si diferite "poll"-uri (chestionare) privitoare la pronosticul unor partide interesante. Clasamentul provizoriu si cel final vor putea fi disponibile si via un flux Atom. De asemenea, situl va oferi posibilitatea inserarii de impresii (eventual, post factum) referitoare la desfasurarea unor partide.

    Bonus: recurgerea la date publice disponibile pe Web.

    Resurse suplimentare

    Persoane alocate: 4

  7. StoW (Stories on the Web) / B

    Sa se propuna o implementare online a unei (suite de) povesti celebre, punandu-se la dispozitie o interfata Web care sa ofere copiilor -- pe grupe de varste -- o experienta narativa placuta, inclusiv semne de carte, scene alternative, progresul parcurgerii textului, lista personajelor fiecarui basm in parte si detaliilor despre acestea (stocate persistent), posibilitati de cautare etc. Interactiunea cu aplicatia va respecta principiile design-ului Web responsiv.

    Pe baza unui document JSON, Markdown si/sau XML preluat prin 'upload', sistemul va fi capabil sa importe continutul unei povesti, inclusiv resursele multimedia aferente. Suplimentar, se vor include mijloace de administrare a povestilor existente, inclusiv a continuturilor multimedia aferente.

    Persoane alocate: 4

  8. PiX / B

    Sa se imagineze o solutie Web care permite utilizatorilor managementul imaginilor (fotografii, ilustratii) proprii pe baza unui cont creat in prealabil. Sistemul va pune la dispozitie functionalitatile de plasare a unui grup de imagini (upload), vizualizarea acestora cu posibilitatea salvarii pe calculatorul local (download), stergere, grupare pe baza unor criterii (data realizarii fotografiei, conform unor tag-uri asociate, folosind informatiile EXIF etc.), cautare si vizualizare a diverselor rezolutii ale imaginilor printr-o interfata intuitiva.

    Aplicatia va permite adaugarea unor informatii suplimentare pentru fiecare imagine incarcata: titlu, descriere, tag-uri etc. De asemenea, utilizatorii vor avea posibilitatea de a converti imaginile in minim 2 formate alternative si de a le edita: redimensionare, rotire, aplicare de filtre simple,...

    Bonus: preluarea si/sau editarea imaginilor oferite de un sit Web specializat (500px, Flickr, Instagram si altele).

    Resurse suplimentare

    Persoane alocate: 3

  9. OnCo (Online Contacts) / B

    Sa se dezvolte o aplicatie Web care sa reprezinte un manager de contacte personale. Utilizatorii vor avea acces la functionalitati pe baza unui cont. Fiecare persoana de contact va avea asociate informatii precum nume, prenume, adresa, data nasterii, minim o fotografie, numere de telefon, adrese de e-mail, adrese Web, descriere, interese etc.

    Aplicatia va permite gruparea contactelor, cautarea pe baza unor criterii complexe (de pilda, obtinerea persoanelor mai tinere de 20 de ani localizate in Iasi, actualmente la FII si care sunt interesate de tehnologii Web), precum si exportarea acestor informatii in diferite formate (cel putin vCard, CSV, Atom).

    Persoane alocate: 2

  10. Wuzzle / B

    Sa se dezvolte o aplicatie Web care permite managementul unei colectii de puzzle-uri (ce vor fi stocate persistent) menite a fi dezlegate in mod interactiv de catre utilizatorii autentificati. Suplimentar, vor fi oferite exemple de scenarii ilustrand simularea pas cu pas a rezolvarii unui puzzle. Sistemul va oferi suport pentru generarea ori importarea de puzzle-uri modelate in XML ce vor fi putea fi ulterior rezolvate de utilizatori.

    De asemenea, se vor expune -- in formatele CSV, JSON si HTML -- lista celor mai populare puzzle-uri si clasamentul rezolvatorilor cei mai iscusiti.

    Resurse suplimentare

    Persoane alocate: 3

...