Sunteți pe pagina 1din 10

Document de Proiectare

Arhitecturala

Echipa: FacePaint

1|Page

Precizarea tehnologiilor folosite


-

Java EE
o

Un limbaj inalt de programare.

http://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition

Este un limbaj care iti ofera posibilitatea de a scrie cod de colitate ridicata intr-un
timp relativ scurt, oferind multe servicii / API-uri in comparatie cu Java.

MySQL
o

Un limbaj de management relational al unei baze de date

http://en.wikipedia.org/wiki/MySQL

MySQL Workbench
o

Este un program de vizualizare a unei baze de date

http://en.wikipedia.org/wiki/MySQL_Workbench

Este usor de folosit, oferind o interfata grafica peste o baza de date, dar totodata
lasa utlizatorul sa acceseze elemente pana la nivel de arhitectura, intexi, etc.

Flash
o

Este o aplicaie utilizat pentru dezvoltarea obiectelor-applet de tip Flash


disponibile n cadrul unor pagini web.

http://ro.wikipedia.org/wiki/Adobe_Flash

Folosit pentru crearea animatiilor

PhotoShop
o

Este un software folosit pentru editarea imaginilor digitale pe calculator.

http://ro.wikipedia.org/wiki/Adobe_Photoshop

Este un tool profesional de editare a imaginilor

http://en.wikipedia.org/wiki/Cascading_Style_Sheets

CSS

HTML
o

http://en.wikipedia.org/wiki/HTML

2|Page

GWT
o

Google Web Toolkit

http://en.wikipedia.org/wiki/Google_Web_Toolkit

Este un framewok, care ofera web developerilor posibilitatea de a creea si


intretine un cod complex de JavaScript

Apache Maven
o

Este un tool de build automat, in general folosit in general pentru proiecte Java

http://en.wikipedia.org/wiki/Apache_Maven

Integrarerea cu proiectul nostru faca aplicatia mult mai usor de compilat si deploiat

Apache Tomcat
o

Este un web server care ofera un HTTP web server, pentru a rula cod Java

http://en.wikipedia.org/wiki/Apache_Tomcat

Hibernate
o

Este un framework care ofera object-relational mapping

http://en.wikipedia.org/wiki/Hibernate_(Java)

Este in general folosit in majoritatea aplicatiilor deoarece ofera un nivel inalt de


transparent.

3|Page

Descrierea modulelor de nivel inalt


Aplicatia noastra este impartita in mai multe module. Acestea sunt interconectatea folosint Apache
Maven, care pe langa partea de interconectare a unor module permite si integrarea de dependinte
si de ierarhii procedurale.
Module :
-

Java acest module include implementarile front-end si back-end ale aplicatiei noastre.
o

Este impartit in alte 2 submodule fiecare reprezentand partea de client respectiv


server

Acest modul putea fi impartit in alte 2, cum am spus, in client si server, dar s-a ales
mentinerea lui intr-un singur modul compact pentru usurinta de implementare,
astfel nefiind nevoie de folosirea framework-ului Spring pentru interconectarea
celor 2(Dependency injection).

o
-

Acest modul este de sine stator, el fiind primul care se compileaza

Resources dupa cum ii spune si numele aici se gasesc resursele folosite de catre server
sau client.
o

Aceste modul nu se compileaza el fiind folosit pentru o transparenta generala


asupra proiectului

Webapp acest modul este folosit la intrarea compilarilor independente.


o

In acest modul nu se compileaza, dar el este cel care realizeaza fisierul Web
Application Arhive.

4|Page

Explicarea realizarii functiilor din specificatie


Toate use case-urile sunt implementate in modului Java in care se afla implementarea pentru
partea de front-end cat si cea de back-end.
In general clientului ii este servita o pagina web, in care o sa ii fie vizibile doar partile din
aplicatie la care are el acees, (existand o ierarhie de roluri).
Cand un client alege sa aceseze un element din pagina oferita, in spate se va realiza un apel
asincron folosind GWT-RPC catre server. Acesta in functie de drepturile, starea si multi alti factori
ai utilizatorului si nu numai, ii va accepta sau refuza cererea acestuia.

5|Page

Diagrama de clase

6|Page

Use case

Login:
o

Clientul trebuie sa fi pornit browserul si sa fi tastat URL-ul aplicatiei.

I se va afisa o pagina de login. Aici acesta va putea sa isi introduca username-ul si


parola sau poate sa apese pe butonul register si sa isi creeze un cont.

La introducearea username-ului si a parolei se va apele un serviciu expus de catre


server printr-o interfata. Apelul serviciului va fi un apel asincron.

Serverul va intoarce un cod rezultat al login-ului, de succes sau eroare, in caz de


succes codul returnat va reprezenta un cookie care va fi folosit pentru validarea
utilizatorului.

Register
o

Clientului i se va servii o pagina HTML cu mai multe campuri, unele obligatorii altele
nu.

