Proiectul va consta în realizarea unei aplicaţii aliniată problematicilor actuale privitoare la tehnologiile Web, implementarea axându-se pe partea de server, indiferent de limbajul ori limbajele de programare folosite.
O temă de proiect – propusă de fiecare titular de laborator – poate fi aleasă de maxim 5 echipe. Studenţii care nu-şi aleg la timp o temă de proiect vor avea asignat unul dintre proiectele nealese şi vor fi penalizaţi cu 2 puncte pentru fiecare componentă evaluată.
Acest proiect se doreste a fi un instrument Web de colectare, de regasire si de vizualizare a informatiilor referitoare la resurse stiintifice si/sau tehnologice (articole, carti, rapoarte tehnice, prezentari, cod-sursa si altele) ale persoanelor interesate de o arie a informaticii – de pilda, algoritmica, interactiune om-calculator, paradigme de programare, securitate, Web etc. – pe baza ‘2012 ACM Computing Classification System’. Dezvoltand o aplicatie de tip mash-up, se vor oferi informatii de interes pentru o persoana sau grup de persoane impartasind interese comune, pornind de la resursele multimedia deja colectate si clasificate (eventual, prin tagging) via aplicatii Web sociale precum Feedly, GitHub, Google Scholar, Lanyrd, Pocket, Slideshare, Vimeo etc. Informatiile (structurate pe diverse criterii) vor fi vizualizate/redate in formate precum HTML, SVG sau text obisnuit. De asemenea, sistemul va oferi acces la informatii prin intermediul unui API respectand paradigma REST. Resurse suplimentare:
Se doreste o aplicatie Web capabila sa ofere intr-o forma atractiva o lista a celor mai reprezentative evenimente (conferinte, ateliere de lucru, concursuri, stagii de practica) si proiecte software la care un utilizator ar putea participa pentru a-si imbunatati aptitudinile tehnice dintr-un domeniu de interes. Sugestiile expuse se vor baza pe un profil tehnic al persoanei, construit utilizand informatii de interes colectate din situri specializate – e.g., retele sociale profesionale (de exemplu, LinkedIn), sisteme de stocare si gestiune a codului sursa (minimal, GitHub), situri ce propun rezolvarea unor probleme de algoritmica sau concursuri tematice, situri propunand stagii de pregatire (e.g., Stagii pe bune, Junio, Intern Suply), sisteme de tip intrebare-raspuns (de pilda, StackExchange, Reddit ori Quora), blog-uri axate pe aspecte tehnologice gazduite pe platforme ca Medium sau WordPress etc. Aceste surse vor putea fi ajustate de utilizator. De asemenea, sistemul trebuie sa urmareasca evolutia utilizatorilor (de exemplu, actualizarea profilului in functie de sugestiile oferite), eventual oferind suport pentru ‘gamification’. Diversele statistici vor fi disponibile in formatele HTML, JSON si XML. Resurse suplimentare:
Se doreşte dezvoltarea unui instrument de testare şi de stresare a unui sit/aplicatii Web, cu posibilitatea detectării legăturilor invalide, a unui număr prea mare de click/tap-uri pentru accesarea unor informaţii dorite, a mărimii inadecvate a unor fişiere etc. De asemenea, se va putea oferi graful relaţiilor dintre paginile compunând situl, cu specificarea unor metadate asociate fiecărei resurse în parte şi se vor putea alege diverse scenarii de vizitare automată a sitului pentru a se studia punctele mai dificil de accesat. Instrumentul va pune la dispoziţie statistici (numerice şi grafice, în format SVG) privitoare la jurnalul accesărilor şi a condiţiilor de stres generat, statistici disponibile şi prin intermediul unui serviciu Web.
Se doreste crearea unei suite de (micro)servicii Web menite a realiza administrarea de la distanţă pe baza unui instrument Web a unui server Linux, într-un mod similar aplicaţiei webadmin, oferindu-se acces (autentificat) la fişierele-jurnal, la configurarea serviciilor, la managementul utilizatorilor, la sistemele de fişiere şi la vizualizarea proceselor etc.
Se doreste crearea unui instrument Web “inteligent” care sa asiste utilizatorul in respectarea unor reguli de design Web (e.g., consistenta spatiala, cromatica, model al navigarii, proportie dintre informatii textuale si cele grafice etc.), avand la baza diverse biblioteci de sabloane de proiectare (design patterns) a interactiunii. Aplicatia va verifica daca diverse sabloane (pattern-uri) apar si sunt respectate pe parcursul unui sit Web, oferind sugestii de ameliorare a interfetelor eronate. Se vor sugera colectii predefinite de machete (template-uri) de prezentare – e.g., layout-uri, solutii cromatice, stiluri de afisare, sisteme de prezentare a continutului – si de interactiune – de exemplu, modalitati de navigare, formulare de autentificare, maniere de cautare locala etc. – pentru diverse categorii de situri Web (personale, academice, comerciale, comunitare si altele) ce pot fi accesate pe mai multe platforme. Resurse suplimentare:
Pe baza datelor existente si a observatiilor semnalate de utilizatori (autentificati via un cont existent pe o platforma Web cu caracter social precum Facebook ori Twitter), se doreste realizarea unei harti interactive – via un serviciu public de cartografiere precum OpenStreetMap – referitoare la traseele migratiei persoanelor la nivel de natiune, de continent sau de glob. Raportarea unui eveniment migratoriu se va putea efectua fie direct in cadrul aplicatiei Web, fie folosind termenul de continut ‘#migration’ in cadrul retelei sociale preferate de utilizator. Sistemul propus va fi capabil sa figureze si sa ofere statistici vizand aceste migratii sezoniere in functie de zona geografica (e.g., tranzit pe teritoriul unei tari), perioada de timp, climat, consideratii demografice etc. Fiecare nou raport introdus de utilizator va fi semnalat si in cadrul unui flux de stiri RSS. Sistemul Web dezvoltat va oferi statistici relevante disponibile ca documente HTML, CSV, JSON si PDF, putand fi partajate la nivelul retelelor sociale. Folosind datele disponibile, se vor putea oferi predictii referitoare la migrarea persoanelor spre un areal geografic. Bonus: propunerea de vizualizari interesante ce recurg la SVG sau WebGL. Resurse suplimentare:
Pornind de la diverse surse disponibile online, sa se realizeze o aplicatie Web care ofera diverse comparatii de produse (privind pretul minim, diverse caracteristici utile, existenta unor oferte speciale si altele). Sistemul va fi capabil sa analizeze automat preturile disponibile pe anumite situri de profil inregistrate in prealabil. Se va oferi suport si pentru managementul surselor de date folosite de aplicatie. Actualizarile de preturi vor fi disponibile si ca flux de stiri in format RSS.
Sa se dezvolte o aplicatie Web care permite gestionarea parolelor folosite de utilizatori in cadrul unor aplicatii/situri Web. Utilizatorii vor avea acces la functionalitati pe baza unui cont. Fiecare inregistrare va avea asociate meta-date precum titlu, nume de utilizator, parola, adresa Web, comentarii, timp maxim de valabilitate a parolei etc. Informatiile de autentificare vor putea fi grupate conform diferitelor categorii (e.g., in functie de domeniul sitului, dupa “taria” parolei, frecventa utilizarii). Aplicatia va oferi si un generator de parole “sigure” si posibilitatea de a exporta datele in formatele CSV, JSON si XML. Parolele vor fi stocate intr-un mod “sigur” pe baza unui sistem de stocare persistenta (de exemplu, un server de baze de date). Resurse suplimentare:
Avand la dispozitie o suita de situri Web oferind stiri (de exemplu, ziare electronice sau situri precum Hacker News ori Reddit), sa se realizeze o aplicatie Web care sa centralizeze articolele aparute zilnic, prezentandu-le intr-o forma atractiva pentru utilizator. De asemenea, se va oferi posibilitatea de a schimba tema vizuala si/sau tematicile dorite (e.g., eliminarea sectiunii de stiri mondene, adaugarea unei sectiuni referitoare la programare Web). Actualizarea stirilor se va putea face la diverse intervale de timp stabilite de utilizatorii autentificati, oferindu-se un flux RSS. Articolele favorite pot fi partajate pe diverse retele sociale sau grupate pe categorii predefinite ori stabilite de utilizator. Inspiratie: Feedly. Resurse suplimentare:
Sa se dezvolte o aplicatie Web care sa permita utilizatorilor transferul de pe calculatorul local al documentelor proprii pe baza unui cont creat in prealabil. Daca se transmite un document deja existent, sa se retina versiunile mai vechi, utilizatorul avand posibilitatea sa le acceseze oricand. Sistemul va permite adaugarea unor meta-date suplimentare pentru fiecare document incarcat: descriere, tag-uri etc. De asemenea, utilizatorii vor avea posibilitatea de grupare a fisierelor incarcate. Vor mai fi oferite si functiile de stergere, cautare si preluare a documentelor existente.
Sa se conceapa un instrument Web capabil sa gestioneze meta-datele privitoare la diversele aplicatii software – suite, pachete sau de sine-statatoare – sau seturi de date care sunt disponibile in regim deschis (open source/data) si sunt utilizate in cadrul unei/unor organizatii. Pentru fiecare dintre aceste aplicatii, se vor se vor avea in vedere urmatoarele: descrierea succinta a rolului si functionalitatii, categoria, istoricul versiunilor instalate, platforma hardware/software, periodicitatea actualizarilor posibile (zilnice, saptamanale, lunare), autorii si responsabilii cu mentenanta, URL-urile depozitelor de cod-sursa ori a datelor oferite, licenta de utilizare, maniera de instalare (pachet, script de instalare, dezarhivare propriu-zisa etc.), comunitate de interes specifica (e.g., lista de mesaje prin posta electronica, blog, wiki, canal IRC), dependenta de alte aplicatii/programe/biblioteci, aplicatii similare si altele. Sistemul va oferi suport pentru realizarea de cautari multi-criteriale (de pilda, toate programele educationale concepute in limbajele Python sau Ruby sub licenta GPL, ruland pe Linux, inclusiv Android, dependente de biblioteca libxml). In plus, se vor genera rapoarte disponibile in formatele HTML si PDF. Datele gestionate vor putea fi exportate sub forma de documente JSON si XML. Inspiratie: situl AlternativeTo. Resurse suplimentare:
Sa se furnizeze o aplicatie Web avand rol de proxy. Utilizatorii (clientii), pe baza conturilor proprii create in prealabil, vor putea accesa prin intermediul aplicatiei diferite resurse via URL-uri, redirectionate corespunzator. Sistemul va retine istoricul adreselor Web accesate, inclusiv raspunsurile HTTP obtinute (e.g., reprezentarile resurselor), in vederea eficientizarii transferului de date. De asemenea, se va oferi si posibilitatea folosirii de URL-uri ‘prescurtate’, similare celor generate de Bit.ly, Tinyurl.com etc. Aplicatia va pune la dispozitie diverse rapoarte de interes (in formatele HTML, CSV si JSON) privitoare la accesarile curente sau anterioare – in functie de intervalul de timp, domeniul primar, numarul de cereri, tipul MIME al continutului solicitat etc. –, cu posibilitatea de a clasifica URL-urile in diverse categorii specificate de administrator(i). Resurse suplimentare:
Sa se realizeze o aplicatie Web care gestioneaza un depozit online de aplicatii (software repository). Acestea vor putea fi transferate prin ‘upload’ de catre utilizatorii autentificati. Aplicatiile incarcate vor putea fi grupate dupa diverse criterii (precum platforma hardware, sistemul de operare, tipul licentei, functionalitatile oferite (e.g., utilitar, suita de birou, instrument Internet) etc. sau pe baza unor termeni de continut (i.e. clasificare via tagging). Sistemul va permite adaugarea unor informatii suplimentare pentru fiecare aplicatie incarcata, precum descrierea, situl Web oficial, istoricul versiunilor, frecventa actualizarilor si altele. De asemenea, pentru fiecare aplicatie, vor fi afisate data incarcarii, numarul de download-uri, marimea, alte aplicatii similare. Fiecare utilizator va avea un profil unde vor putea fi vizualizate toate aplicatiile incarcate de acesta. Sistemul va oferi si o interfata de management al software-ului la nivel de utilizator sau la nivel de administrator, rapoartele generate fiind disponibile in formatele HTML, CSV si PDF. Bonus: preluarea automata a datelor disponibile pe situri de profil precum Alternativeto.net si Softpedia. Resurse suplimentare:
Sa se dezvolte o aplicatie Web care sa permita utilizatorilor autentificati sa-si monitorizeze caloriile consumate pe parcursul unei unitati de timp (zi, saptamina, luna, an) in functie de ce au consumat in acea unitate de timp. De asemenea, se vor putea propune schimbari in dieta fiecarui utilizator pe baza preferintelor personale (e.g., daca pentru Tuxy se constata ca numarul de calorii lunare a scazut, atunci i se poate propune ca duminica sa consume 3 linguri de dulceata sau o banana). Aplicatia va oferi statistici, inclusiv vizualizari de interes, pe baza caloriilor acumulate si (evolutiei) greutatii – introduse manual de utilizator. Rapoartele generate vor fi exportate in format XML.
Sa se dezvolte o aplicatie Web ce ofera suport pentru raportarea si, ulterior, vizualizarea facila a unor probleme cetatenesti – de exemplu, probleme de trafic, scandaluri stradale, aparitia cersetoriei, vandalizari ale unor obiective turistice sau de agrement etc. – pe categorii prestabilite sau sugerate de utilizator (autentificat sau in regim anonim). Raportarea poate presupune preluarea de mesaje textuale sau de imagini/video, ce apoi vor putea fi partajate via retele sociale (folosind termenul de continut ‘#cityzen’). Sistemul va genera in timp real statistici vizand aspectele semnalate, prioritatea lor, inclusiv situatia verificata pe teren de catre organismele abilitate. Se vor implementa si mijloace de semnalare daca si cum autoritatile ori alte organizatii au rezolvat anumite probleme ale orasului. Datele gestionate vor fi importate/exportate in formatele CSV si JSON. Interfata se va baza pe tehnicile de design responsiv. Bonus: propunerea de vizualizari atractive ale informatiilor procesate. Resurse suplimentare:
Sa se realizeze o aplicatie Web capabila sa notifice o persoana sau grup de utilizatori autentificati asupra aparitiei unei alergii sezoniere: la polen, la expunere directa la soare sau la praf etc. – eventual, in conjunctie cu anumite fructe sau compusi alimentari. Notificarile vor fi semnalate – inclusiv cu o anumita prioritate/frecventa – atat in cadrul aplicatiei, cat si prin posta electronica. Se vor pune la dispozitie, de asemenea, sfaturi referitoare la preintampinarea unei/unor alergii, plus tratamentul si/sau medicatia. Utilizatorii vor putea adauga propriile alergii, cu posibilitatea de a fi partajate la nivel de grup, inclusiv la nivelul unei retele sociale. Se vor genera rapoarte in formatele HTML si PDF referitoare la statistici de interes. Bonus: vizualizari atractive ale datelor oferite. Resurse suplimentare:
Sa se conceapa o aplicatie Web de management al resurselor dintr-o parfumerie care ofera utilizatorilor diverse (tipuri de) parfumuri, in functie de profilul unei persoane si vizand o anumita ocazie, un anotimp etc. Fiecarui produs i se vor atasa proprietati specifice, inclusiv ingrediente, pret, comentarii, tag-uri, relatii cu alte parfumuri inrudite. De asemenea, se va simula expedierea parfumurilor achizitionate la o adresa stabilita, eventual in regim de cadou. Administratorul sistemului va avea posibilitatea sa consulte rapoarte – generate in formatele HTML, CSV si PDF – privind stocurile existente si situatia vanzarilor in functie de categoria de parfumuri, profilul utilizatorilor, o anumita perioada de timp etc.
Pentru un magazin online de jucarii e necesara gestionarea acestora, inclusiv stocurile si preturile actuale, campaniile publicitare pe baza catalogului de oferte, politica de acordare de reduceri (de exemplu, la cumpararea a minim P pinguini de cauciuc se va oferi o minge), managementul unor evenimente (e.g., o aniversare ori ‘Ziua Copilului’) si altele. Sa se dezvolte o aplicatie Web care faciliteaza realizarea acestor procese. Pentru utilizatorii din categoria administrator, sistemul va facilita intocmirea de rapoarte – in formatele CSV, HTML si PDF – si organizarea jucariilor pe categorii: gen (fete/baieti), intervale de varsta, materiale utilizate, scop. Noutatile privitoare la jucarii vor fi expuse via un flux de stiri RSS.
Sa se implementeze un instrument Web care permite utilizatorilor cu diverse probleme speciale – cele vizuale si/sau motorii, cu precadere – sa acceseze intr-o maniera convenabila un sit/document Web ce nu ofera in mod implicit continut accesibil si pentru aceste categorii de persoane. In functie de unele informatii furnizate in prealabil de utilizator (e.g., posibile probleme cognitive), sistemul va pune la dispozitie o interfata care sa se muleze pe nevoile acestuia, astfel incat sa se poata interactiona judicios cu situl/documentul dorit. Se vor lua in consideratie standardele si reglementarile in vigoare privitoare la accesibilitatea Web. Resurse suplimentare:
Sa se dezvolte o aplicatie Web care sa permita utilizatorilor autentificati gestiunea resurselor privitoare la ingrijirea unui copil sau grup de copii de varsta prescolara: calendarul hranirii, al orelor de somn, diverse resurse multimedia (fotografii, filme, inregistrari audio,…) privind evolutia acelui copil, istoricul medical etc. Resursele multimedia vor fi stocate intern (e.g., prin ‘upload’) sau extern (indicand URL-uri spre resurse din cadrul unor aplicatii Web cunoscute: Instagram, SoundCloud, Vimeo etc.), eventual imbogatite cu alte documente similare pe baza tag-urilor asociate. Aplicatia va oferi o vedere cronologica (timeline) a celor mai importante momente surprinse referitoare la fiecare copil in parte. Rapoartele generate vor fi disponibile si in formatele PDF si XML.
Pornind de la existenta de filmulete de prezentare a unei productii cinematografice (asa-numitele trailer-e si/sau spoiler-e puse la dispozitie de situri ca IMDb, YouTube ori Vimeo), sa se implementeze o aplicatie Web capabila sa ofere finaluri diferite pentru diverse filme solicitate de utilizator. Pentru fiecare persoana in parte, se vor furniza mijloace de gestionare a listei filmelor preferate, inclusiv cautarea dupa anumite criterii – e.g., titlu, gen, actor principal, regizor, an de lansare, evaluari etc. Suplimentar, se vor genera statistici – minimal, in formatele HTML, CSV si PDF – privind filmele disponibile la un moment dat.