Acesta le va completa si va apasa butonul de submit.

La apasarea acestui buton se va apela un serviciu expus de server printr-o interfata.

Serverul va primii informatiile despre client si in cazul in care nu sunt probleme , va


registra clientul in baza de date si va raspunde clientului cu un mesaj corespunzator

Find friends
o

Un user odata logat, va putea sa cauta prieteni folosind pannelul special pentru
acest lucru.

La introducerea unui nume, se va apela un serviciu expus de server printr-o


interfata. Acest serviciu va primii un nume si va cauta posibile mach-uri cu numele
altori utilizatori.

Serverul va intoarce o lista cu pisibili utilizatori.

Add / Delete friends


o

Odata ce un utilizator a gasit un posibil prieten si acesta se afla pe pagina principala


a acestuia, va exista un buton cu care da posibilitatea adaugarii acelui utilizator ca
prieten.

La apasarea butonului se va apela un serviciu expus de server printr-o interfata.


Apelul o sa fie un apel asincron, in care serverul va inregistra requestul facut.

Send messages
7|Page

Odata logat un utilizator va putea trimite mesage altui utilizator.

Pentru a face acest lucru el va folosii din client un buton special, care ii va permite
trimiterea unui mesaj catre alt utilizator.

Clientul va realiza schimbul de mesaje folosind servicii expuse de server print


interfete. Apelurile acestor servicii vor fi asincrone.

Clientul va trimite serverului mesajul cat si carui utilizator o sa fie trimis acesta.

Upload picture
o

Un utilizator va avea putea uploada poze pe plicatie folosind o pagina speciala.

Aici utilizatorul va alege ce poze vrea sa arate si va apasa butonul de upload.

In spate clientul va folosii un serviciu implementat in GWT de upload file.

Aceste serviciu este expus de server printr-un serviciu si clientul il apeleaza pentru
a lua/upload-a poze.

Delete accounts
o

Este un use-case accesibil doar unor anumiti clienti, cu drepturi privilegiate, care au
posibiliteatea sa sterga complet un utilizator din sistem

Acest serviciu este expus printr-o interfata si este verificat si de catre server si de
catre entitatea client pentru a verifica daca utilizatorul are sau nu drepturi asupra
acestui use-case.

8|Page

Utilizarea Claselor
Clasele sunt impartite in mai multe module conform utilitatii lor. Exista clase specifice partii de
front-end, back-end si de asemenea exista clase ORM cat si interfete pentru expunerea serviciilor
dintr-un modul.
Client :

Login acesta clasa este entry point-ul in aplicatie. Aici se va face servirea unei pagini care
contine posibilitea de login / register. Aici se va face de asemenea si memorarea cookie-ului

Home aceasta clasa este folosita la afisarea primei pagini dupa login. De abicei aici se vor
afla informatii specifice clientului: Nume, poze, comentarii etc. De asemenea aceasta clasa
va putea fi folosita si la afisarea unui alt utilizator din sistem

Friends aceasta clasa este folosita la afisarea informatiei utile despre prietenii pe care ii
ai, sau pe care doresti sa ii adaugi.

Photo aici se vor afisa poze pe care utilizatorul le-a incarcat in sesiunile anteriore.

Server:

HibernateUtil - acesta clasa se foloseste pentru conexiunea la baza de date.

Login Service expune prin niste web-service-uri metode de login foloste de catre entitatile
client print apeluri asincrone. Aici sunt implementate metodele de securitate, pe langa cele
oferite de platforma de implementare cat si de framework-urile folosite.

Home Service aceasta clasa este folosita pentru a servii clientului informatii despre un
utilizator( fie acesta el insusi, fie alt utilizator din sistem)

Friends Service este folosit pentru cautarea, adaugarea sau stergerea unui client din
sistem.

PhotoService aici se fac expunerea unor servicii care permit utilizatorului sa upload-eze
poze pe platforma aplicatiei.

CommentService permite utilizatorilor sa adauge comentarii la pozele personale sau ale


altor utilizatori, daca acestia sunt prieteni cu userul curent.

9|Page

ORM:
Acestea sunt mapari ale tabelelor din baza de date in clase java, pentru o utilizare mult mai
transparenta. Aceste clase sunt urmatoarele:

City reprezinta tabela de orase

Country - reprezinta tabela de tari a aplicatiei

Friends reprezinta legaturile dintre utilizatori

Friends_status reprezinta stari in care 2 utilizatori pot fi intre ei: (friends/request/ignore)

Msg este maparea tabelei de mesaje trimise intre utilizatori

Pic este o clasa care reprezinta pozele fiecarui utilizator

Pic_comment prin aceasta clasa se mapeaza in baza de date comentarile pentru fiecare
poza

User aici sunt retinuti utilizatorii sistemului impreuna cu toate datele fiecaruia dintre ei.

10 | P a g e

S-ar putea să vă placă și