Tema lucrării de licență : [624002]

UNIVERSITATEA
ROMÂNO-AMERICANĂ
Facultatea de Informatică Managerială
Anul III

Tema lucrării de licență :
Agregator centralizat de RSS-uri folosind PHP&MySQL

Îndrumător:
Prof. Alexandru Enăceanu

București, 2008 Absolvent: [anonimizat]

2

Introducere

Această temă este realizată pentru S.C. Active Soft, fiind un proiect auxiliar
siteului Ziare.Com. Acest proiect reprezintă analiza sistemului existent, analiza,
proiectarea și implementarea unui agregator centralizat.
Majoritatea serviciilor siteului vor fi oferite gratuit urmărind generarea de trafic
pentru sine cât și pentru siteul Ziare.Com și obținerea de profit prin sistemul avansat de
publicitate. Pe lânga serviciile gratuite, agregatorul va oferi câteva facilitați disponibile
doar abonaților Premium, sistem oferit contracost.
Toate acestea, precum și restul sistemelor vor fi explicate în secțiunea de
Proiectare de Detaliu.

3
Cuprins

Introducere – Background, în spatele temei de licența

0.1 Background – Istoria Internetului
0.2 Apariția sistemului RSS
0.2.1 Apariția sistemului RSS
0.2.2 Avantajele și dezavantajele sistemului RSS
0.2.3 Viitorul sistemului RSS
0.3 Sistemele Agregator: Agregatoare centralizate și RSS Readere locale

Capitolul I – Analiza sistemului existent

1.1. Studiul caracteristicilor generale ale întreprinderii
1.2. Studiul activitații de bază, desfașurată în întreprindere
1.2.1 Studiul activitații desfașurată în întreprindere
1.2.2 Studiul componenței și a dezvoltării firmei
1.3. Studiul sistemului de conducere
1.3.1 Studiul cadrului organizatoric
1.3.2 Organigrama firmei și fișele de post ale conducerii
1.4. Studiul sistemului condus
1.5. Studiul sistemului informațional existent
2.5.1 Fluxurile informaționale
2.5.2 Dotarea hardware și software
1.6. Analiza critică a sistemului existent la www.ziare.com

4

Capitolul II – Proiectarea de ansamblu a noului
sistem informatic

2.1. Obiectivele sistemului informatic
2.2 Proiectarea ieșirilor sistemului informatic
2.2.1 Prezentarea ieșirilor
2.2.2 Proiectarea ieșirilor
2.3. Proiectarea intrărilor sistemului informatic
2.3.1 Prezentarea intrărilor
2.3.2 Proiectarea intrărilor
2.4. Proiectarea bazei de date
2.4.1 Definirea colecțiilor de date
2.4.2 Diagrama entitate-asociere

Capitolul III – Proiectarea de detaliu a sistemului
informatic

3.1. Proiectarea de detaliu a siteului
3.1.1 Detalierea funcțiilor și a structurii sistemului informatic
3.1.2 Proiectarea logică de detaliu a paginilor
3.1.3 Proiectarea fizică de detaliu a paginilor
3.2. Proiectarea bazei de date
3.2.1 Crearea tabelelor
3.2.2 Descrierea structurilor
3.3. Proiectarea fișierelor și a codului

5
Capitolul IV – Prezentarea produsului,
implementarea și exploatarea aplicației

4.1. Prezentarea software
4.1.1 Accesul utilizatorilor nelogați
4.1.2 Accesul utilizatorilor logați
4.2. Implementarea sistemului
4.2.1 Cerințele platformei hardware și software ale produsului
4.2.2 Instalarea și lansarea

6
0.1 Background – Istoria Internetului

Se spune că istoria Internet-ului începe odată cu apariția ARPAnet, în urma istoriei de
un secol și jumătate a telegrafului care a condus la dezvoltarea primelor rețele de
comunicație, precum și a istoriei de 60 de ani a calculatoarelor electronice. Vechile
sisteme telegrafice erau, în terminologia actuală, legături punct-la-punct, folosind banda
de hârtie perforată pentru a transmite informația pe următoarea legatură spre destinație.
Astfel, prima 'rețea' de calculatoare utiliza banda perforată ca și canal de comunicație
(banda perforată de un calculator fiind manual introdusă în cititorul de bandă al celuilalt).
Încă de la inceput a existat tendința de a realiza un sistem 'unificator' care să ușureze
(să simplifice) accesul la informațiile dispersate în Internet, pentru ca să nu mai fie
nevoie să se foloseasca programe și protocoale de acces diferite ci unul singur numit
browser – navigator. Primele demonstrații de soft de navigare au avut loc in preajma
Crăciunului din 1990. La inceput era vorba doar de afișare în mod text, legăturile fiind
marcate prin numere între paranteze drepte și selectate prin tastarea acelor numere. Un
navigator ceva mai evoluat, bazat pe metoda pozitionare+click, rula pe calculatoare
NeXT. Astfel World Wide Web a fost introdus pentru uz intern in CERN în primăvara lui
1991, permițând și accesul la articolele Usenet și chiar accesul la bazele de date de pe
calculatoarele centrului. După succesul repurtat rapid în privința creerii, distribuirii și
regăsirii lucrărilor științifice și a rezultatelor experimentale, sistemul a fost anunțat-
prezentat public în ianuarie 1992, programele fiind oferite public – gratuit. Mai intâi au
beneficiat alte laboratoare de fizică nucleară din lume, dar rapid sistemul a depășit
domeniul cercetărilor de fizică.
Momentul crucial în răspandirea Web a apărut în februarie 1993 când NCSA
(National Center for Superconducting Applications) a anunțat prima versiune a
programului Mosaic, un navigator pentru mașinile UNIX rulând in sistemul X-Windows
și folosind intreg 'arsenalul' mediului Windows (iconițe, menu-uri, cuvinte colorate
marcând legăturile…). În plus, Mosaic a putut îngloba imaginile color direct în paginile
cu text, asigurând si posibilitați de folosire a sunetului, mișcarii – animației, etc. NCSA
Mosaic 1.0 for X Windows a fost lansat în iunie 1993. La mijlocul lui noiembrie 1993,
Mosaic a fost simultan lansat pe platformele Apple Macintosh, pe sistemele folosind MS-
Windows, precum și pe cele UNIX cu X Windows. Încă în octombrie, ca urmare a
folosirii Mosaic pentru X Windows, numărul serverelor Web înregistrate la CERN
crescuse la 500. Un an mai târziu au fost estimate 4600 de servere. Deja în august 1994,
traficul Web prin nodul central Internet din NSF a depașit traficul de poșta electronică,
după ce în martie, îl depașise pe cel Gopher, ajungând astfel în topul serviciilor. În 1995
se estimau 12 mii de servere, in 1997 – 800 de mii, iar în iunie 1999, OCLC estima 2.2
milioane de servere accesibile public dintr-un total de 3.6 milioane de servere Web.
Acestea punând la dispoziția publicului peste 300 milioane de pagini Web individuale.

7
0.2 Sistemul RSS

RSS este o familie de formate de feed-uri web, specificate in XML și folosite pentru
Web syndication. RSS este folosit (printre altele) pentru știri, weblog-uri și podcasting.
Abreviația este folosită pentru a face referință la următoarele standarde:
 Really Simple Syndication (RSS 2.0)
 Rich Site Summary (RSS 0.91, RSS 1.0)
 RDF Site Summary (RSS 0.9 si 1.0)

0.2.1 Apariția sistemului RSS

Internetul este o rețea aflată în permanenta expansiune, iar acest lucru este cel mai
bine evidențiat de creșterea continuă a cantității de materiale interesante (pagini web și
fișiere) disponibile pentru a fi descărcate pe calculatoarele celor conectați la această rețea
globală. Una din preocupările curente ale internauților este găsirea lucrurilor noi si utile
în multitudinea de materiale ce apar zilnic pe internet. Această operație era realizată pâna
de curând prin setarea în browser a unor siteuri favorite (care erau accesate frecvent) și
prin abonarea la newsletteruri.
Cele două metode aveau rezultate bune dar aveau și dezavantaje importante. În
cazul siteurilor setate ca favorite găsirea noutăților implica vizitarea regulată a paginii
gazdă (paginii principale) a siteurilor în cauză, un proces mare consumator de timp și de
bani în special pentru conexiunile prin dial-up, soldat uneori cu rezultate nesatisfăcătoare
în cazul în care siteurile nu erau actualizate sau actualizările erau minore.
Pentru a se putea rezolva problema internauților care doreau sa fie permanent la
curent cu ultimele noutați apărute pe siteurile preferate au fost concepute așa-numitele
"RSS feeds". Notiunea de "feed" este folosită în mai multe domenii științifice și are în
general sensul de "alimentare" (cu curent electric, cu apă, etc.) iar in cazul de fața ea
exprimă o "alimentare" cu informație. În domeniul mass-media există deja de multă
vreme noțiunea de "newsfeed" care desemnează știrile transmise de agențiile de presă
câtre abonații lor (ziare, televiziuni, etc.). Această inșiruire permanentă de știri care se
"scurge" dinspre agențiile de presă către mijloacele de difuzare în masă, seamană cu un
"șuvoi" informațional și de aceea cuvântul "newsfeed" se traduce prin "flux de știri". Prin
analogie, sintagma "RSS feed" se traduce prin "flux RSS".
Acronimul RSS are două interpretări și anume "Really Simple Syndication"
(Difuzare Foarte Simpla) sau "Rich Site Summary" ("Sumar al unui Site Bogat [în
informație]", dintre care prima oferă prin prezența cuvintului "syndication" o ințelegere

8
mai bună a procesului care stă în spatele fluxurilor RSS. Cuvintul "syndication" are un
înteles aparte (și foarte specializat) în limba engleză, neavând nici o legatură cu cuvântul
"sindicat" așa cum este el ințeles în limba română ("asociație a lucratorilor dintr-o
întreprindere sau dintr-o ramură de activitate"). Sindicalizarea ("syndication") se referă la
distribuirea unui anumit produs prin mai multe canale de difuzare în același timp. Acest
produs este de obicei o creație intelectuală și poate fi un articol de ziar, un serial de
televiziune, o serie de caricaturi, etc. .
Siteurile web oferă în marea lor majoritate acces gratuit la conținutul lor (articole,
fișiere, etc.), însă acest conținut este de cele mai multe ori prezent exclusiv pe siteul în
cauză, deci pentru a-l explora trebuie vizitat siteul. Sindicalizarea conținutului unui site
web printr-un flux RSS nu se va referi de obicei la "împrăștierea" conținutului acestuia pe
mai multe siteuri, în mod similar cu publicarea concomitentă a unui articol în mai multe
ziare (deși acest lucru este posibil dacă se realizează aranjamente contractuale), ci doar la
difuzarea pe scară largă a unor anumite porțiuni din conținutul de pe site, de cele mai
multe ori sub forma titlurilor materialelor nou apărute, însoțite de mici fragmente
introductive. În cazul majoritătii siteurilor web unde este pus la dispoziție un flux RSS nu
este deci vorba de o sindicalizare în adevăratul sens al cuvântului ci de o sindicalizare
limitată, care are ca scop principal informarea internauților în legatură cu noutațile
apărute pe site și "invitarea" lor de a vizita paginile cu conținut nou. Fluxurile RSS aduc
avantaje atât webmasterilor care se asigură ca internauții vor lua la cunostintă despre
materialele nou apărute, cât și internauților care vor putea sa-și folosească mai eficient
timpul petrecut pe internet, vizitând doar siteurile pe care apar materiale noi si
interesante.
Există însă și siteuri care pun la dispoziție prin fluxurile RSS totalitatea
materialelor nou publicate, însă aceste siteuri sunt de obicei non-profit, adică webmasterii
lor nu urmăresc obținerea de fonduri din publicitatea afișate în pagini, care este
dependentă de numărul de vizitatori care ajung pe site.
Fluxul RSS al unui site este în fapt un fișier (de obicei in format XML) care trebuie
mai întâi descărcat de pe serverul ce găzduiește siteul în cauză si apoi deschis pentru a fi
citit, ambele operații fiind realizate de un program specializat. Acest proces este foarte
asemănător cu descărcarea mesajelor de pe un server de fișiere sau de pe un server de
mail și apoi deschiderea lor pentru a fi citite. Principiul care stă la baza fluxurilor RSS nu
a fost inventat recent ci a fost adaptat dupa cel al newsgroup-urilor, lucru care este
reflectat cel mai bine de modalitatea de abonare / dezabonare la fluxurile RSS, care este
identică cu cea de abonare / dezabonare la newsgroupuri.
Fișierul XML care conține fluxul este foarte asemănător cu un fisier HTML, în
sensul că ambele tipuri de fișiere conțin text care este formatat cu ajutorul unor marcaje
("tags") speciale, iar interpretarea acestor marcaje de către un program specializat
(agregator pentru fluxuri, respectiv explorator pentru pagini web) permite afișarea
conținutului în forma dorită de autor. Atât fișierele XML cât și cele HTML pot fi
deschise cu un editor de text (de ex. Notepad) pentru a se observa structurarea lor cu
ajutorul marcajelor specifice. Un fișier XML poate fi deschis cu ajutorul exploratorului
web (Internet Explorer, etc.) dar conținutul său va apărea la fel cum apare într-un editor
de text, adică neformatat, pentru că exploratorul nu știe să interpreteze marcajele

9
specifice limbajului XML (Extensive Markup Language), el știind să interpreteze doar
marcajele specifice limbajului HTML (Hyper Text Markup Language).
Un flux se poate considera ca fiind o listă de elemente informative (știri – vești)
compilată de autorul fluxului și actualizată în mod regulat (la fiecare oră, zilnic,
săptămânal, etc.), lista care prezintă modificările (în principal materialele noi) apărute în
timp pe un anumit site. Conform specificațiilor RSS 2.0 un element informativ dintr-un
flux este numit în limba engleză cu termenul generic "item" ("element" în limba română).
Anumite softuri de creare sau agregare de fluxuri RSS folosesc însa termenul "entry" în
loc de "item", pentru că asimilează un flux RSS cu un jurnal personal în care autorul
"introduce" ("enters") noi elemente (știri, comentarii, întâmplari, etc.) în mod regulat.
Un flux RSS obișnuit conține o listă (înșiruire) de titluri ale materialelor publicate
recent, fiecare titlu fiind însoțit de un mic rezumat sau alteori de primele rânduri din
materialul respectiv. Excepții de la această regulă sunt de obicei fluxurile siteurilor care
conțin jurnale personale ("bloguri"), în acest caz, în fluxuri fiind prezent intregul conținut
al intrărilor din jurnalele respective. Acest aspect se explică prin faptul că autorii
jurnalelor doresc ca opiniile lor să fie citite de cât mai multe persoane și nu îi interesează
să obțină și un câștig material (din publicitate făcută în paginile siteului) de pe urma
popularitații pe care au dobindit-o.
Un flux RSS poate fi afișat în softul agregator de fluxuri fie ca o listă de știri
comasate toate pe o singură pagină (afișaj asemănător cu al știrilor dintr-un email), fie ca
o succesiune de știri separate, una de alta (afișaj asemanător cu al emailurilor în cutia
poștală – "inbox" – a unui soft de poștă electronică). Fiecare modalitate de afișare are
avantajele și dezavantajele ei, utilizatorul putând comuta de obicei foarte ușor între cele
două tipuri de afișaj în funcție de preferința de moment.

Web feed-urile oferă conținut web sau sumaruri de conținuturi web împreună cu
legături către conținutul complet al respectivei surse de informații și alte metadate. RSS
oferă această informație sub forma unui fișier XML numit feed RSS, webfeed, stream
RSS sau canal RSS. În plus față de facilitarea sindicalizării, feed-urile web permit
cititorilor fideli, anumitor pagini să fie informați la actualizarea conținutului de pe aceste
pagini web, prin folosirea unui soft special numit agregator.
În timp ce partea cea mai importantă a mass-mediei încă încearcă să ințeleagă
potențialul RSS, știriștii folosesc RSS ca să ocolească sursele de știri tradiționale.
Utilizatorii finali și jurnaliștii au la dispoziție, acum, surse constante de știri, fără să mai
fie nevoiți să petreacă timp căutând.
Un program cunoscut sub numele de "feed reader" poate să verifice o listă de
surse de știri în numele utilizatorului și să afișeze știrile pe care le găsește. Deseori
siteurile general cunoscute au feeduri, dar și cele mai mici. au adoptat această tehnologie.
Anumite siteuri chiar le permit utilizatorilor să aleagă între feeduri formatate RSS sau
formatate Atom; altele oferă numai feeduri RSS sau numai Atom.
Programele care folosesc RSS sunt disponibile pentru diferite sisteme de operare.
Partea de client sunt proiectate ca programe de sine stătătoare sau extensii pentru

10
programele existente, precum browserele. Browserele precum Microsoft Internet
Explorer 7, Mozilla Firefox, Safari sau Opera au integrat suportul feedurile RSS.
Clienții de feeduri integrați în pagini web nu solicită software special instalat pe
calculatorul utilizatorului și permit acestora să aibă feedurile disponibile pe orice
calculator ar lucra, dacă acesta este conectat la internet. Există agregatoare care combină
mai multe feeduri în unul singur, exemplu fiind un feed despre fotbal care grupează mai
multe surse de știri în una singură. Există de asemenea și motoare de căutare de conținut
publicat prin feeduri web, precum Feedster sau Blogdigger.

0.2.2 Avantajele și dezavantajele sistemului RSS

RSS este un instrument important pentru sindicarea informației. Lipsa câtorva
facilitați, face însă să nu fie o soluție robustă pentru localizarea și organizarea informației
educaționale:
– lipsa informației de copyright atât în articolele originale, cât și în RSS feeds; RSS
presupune că articolele și metadatele sunt publicate pe pagini free, deci doar resursele
free pot fi accesate prin RSS;
– inabilitatea agregatoarelor RSS de a analiză date, conforme diferitelor standarde
– weblogurile comentează resurse online – pentru articolele comentate, se realizează o
dublare a informației din RSS, pe site-ul original și în weblog.

Beneficiile tehnologiei RSS:
– Economisește timpul necesar citirii informațiilor pe Internet
– Accesul la feed-ul RSS este gratuit
– Feed-ul RSS poate fi afișat în diverse moduri, putând fi citit atât in format HTML dar și
ca Podcast.
– Este simplu de utilizat, permițând utilizatorului să adune multiple feed-uri într-un singur
loc.
– Permite utilizatorului să fie la curent cu noutățile, cititorul RSS, sincronizând rapid
informația dintre el si site.
– Permite accesul la o cantitate variată de informație, ce poate fi organizată pe capitole și
categorii.
– Permite localizarea rapidă a informațiilor importante, prin prezentarea simplă și aerisită.

Pe lânga întâmpinarea cerințelor pieței, serviciul RSS oferă o seamă de avantaje
suplimentare și webmasterilor :
– RSS-ul situează pe același plan toate site-urile, indiferent de vechime, rating sau număr
de utilizatori.

11
– RSS-ul poate încorpora diverse reclame, putând fi folosit ca un mijloc alternativ de a
obține beneficii finaciare.
– RSS-ul atrage interactivitatea cititorilor, de aceea multe site-uri permit abonarea direct
la comentarii pe un anumit subiect.
– RSS-ul este cel mai facil mod de a face informația cunoscută cititorilor.
– RSS-ul asigură crearea unei comunități de cititori fideli.

Dezavantaje RSS:
– Unii utilizatori preferă să primească emailuri la actualizarea unui site.
– Câteodata grafica nu apare în cititorul RRS și articolul nu pare să fie prea atrăgător.
– Identitatea fluxului poate fi neclară uneori, asta deoarece există o mulțime de siteuri
intermediare, directoare de RSS, care iți oferă fluxuri ale altor siteuri sau care se bazează
pe alte fluxuri RSS fară să menționeze clar acest lucru.
– Websiteurile, nu știu câți cititori de fluxuri RSS au și nu știu de ce surferii renunța să le
mai citeasca fluxul.
– RSS crează trafic uneori suplimentar.
– Multe siteuri nu suportă încă RSS.

0.2.3 Viitorul sistemului RSS

Webmasterii pot alege multiple variante de afișare a RSS-ului. Fiind un fișier
XML simplificat, el poate fi configurat să expună doar titlul articolului, titlul și câteva
paragrafe – inclusiv poze – sau articolul integral. În general se optează pentru varianta a
doua, dar acest lucru depinde de politica și publicul țintă al fiecarui site in parte.
În ultimii ani au existat mai multe formate RSS relativ asemanatoare, dar totuși
incompatibile intre ele, începând cu formatul inițial promovat de Netscape – RSS 0.90 și
terminând cu cel mai comun în prezent – RSS 2.0 . Din 2003, un nou format a fost
dezvoltat, Atom, dar teoreticile sale avantaje fața de RSS 2.0 nu au reușit sa se impună
decât în mică măsura în universul blog-urilor.
Există multiple formate RSS, de aceea vom acorda atenție în principal structurii
RSS 2.0. Formatul feed-ului RSS nu este accesibil utilizatorului uman, fiind un fișier
XML destinat a fi citit de programe speciale. Fiecare astfel de fișier conține informații
statice sau dinamice, structurate într-un mod anume cu ajutorul unor TAG-uri specifice
gramaticii XML.
RSS-ul este un serviciu actual de succes , fapt ce nu poate fi contestat, care
probabil va rezista multi ani de acum inainte. Datorită avantajelor sale, el a fost adoptat
de site-uri precum Digg, Forbes, Reuters, SlashDot sau Netscape, ce au milioane de
vizitatori lunar . De aceea, putem spune chiar că Internetul se află în plină eră RSS .

12

0.3 Sistemele Agregator: Agregatoare centralizate si RSS Readere locale

E din ce în ce mai evident pentru oricine ca timpul lipsei de informație a trecut,
parte datorită faptului că informația ca și cantitate a crescut exponențial. E practic
imposibil sa ții pasul cu cantitatea enormă de informații esențiale disponibile pe Internet
fără uneltele potrivite i.e. agregatoare.
Modelul de agregator de informații a apărut natural ca o consecință a evoluției
Internetului.
Softurile cu ajutorul cărora putem să descărcăm și să citim fluxurile RSS se
numesc "agregatoare de fluxuri RSS" ("RSS feeds aggregators") pentru că operația
principală pe care o fac ele este să comaseze ("agrege") fluxurile la care ne abonăm și să
le afișeze într-o interfața care să ne permită citirea conținutului fluxurilor în același mod
în care citim mesajele de postă electronică. Spre deosebire însă de programele de poșta
electronică, agregatoarele de fluxuri nu permit și crearea de fluxuri, această operație fiind
facută de altă categorie de softuri. Este aproape sigur că pe măsură ce fluxurile RSS vor
deveni o componență esențială a tuturor siteurilor web vor apare softuri care să realizeze
atât agregarea cât și crearea de fluxuri.
Agregarea de fluxuri RSS se poate face, fie cu ajutorul unor softuri specializate
(pe care trebuie să le instalăm pe calculatorul nostru), fie apelând la facilitațile unor
siteuri web, care ne permit să citim fluxurile RSS direct din explorator ("browser"), în
acest din urmă caz, nemaifiind nevoie să mai instalăm un alt program. Ambele variante
au avantajele și dezavantajele lor, iar internauții le pot incerca pe amândoua pentru a se
decide pe care din ele să o foloseasca în mod curent. În favoarea agregatoarelor
specializate ("dedicated") pledează faptul că ele au mai multe facilitați (printre care de
exemplu și pe aceea de a arhiva conținutul anumitor fluxuri) și pot fi folosite și offline,
adică, după deconectarea de la internet. În favoarea agregării cu ajutorul siteurilor web
pledează faptul că ele pot fi folosite de oriunde avem la dispoziție o conexiune la internet,
indiferent deci dacă ne aflăm în fața calculatorului personal sau a unuia dintr-o cafenea
internet. Utilizarea agregatoarelor este însă atât de simplă și de comodă încât putem
folosi ambele variante, alegând pe una sau pe cealaltă în funcție de circumstanțele de
moment.

Agregatoarele dedicate (specializate) se împart în două mari categorii și anume,
agregatoare de sine-stătătoare ("standalone") și agregatoare care au nevoie pentru a
funcționa de integrarea cu alte softuri (de ex. cu Internet Explorer sau MS Outlook).

13
Capitolul I – Analiza sistemului existent

1.1. Studiul caracteristicilor generale ale întreprinderii

Societatea Active Soft SRL este o societate cu sediul în București, bvdul. Pierre de
Coubertin 3-5 Etaj. 2, sector 2, și are personalitate juridică.

Obiectul de activitate, îl constituie consultanța si furnizare de alte produse software,
această clasă include:
– analiza, proiectarea și programarea sistemelor la cheie;
– analiza cerințelor și problemelor utilizatorului, consultanța privind soluția optimă;
– elaborarea, producerea, furnizarea și documentarea soft-ului la comandă, bazat pe
cerințele utilizatorilor;
– scrierea de programe, urmând indicațiile utilizatorului;
– proiectarea de pagini web.
Această clasă exclude:
– reproducerea soft-ului nespecializat, la cerințele clientului;
– consultanță în domeniul sistemelor de operare.

Sfera de activitate: Societatea își desfasoară activitatea în sfera comercială prin
rețeaua de siteuri web, oferind servicii gratuite, cât și contra-cost. Cel mai important site
dintre acestea fiind www.ziare.com , un portal de ziare și reviste.

Pentru desfașurarea activitații, societatea întreține relații economice și juridice cu alte
societați, dar și cu persoane fizice. Aceste relații sunt:
a) – de cooperare cu alte societați purtând brandul Active Soft și alte firme partenere,
prin schimb de bannere și linkuri cu scopul de a genera trafic.
• prieteni.com
• graphixmania.com
• pro32.com
• dorderomania.com
• trade.ro

14
b) – de închiriere spațiu publicitar către alte societați neafiliate, contra-cost.
Bannerele de publicitate au scopul de a genera trafic către clienți, costul fiind determinat
de numărul de utilizatori redirecționat către siteuri.

c) – de prestare de servicii gratuite către utilizatorii siteurilor, în vederea creșterii
numărului de clienți pentru serviciile oferite contra-cost, precum elaborarea, producerea,
furnizarea și documentarea soft-ului la comandă, și oferirea consultației în materie
hardware și software.

DIAGRAMA RELAȚIILOR CU EXTERIORUL

Societăți afiliate
Clienți
Active Soft SRL
Utilizatori Societați care
închiriază spațiu
publicitar

15
1.2 Studiul activitații de bază, desfășurate în cadrul unității

1.2.1. Studiul activitații desfășurate în unitate

Principalele activitați sunt, consultanța și furnizarea de alte produse software,
această clasă include:
– analiza, proiectarea și programarea sistemelor la cheie;
– analiza cerințelor și problemelor utilizatorului, consultanța privind soluția optimă;
– elaborarea, producerea, furnizarea și documentarea soft-ului la comandă, bazat pe
cerințele utilizatorilor;
– scrierea de programe, urmând indicațiile utilizatorului;
– proiectarea de pagini web.
Această clasă exclude:
– reproducerea soft-ului nespecializat, la cerințele clientului;
– consultanță în domeniul sistemelor de operare.

Programarea de software și serviciile de consultanță oferite de Active Soft,
acoperă întreg ciclul vieții produselor:

-Arhitectura și design-ul softwareului
-Implementare
-Testare
-Asigurarea calitații
-Documentație tehnică
-Suport tehnic

Tehnologii:

-C/C++/VC++/MFC/ATL/VB6.0
-C#.NET/VB.NET
-Embedded VC++/VB/.NET CE
-ASP/ASP.NET/DHTML
-.NET Web Services/XML/XSL
-UML/RUP
-ActiveX/COM/COM+
-SQL Server/MS Access/MySql/Oracle
-TAPI/TSPI/VoIP/H323
-HTTP/HTTPS/SSL/WinInet/TCP-IP/UDP

16

Platforme:

-Windows 9x/ME/NT/2000/XP/Server 2003
-Windows CE/Windows pentru Pocket PC

Programarea aplicațiilor cu:

-Inregistrare online
-Administrare la distanță
-Design sau vizualizare virtuală și interactivă
-Suport pentru multiple limbi.
-Protecție la copiere
-Sistem de auto-updatare
-Migrarea la frameworkul .NET

1.2.2 Studiul componenței și a dezvoltării firmei

An
Bilanț Cifra
Afaceri
(RON) Grafic Cifră
Afaceri Profit
(RON) Grafic Profit Grafic Angajați
2006 1 994 663
139 526
65
2005 819 269
-16 655
20
2004 348 848
-31 845
12
2003 267 143
-62 774
8

Cifra de afaceri înregistrează o creștere mare, mai ales in 2006, fapt ce a dus și la
angajarea mai multor oameni. Creșterea semnificativă a numarului angajaților reflectă
angajamentul pe care Active Soft și l-a asumat pe piața româneasca, precum și
consolidarea operațiunilor sale comerciale.

Incă de la lansarea Active Soft în Romania, s-a inceput o dezvoltare a tuturor
departamentelor și astfel s-a ajuns la 65 de angajați la sfârșitul anului 2006.

Echipa Active Soft este formată din 55% bărbați si 45% femei, în timp ce
majoritatea angajaților, în proporție de aproximativ 45%, este reprezentată de tineri
profesioniști cu vârste cuprinse între 21 și 30 de ani. De asemenea, 90% din angajații

17
Actve Soft sunt romăni cu expertiză locală, în vreme ce 10% aduc know-how din
industria programării și a designului, de peste graniță.

Datorită faptului că una dintre prioritațile Active Soft continuă să fie extinderea
rețelei de siteuri, eforturile actuale de recrutare se concentrează pe atragerea experților în
domeniul tehnic, pentru dezvoltarea programelor și siteurilor, operațiuni și întreținere,
suport și servicii.

1.3. Studiul sistemului de conducere

1.3.1.Studiul cadrului organizatoric

Active Soft SRL este structurată pe compartimente, servicii, oficii care se ocupă
de activitați distincte. Compartimentele, fiecare în parte, sunt conduse de 1 șef care se
subordoneaza Consiliului de Adminstrație.
Între compartimente, servicii, aflate la același nivel ierarhic există relații de colaborare iar
între cele de pe nivele diferite, relații ierarhice.
Organigrama este de tip piramidal fiind constituită după criteriul funcțional și al gamei de
servicii prestate.
Regulamentul de organizare și funcționare intern – diagrama de relații

Consiliul de
Administrație
Consiliul
Științific
Departamente
programare 2
1
6 5 3 4

18
1 – stabilire membrii, decizii;
2 – raportare proiecte și bugete pentru proiecte;
3 – norme de muncă, activități resurse umane;
4 – raport disciplină, raport necesar resurse umane;
5 – atribuire sarcini, proiecte, termene limită;
6 – raport dezvoltare;

a) Consiliul de Administrație reprezintă cel mai înalt nivel ierarhic în sistemul de
conducere, la acest nivel luându-se decizii legate de administrarea bunurilor deținute de
către firmă și de organizarea resurselor umane în celelalte compartimente ale firmei
Active Soft. Consiliul de Administratie se întrunește lunar, luând decizii în privința
retehnologizării departamentelor și a creșterii numărului de angajați în funcție de
viitoarele proiecte create de Consiliul Știintific. Membrii Consiliului de Administrație
votează Șefii de Departament și de altfel, componența Consilului Științific.
Consiliul de Administrație este alcătuit din Directorul General, numit de către patronul
firmei, Consilierul Tehnic, Consilierul Economic, Directorul de Dezvoltare, Consilierul
de Marketing și Consilierul de Resurse Umane, cei din urmă fiind numiți de către
Directorul General.

b) Consiliul Științific are rolul de a organiza și conduce dezvoltarea
Departamentelor prin desemnarea atribuțiilor fiecărui departament. Este condus de
Directorul de Dezvoltare și alcătuit din Șefii de Departament și Consilierul de Marketing.
Consiliul științific se întrunește, la fel ca și Consiliul de Administrație, în fiecare luna
pentru a stabili viitoarele proiecte.

c) Departamentele de Programare și Suport, sunt alcătuite dintr-un număr de
programatori/specialiști în diferite domenii și un Șef de Departament. Activitatea lor o
constituie elaborarea, producerea, furnizarea și documentarea soft-ului la comandă, bazat
pe cerințele utilizatorilor, proiectarea de pagini web , acordarea de consultanța în
domeniul aplicațiilor create.

19
1.3.2 Organigrama firmei și fișele de post

Atribuțiile și obligațiile conform Fișei Postului pentru personalul de conducere sunt:

Directorul General
 Organizează și conduce, prin factori de decizie toate activitațile administrative
 Are dreptul de semnatură a actelor în bancă
 Aprobă deconturile și obligațiile către stat
 Semnează contractele
 Deleagă autoritatea sa, cadrelor de conducere aflate la niveluri ierarhice imediat
inferioare, pentru decizii de rutinaă Consiliul de Administrație
-Director General
-Consilier Tehnic
-Consilier Economic
-Director Dezvoltare
-Consilier Marketing
-Consilier Resurse Umane Consiliul Științific
-Director Dezvoltare
-Consilier Marketing
– Șefi Departamente

Departament programare
sisteme la cheie
-Șef Departament
-Programatori

Departament proiectare
siteuri web
-Șef Departament
-Programatori
Departament migrare
aplicatii .NET
-Șef Departament
-Programatori

Departament suport si
consultanță tehnică
-Șef Departament
-Consilieri informatici

20
Consilierul Tehnic
1. Răspunde direct în fața directorului general
2. Organizează și ia măsuri pentru respectarea procesului tehnologic (modernizarea,
reparația și întreținerea echipamentului din dotare)

Consilierul Economic
1. Răspunde în fața Directorului General de realizarea analizelor economice, de
menținerea în permanență a capacitații de plată a societații și de indeplinirea la termen, în
conformitate cu dispozitiile legale a obligațiilor față de bănci.

Directorul de Dezvoltare
1. Conduce Consiliul Științific coordonând atribuirea de proiecte între
Departamente
2. Anticipează cantitatea de comenzi din viitor și astfel sfătuiește Consilierul de
Resurse Umane în Consiliul de Administrație cu privință la angajarea de noi programatori
3. Răspunde direct în fața directorului general și pregatește, trimestrial, un raport
în vederea direcției în care se indreaptă firma

Consilierul de Marketing
1. Concepe strategia de marketing, pe care o va adopta firma în viitor
2. Sfătuiește în Consilul Științific cu privire la fiabilitatea noilor proiecte din
punct de vedere al marketingului
3. Contribuie activ la procesul de proiectare al noilor sisteme.

Consilierul de Resurse Umane
1. Răspunde în fața Directorului General de pregătirea angajaților
2. Verifică din punct de vedere juridic toate contractele încheiate de firmă

1.4 Studiul sistemului condus

Firma Active Soft SRL a numărat 65 de angajați în 2006, dintre care 60 formează
cadrul condus, programatori și oameni de specialitate în domeniul informaticii, fiind

21
împărțiți în 4 departamente. Fiecare departament este condus de un Șef de Departament,
ales de catre Consilul de Administrație dintre oamenii existenți în departament.
Departamentul programare, sisteme la cheie, se ocupă exact cu ceea ce îi
sugerează și numele, și anume de elaborarea, producerea, furnizarea și documentarea
soft-ului la comandă, bazat pe cerințele utilizatorilor. Acest departament reprezintă 40%
din angajații firmei.
Departamentul proiectare siteuri web se ocupă cu crearea de pagini web atât
pentru promovarea firmei Active Soft, oferind servicii gratuite și contra-cost, cât și pentru
clienți, siteurile create începând de la simple pagini de prezentare, la magazine virtuale și
siteuri complexe necesitând ultimele tehnologii în securitate și criptare.

Departamentul migrare aplicații .NET are grijă de cererea din ce în ce mai mare a
clienților de a-și transoforma aplicațiile din alte limbaje, în platforma .NET. Deocamdată
doar 20% din angajați se ocupă cu această muncă, dar numărul lor este în creștere.

Restul de 10% din angajați lucrează în cadrul Departamentului de suport și
consultanță tehnică, oferind serviciile firmei prin telefon, administrare la distanța, dar și
în persoană, dacă este necesar. Pe lănga suportul tehnic oferit, angajații Active Soft pot
acorda și consultanța de specialitate în cazuri de analiză și programare a altor sisteme
informatice.

Șefii de departament au ca responsaibilitate ținerea evidenței orelor lucrate de
către oamenii din subordine și motivarea acestora în proiectele implicate.

1.5. Studiul sistemului informațional existent

Activitatea în cadrul firmei Active Soft se poate împarți în 4 ramuri, în funcție de
obiectivul acesteia:
-activitați administrative, îndeplinite de conducere, cu scopul de a susține și a asigura o
bună desfașurare a restului de activități din firmă.
-activitatea în urma comenzii unui client, este formată din analiza și proiectarea unui
sistem la cheie.
-activitatea în urma unui proiect de dezvoltare, hotarât de Consilul Științific, menit să
crească traficul pe siteurile firmei, rezultând în aducerea de mai multi clienți.
-activitatea Departamentului de suport și consultanța tehnică

22
1.5.1 Fluxurile informaționale

Clienți

1 2, 6

Prezentarea documentelor:
1. Comanda – Este cererea scrisă de către un client pentru a contacta firma în
vederea creării unui contract. Conține datele proiectului înaintat de câtre client.
2. Contractul de prestări servicii – Este contractul redactat de catre Serviciul
Economic și semnat de ambele părți, firma fiind reprezentată prin Directorul
General. Scopul contractului este angajarea firmei pentru a îndeplini un proiect
cerut de către client.
3. Comanda internă – Este o comandă scrisă de către Consiliul Administrativ către
Consiliul Știintific, prezentând o comandă acceptată de la un client, cu toate
datele relevante pentru începerea proiectului.
4. Evidența comenzilor – Este o listă conținând toate comenzile avute de către firmă.
Conține datele proiectelor, clienții care au angajat firma, datele limită.
5. Evidența clienților – Este o listă care conține toți clienții și datele acestora,
comenzi avute, conturi bancare, date de contact. Clienți

Consiliul de Administrație

4. Evidența comenzilor
5. Evidența clienților
Consiliul Științific

Șefi de departament

Angajați
1 2, 6
3
7 8

23
6. Factura – Este un document fiscal întocmit în 3 exemplare, în urma prestării de
servicii și a indeplinirii unui contract, prin care clientul primește dovada plații.
Conține data întocmirii, prețul serviciilor, TVA.
7. Contractul de muncă – Este contractul redactat de către Serviciul Resurse Umane
prin care se stabilesc relațiile dintre firmă și angajat.
8. Fișa de pontaj – Este un document ce ține evidența orelor lucrate de către angajații
firmei, conține orele de intrare și de ieșire ale acestora și stă la baza calculului
salariilor.

1.5.2 Dotarea hardware și software

Dotarea hardware este în continuă schimbare, făcându-se upgradeuri cel puțin o
dată pe an, pentru a asigura buna desfășurare a activitații firmei.
Departamentele de programare software la cheie și Departamentul de migrare
aplicații .NET sunt dotate cu stații de lucru performante pentru ca programatorii să poată
crea softwareul necesitat:
-Intel Core 2 Duo 2Ghz
-2Gb Ram
-HDD 100Gb
-conexiune broadband la internet
-rulând sistemul de operare Windows XP

Departamentul de prioectare siteuri web deține, pe lânga stațiile de lucru, și
servere ultra-performante pe care sunt găzduite toate siteurile create de acest
departament, pentru a fi administrate. Aceste servere, rulând Linux Slackware, cumulează
mai mulți TB în spațiu de găzduire, având fiecare linie dedicată la internet.

1.6 Analiza critică a sistemului existent la www.ziare.com

Siteul www.ziare.com este doar unul, dar poate cel mai important dintre siteurile
create de către firma Active Soft, având ca scop, generarea de trafic și aducerea la
cunoștința publicului a celorlalte servicii oferite de instituție.
Pe acest site se găsesc articole despre știrile zilei, preulate din diferite publicații
românesti și chiar articole scrise de catre editorii siteului.
Ziare.com oferă informații gratuite către utilizatorii online și linkuri către alte
siteuri ale ziarelor și revistelor românesti.

24
Un alt serviciu oferit, este posibilitatea de a crea o listă individuală pentru fiecare
utlizator conținând linkurile cele mai des vizitate de către alte publicații online, astfel
utilizatorul poate accesa mai ușor și de oriunde, ziarele cele mai des urmărite.
Forumul www.ziare.com completează serviciile oferite utilizatorilor în căutare de
informații, putând să citească sau chiar să pornească o conversație cu alți utilizatori, pe
baza unui articol de ultimă oră.
Motorul de căutare de pe site, pune la dispoziție întreaga colecție de informații,
aflate pe ziare.com, oricui are nevoie de ea, mai mult arhiva tuturor știrilor oferite de
acest site este în continuare accesibilă.

Deficiențele sistemului existent sunt în primul rând reprezentate de lipsa
informației de interes internațional, prezentată în mai multe limbi, cel puțin cele de
circulație internațională. Astfel, deși firma Active Soft urmărește atragerea clienților
locali, cât și internaționali, siteurile create pentru generarea de trafic sunt doar de interes
național.
Cantitatea de informație prezentă pe site nu poate aduce numărul destul de mare
de utilizatori urmărit de către firmă, nici nu îi poate ține pe site destul timp pentru a le fi
prezentate toate serviciile.

Pentru perfecționarea acestui sistem, este necesar de un site care să ofere mult mai
multă informație pentru a atrage un număr mare de utilizatori, acest conținut trebuie să fie
de interes internațional pentru a putea aduce pe site și utilizatori din alte țări.
Un agregator centralizat este una din soluții, având potențialul de a genera trafic
de ordinul zecilor de mii de utilizatori pe zi. Neavând nevoie de o administrare complexă,
singurele limite sunt dotarea hardware și conectarea serverelor la internet.

25
Capitolul II – Proiectarea de ansamblu a noului
sistem informatic

2.1 Obiectivele sistemului informatic

Aplicația care este proiectată în această lucrare are ca scop centralizarea
feedurilor RSS din intreg Internetul pentru a oferi utlizatorilor o informație cât mai
precisă și mai completă. Prin adăugarea acestui serviciu, firma Active Soft urmarește
creșterea de trafic pe toate siteurile deținute și crearea de utilizatori fideli care să
folosească serviciile oferite în fiecare zi, sau chiar de mai multe ori pe zi.

Programul urmărește simplificarea procesului de informare de pe Internet, de
centralizare și organizare a cantitații enorme de informație accesibilă pe Internet, într-un
singur loc.

Aplicația va facilita urmatoarele funcțiuni gratuit:
 Citirea de feeduri RSS
 Adăugarea de pâna la 10 feeduri într-o listă personală
 Vizionarea feedurilor pe categorii
 Adăugarea de noi feeduri în baza de date
 Vizualizarea statisticilor de feeduri
 Vizualizarea statisticilor de știri
 Căutarea de feeduri
 Căutarea de știri
 Căutarea de prieteni
 Bannere personalizate pe țară
 Trimiterea unei știri prin email unui prieten

26
Aplicația va facilita următoarele funcțiuni contra cost:
 Adăugarea unui număr nelimitat de feeduri în lista personală
 Adăugarea de știri la secțiunea bookmarkuri
 Scoaterea bannerelor publicitare

2.2 Proiectarea ieșirilor sistemului informatic

2.2.1 Prezentarea ieșirilor

Ieșirile unui sistem informatic reprezintă rezultatul prelucrării datelor și a
calculelor, informații oferite utilizatorului sistemului. In cazul aplicației noastre, aceste
ieșiri vor fi:

Categorii de feeduri RSS

Administrate de un moderator.
Sunt categorii generice în care se pot încadra feedurile existente pentru a ușura
căutarea lor.

Pagina de feed

Preluate de pe diferite siteuri externe.
Conțin informațiile generice ale feedului și știrile propiu-zise.

Statisticile feedurilor

Preluate din baza de date.
Conțin topurile celor mai citite și celor mai abonate feeduri.

27

Căutarea

Intoarce rezultatele căutarii de feeduri sau de știri.

Pagina personală

Administrată de utilizator.
Conține feedurile la care este abonat utilizatorul și cele mai recente știri din ele.

2.2.2 Proiectarea ieșirilor

Categorii de feeduri RSS

Sunt administrate de un moderator, momentan există 10 categorii, dar pot fi
adăugate într-un număr nelimitat.
Acestea sunt: Auto Feeds regarding cars, motorcycles, auto producers and car-
related technology. – Blog Category including web logs, video logs and podcasting. –
Finance RSS Feeds covering business news and financial market updates. – Forums Any
RSS Feeds keeping track of forum posts. – Fun Funny pictures, jokes, webcomics,
hobbies and games updates. – News World News, Regional, Social, Political, Health and
Entertainment News. – Other Other RSS Feeds that do not fit the descriptions of any other
category. – Photography Feeds on Travel logs, Photography tutorials. – Sports Football,
Soccer, Baseball, Basketball, Gymnastics, etc. – Technology Science & Technology
updates.
Mai conține câmpurile de Căutare rapidă, pentru a căuta feeduri în toate
categoriile sau în toate știrile.

28
Pagina de categorie

Conține feedurile care aparțin categoriei , ordonate alfabetic.
Mai conține câmpurile de Căutare rapidă, pentru a căuta feeduri sau știri în
categoria respectivă.

Pagina de feed

Conține informațiile generice ale feedului: titlul, linkul, descrierea, numărul de
abonați, data la care a fost updatată ultima dată.
Meniul feedului are urmatoarele butoane: Abonare/Dezabonare, Vizualizarea
știrilor necitite din feed, Vizulaizarea altor feeduri similare, Raportarea feedului către un
moderator, Updatarea feedului și Căutarea știrilor în feedul respectiv.
Știrile feedului sunt listate în ordinea apariției lor, cu cea mai recentă știre sus dar
oferă utilizatorului posibilitatea de a sorta lista după titlu și numărul de vizualizări. Știrile
conțin informații generice precum titlul, descrierea, linkul, numărul de vizualizări și data
publicării știrii.
Știrile sunt paginate câte 10, având în josul paginii butoanele pentru a continua la
următoarele pagini ale feedului.

Statisticile feedurilor

Conține Top 5 cele mai urmărite feeduri cu informațiile: titlu, link, descriere,
număr de abonați
Conține Top 10 cele mai vizionate știri din ultimele 24 de ore cu informațiile:
titlu, link, descriere, feedul de care aparține, numărul de vizionari, data publicării.

29
Căutarea

Se împarte în 3 pagini: căutarea de feeduri, căutarea de știri și căutarea de
prieteni.
Căutarea de feeduri conține câmpurile: titlu, categorie, link, descriere și butoanele
de căutare și reset al formularului.
Căutarea de știri conține câmpurile: titlu, categorie, link, descriere, intervalele de
timp în care a fost publicată știrea și butoanele de căutare și reset al formularului.
Căutarea de prieteni conține câmpurile: nume, email și butoanele de căutare și
reset al formularului.

Pagina personală

Conține feedurile la care este abonat utilizatorul cu informațiile: titlu, link,
descriere, ultima dată când a fost updatată și butoane de dezabonare, updatare. Feedurile
sunt structurate și ordonate pe categorii.
Conține știrile din feedurile la care este abonat utilizatorul, cu informațiile: titlu,
link, descriere, feedul de care aparține, numărul de vizionari, data publicării, ordonate
după data publicării, cu cea mai recentă știre la început.

2.3 Proiectarea intrărilor sistemului informatic

2.3.1 Prezentarea intrărilor

Prin intrările unui sistem informatic se intețege totalitatea datelor necesare pentru
prelucrare, cu scopul de a obține ieșirile sistemului informatic.

30
Feeduri RSS

Preluate de pe siteuri externe
Toate feedurile RSS trebuie să respecte specificațiile XML indicate in IETF RFC
2119.

Alte informații

Preluate de la utlizatori la înregistrare și apoi prin folosirea serviciilor siteului.

2.3.2 Proiectarea intrărilor

Feeduri RSS

Există multiple formate RSS, de aceea vom acorda atenție în principal structurii
RSS 2.0. Formatul feed-ului RSS nu este accesibil utilizatorului uman, fiind un fișier
XML destinat a fi citit de programe speciale. Fiecare astfel de fișier conține informații
statice sau dinamice, structurate într-un mod anume cu ajutorul unor TAG-uri specifice
gramaticii XML.
<item>
<title> Titlu </title>
<link> Adresa </link>
<description> Descriere </description>
</item>

Cod XML in RSS
Așa arată o știre în format XML în cel mai simplu mod. Există taguri specifice pentru
câmpurile Titlu și Descriere și tagul pentru adresa știrii respective, toate încadrate între
tagurile <item>. Un canal RSS conține mai multe astfel de „items”, precum și alte taguri
suplimentare.

31

<channel>
<title> Titlu </title>
<link> Adresa </link>
<description> Descrierea feedului
</description>
<copyright> Copyright </copyright>
<item> … </item>
<item> … </item>
<item> … </item>

</channel>
Anexa 1 – Cod XML in RSS

Câteva câmpuri sunt obligatorii într-un RSS:
– Pentru channel acestea sunt: title, link, description.
– Pentru item toate sunt opționale însa unul dintre title și description trebuie să fie
prezent.

Alte informații

Utlizatorul completează următoarele câmpuri la inregistrare: username, parola,
nume, email, țara.
În urma folosirii serviciilor siteului, utilizatorul mai oferă informații precum
feedurile la care se abonează și ce știri vizionează.

32

2.4 Proiectarea bazei de date

2.4.1 Definirea colecțiilor de date

ADS
-Id (număr de identificare, cheie primară )
-Country (codul țarii)
-Image (numele fișierului)
-Link (linkul reclamei)
-Title (titlul reclamei)

CATEGORIES
-Id (număr de identificare, cheie primară )
-Name (numele categoriei)
-Description (descrierea categoriei)

NEWS
-Id (număr de identificare, cheie primară )
-Title (titlul știrii)
-Description (descrierea știrii)
-Link (linkul știrii)
-Rssid (numărul de identificare a feedului, cheie externă)
-pubDate (data de publicare a știrii)
-Visited (numărul de vizionări a știrii)
-Bookmarked (flag pentru a marca știrile salvate)

REPORTS
-Id (număr de identificare, cheie primară )
-Userid (număr de identificare a utilizatorului, cheie externă)

33
-Rssid (numărul de identificare a feedului, cheie externă)
-Reason (motivul pentru care a fost raportat feedul)

RSSFEEDS
-Id (număr de identificare, cheie primară )
-Title (titlul feedului)
-Link (linkul feedului)
-Categ (număr de idenitificare a categoriei, cheie externă)
-Subscribed (numărul de abonați ai feedului)
-Homelink (linkul siteului)
-Description (descrierea feedului)
-Updated (data ultimii updatari a feedului)
-Timezone (timezoneul în care este trecut feedul)

SUBSCRIPTIONS
-Id (număr de identificare, cheie primară )
-Userid (număr de identificare a utilizatorului, cheie externă)
-Feed (număr de identificare a feedului, cheie externă)

USERS
-Id (număr de identificare, cheie primară )
-Username (usernameul utilizatorului)
-Password (parola utilizatorului, encodată in MD5)
-Email (emailul utilizatorului)
-Firstname (prenumele utilizatorului)
-Lastname (numele de familie al utilizatorului)
-Country (codul țării, cheie externă)

34
2.4.2 Diagrama entitate-asociere

Anexa 2 – Diagrama entitate-asociere

35
Capitolul III – Proiectarea de detaliu a sistemului
informatic

3.1. Proiectarea de detaliu a siteului

3.1.1 Detalierea funcțiilor și a structurii sistemului informatic

Sistemul informatic este împărțit în mai multe pagini, în funcție de informațiile
cerute și de datele prelucrate, dar pe lânga acestea, care vor fi proiectate în subcapitolele
următoare, există câteva funcții de bază, care sunt disponibile tot timpul prin meniul din
susul paginii:

– Întoarcerea la pagina principală prin linkul aflat pe logoul siteului.
– Informații despre site prin butonul aflat în meniu;
– Secțiunea Contact este disponibilă din meniu;
– Ceasul serverului este aflat în dreapta sus, sub meniu;

3.1.2 Proiectarea logică de detaliu a paginilor

Siteul va fi împărțit în 3 secțiuni:
– Partea de sus conținând logoul siteului și meniul
– Partea din stânga conținând meniul utilizatorului
– Partea centrală cu informațiile paginii respective

Pagina principală (Pagina de statistici)

Conține Top 5 cele mai urmărite feeduri cu informațiile: titlu, link, descriere,
număr de abonați

36
Conține Top 10 cele mai vizionate știri din ultimele 24 de ore cu informațiile:
titlu, link, descriere, feedul de care aparține, numărul de vizionîri, data publicării.

Pagina de categorii

Conține o listă cu categoriile de feeduri existente:
– Auto Feeds regarding cars, motorcycles, auto producers and car-related
technology.
– Blog Category including web logs, video logs and podcasting.
– Finance RSS Feeds covering business news and financial market updates.
– Forums Any RSS Feeds keeping track of forum posts.
– Fun Funny pictures, jokes, webcomics, hobbies and games updates.
– News World News, Regional, Social, Political, Health and Entertainment News.
– Other Other RSS Feeds that do not fit the descriptions of any other category.
– Photography Feeds on Travel logs, Photography tutorials.
– Sports Football, Soccer, Baseball, Basketball, Gymnastics, etc.
– Technology Science & Technology updates.
În josul paginii, mai conține câmpurile de Căutare rapidă, pentru a căuta feeduri în toate
categoriile sau în toate știrile.

Pagina de categorie

Conține feedurile care aparțin categoriei, ordonate alfabetic.
În josul paginii, mai conține câmpurile de Căutare rapidă, pentru a căuta feeduri
sau știri în categoria respectivă.

37

Pagina de feed

Conține informațiile generice ale feedului: titlul, linkul, descrierea, numărul de
abonați, data la care a fost updatată ultima dată.
Meniul feedului are urmatoarele butoane: Abonare/Dezabonare, Vizualizarea
știrilor necitite din feed, Vizualizarea altor feeduri similare, Raportarea feedului către un
moderator, Updatarea feedului și Căutarea știrilor în feedul respectiv.
Știrile feedului sunt listate în ordinea apariției lor, cu cea mai recentă știre sus dar
oferă utilizatorului posibilitatea de a sorta lista dupa titlu și numărul de vizualizări. Știrile
conțin informații generice precum titlul, descrierea, linkul, numărul de vizualizări și data
publicării știrii.
Știrile sunt paginate câte 10, având în josul paginii butoanele pentru a continua la
următoarele pagini ale feedului.

Pagina de căutare avansată

Se imparte în 3 pagini: căutarea de feeduri, căutarea de știri și căutarea de
prieteni.
– Căutarea de feeduri conține câmpurile: titlu, categorie, link, descriere și
butoanele de căutare și reset al formularului.
– Căutarea de știri conține câmpurile: titlu, categorie, link, descriere, intervalele de
timp în care a fost publicată știrea și butoanele de căutare și reset al formularului.
– Căutarea de prieteni conține câmpurile: nume, email și butoanele de căutare și
reset al formularului.

38

Pagina personală (cu abonările utilizatorului)

Conține feedurile la care este abonat utilizatorul cu informațiile: titlu, link,
descriere, ultima dată când a fost updatată și butoane de dezabonare, updatare. Feedurile
sunt structurate și ordonate pe categorii.
Conține știrile din feedurile la care este abonat utilizatorul, cu informațiile: titlu,
link, descriere, feedul de care aparține, numărul de vizionări, data publicării, ordonate
după data publicării, cu cea mai recenta știre la început.

3.1.3 Proiectarea fizicii de detaliu a paginilor

Siteul va fi împarțit astfel:

39

Pagina principală (Pagina de statistici)

Anexa 3 – Pagina principala

Conține Top 5 cele mai urmărite feeduri cu informațiile: titlu, link, descriere,
număr de abonați
Conține Top 10 cele mai vizionate știri din ultimele 24 de ore cu informațiile:
titlu, link, descriere, feedul de care aparține, numărul de vizionări, data publicării.

40
Pagina de categorii

Anexa 4 – Pagina de categorii
Conține o listă cu categoriile de feeduri existente:
În josul paginii, mai conține câmpurile de Căutare rapidă, pentru a căuta feeduri
în toate categoriile sau în toate știrile.

Pagina de categorie

Anexa 5 – Pagina de categorie

41
Conține feedurile care aparțin categoriei, ordonate alfabetic.
În josul paginii, mai conține câmpurile de Căutare rapidă, pentru a căuta feeduri
sau știri în categoria respectivă.

Pagina de feed

Anexa 6 – Pagina de feed
Conține informațiile generice ale feedului: titlul, linkul, descrierea, numărul de
abonați, data la care a fost updatată ultima dată.
Meniul feedului are următoarele butoane: Abonare/Dezabonare, Vizualizarea
știrilor necitite din feed, Vizualizarea altor feeduri similare, Raportarea feedului câtre un
moderator, Updatarea feedului și Căutarea știrilor în feedul respectiv.
Știrile feedului sunt listate în ordinea apariției lor, cu cea mai recentă știre sus, dar
oferă utilizatorului posibilitatea de a sorta lista după titlu și numărul de vizualizări. Știrile

42
conțin informații generice precum titlul, descrierea, linkul, numărul de vizualizări și data
publicării știrii.
Știrile sunt paginate câte 10, având în josul paginii butoanele pentru a continua la
următoarele pagini ale feedului.

Pagina de căutare avansată

Anexa 7 – Pagina de căutare avansată

Se împarte în 3 pagini: căutarea de feeduri, căutarea de știri și căutarea de
prieteni.
– Căutarea de feeduri conține câmpurile: titlu, categorie, link, descriere și
butoanele de căutare și reset al formularului.
– Căutarea de știri conține câmpurile: titlu, categorie, link, descriere, intervalele de
timp în care a fost publicată știrea și butoanele de căutare și reset al formularului.
– Căutarea de prieteni conține câmpurile: nume, email și butoanele de căutare și
reset al formularului.

43
Pagina personală (cu abonările utilizatorului)

Anexa 8 – Pagina personală
Conține feedurile la care este abonat utilizatorul cu informațiile: titlu, link,
descriere, ultima dată când a fost updatată și butoane de dezabonare, updatare. Feedurile
sunt structurate și ordonate pe categorii.
Conține știrile din feedurile la care este abonat utilizatorul, cu informațiile: titlu,
link, descriere, feedul de care aparține, numărul de vizionări, data publicării, ordonate
după data publicării, cu cea mai recentă știre la început.

44
3.2. Proiectarea bazei de date

3.2.1 Crearea tabelelor


– Table structure for table `ads`

DROP TABLE IF EXISTS `ads`;
CREATE TABLE IF NOT EXISTS `ads` (
`id` int(11) NOT NULL auto_increment,
`country` varchar(5) character set latin1 NOT NULL default '',
`image` varchar(255) character set latin1 NOT NULL default '',
`link` varchar(255) character set latin1 NOT NULL default '',
`title` varchar(255) character set latin1 NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
AUTO_INCREMENT=13 ;

– –––––––––––––––––––


– Table structure for table `categories`

DROP TABLE IF EXISTS `categories`;
CREATE TABLE IF NOT EXISTS `categories` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(50) NOT NULL default '',
`description` varchar(255) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=101 ;

– –––––––––––––––––––


– Table structure for table `news`

DROP TABLE IF EXISTS `news`;
CREATE TABLE IF NOT EXISTS `news` (
`id` int(11) NOT NULL auto_increment,
`title` varchar(255) character set utf8 collate utf8_unicode_ci NOT NULL default '',
`description` tinytext,

45
`link` varchar(255) NOT NULL default '',
`rssid` int(11) NOT NULL default '0',
`pubDate` datetime NOT NULL default '0000-00-00 00:00:00',
`visited` int(11) default '0',
`bookmarked` int(2) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=270 ;

– –––––––––––––––––––


– Table structure for table `reports`

DROP TABLE IF EXISTS `reports`;
CREATE TABLE IF NOT EXISTS `reports` (
`id` int(11) NOT NULL auto_increment,
`userid` int(11) NOT NULL default '0',
`rssid` int(11) NOT NULL default '0',
`reason` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

– –––––––––––––––––––


– Table structure for table `rssfeeds`

DROP TABLE IF EXISTS `rssfeeds`;
CREATE TABLE IF NOT EXISTS `rssfeeds` (
`id` int(7) NOT NULL auto_increment,
`title` varchar(255) NOT NULL default '',
`link` varchar(255) NOT NULL default '',
`categ` int(11) NOT NULL default '0',
`subscribed` int(11) NOT NULL default '0',
`homelink` varchar(255) NOT NULL default '',
`description` tinytext NOT NULL,
`updated` varchar(255) NOT NULL default '',
`timezone` varchar(6) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=20 ;

– –––––––––––––––––––

46
– Table structure for table `subscriptions`

DROP TABLE IF EXISTS `subscriptions`;
CREATE TABLE IF NOT EXISTS `subscriptions` (
`id` int(11) NOT NULL auto_increment,
`userid` int(11) NOT NULL default '0',
`feedid` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
AUTO_INCREMENT=1 ;

– –––––––––––––––––––


– Table structure for table `users`

DROP TABLE IF EXISTS `users`;
CREATE TABLE IF NOT EXISTS `users` (
`id` int(7) NOT NULL auto_increment,
`username` varchar(30) NOT NULL default '',
`password` varchar(30) NOT NULL default '',
`email` varchar(255) NOT NULL default '',
`firstname` varchar(255) NOT NULL default '',
`lastname` varchar(255) NOT NULL default '',
`country` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;

3.2.2 Descrierea structurilor

ADS

Anexa 9 – Structura bazei de date

47
-Id (număr de identificare, cheie primară ) – INT (11)
-Country (codul țării) – VARCHAR (5)
-Image (numele fișierului) – VARCHAR (255)
-Link (linkul reclamei) – VARCHAR (255)
-Title (titlul reclamei) – VARCHAR (255)

CATEGORIES

Anexa 9 – Structura bazei de date

-Id (număr de identificare, cheie primară ) – INT (11)
-Name (numele categoriei) – VARCHAR (50)
-Description (descrierea categoriei) – VARCHAR (255)

NEWS

Anexa 9 – Structura bazei de date

-Id (număr de identificare, cheie primară ) – INT(11)
-Title (titlul știrii) – VARCHAR (255)
-Description (descrierea știrii) – TINYTEXT
-Link (linkul stirii) – VARCHAR (255)
-Rssid (numărul de identificare a feedului, cheie externă) – INT(11)
-pubDate (data de publicare a știrii) – DATETIME
-Visited (numărul de vizionări a știrii) – INT(11)

48
-Bookmarked (flag pentru a marca știrile salvate) – INT(2)

REPORTS

Anexa 9 – Structura bazei de date

-Id (număr de identificare, cheie primară ) – INT(11)
-Userid (număr de identificare a utilizatorului, cheie externă) – INT(11)
-Rssid (numărul de identificare a feedului, cheie externă) – INT(11)
-Reason (motivul pentru care a fost raportat feedul) – VARCHAR (255)

RSSFEEDS

Anexa 9 – Structura bazei de date

-Id (număr de identificare, cheie primară ) – INT(11)
-Title (titlul feedului) – VARCHAR (255)
-Link (linkul feedului) – VARCHAR (255)
-Categ (număr de idenitificare a categoriei, cheie externă) – INT(11)
-Subscribed (numărul de abonați ai feedului) – INT(11)
-Homelink (linkul siteului) – VARCHAR (255)
-Description (descrierea feedului) – TINYTEXT
-Updated (data ultimei updatări a feedului) – VARCHAR (255)

49
-Timezone (timezoneul în care este trecut feedul) – VARCHAR (8)

SUBSCRIPTIONS

Anexa 9 – Structura bazei de date

-Id (număr de identificare, cheie primară ) – INT(11)
-Userid (număr de identificare a utilizatorului, cheie externă) – INT(11)
-Feed (număr de identificare a feedului, cheie externă) – INT(11)

USERS

Anexa 9 – Structura bazei de date

-Id (număr de identificare, cheie primară ) – INT(11)
-Username (usernameul utilizatorului) – VARCHAR(30)
-Password (parola utilizatorului, encodată in MD5) – VARCHAR(30)
-Email (emailul utilizatorului) – VARCHAR(255)
-Firstname (prenumele utilizatorului) – VARCHAR(255)
-Lastname (numele de familie al utilizatorului) – VARCHAR(255)
-Country (codul țării, cheie externă) – VARCHAR(255)

50
3.3. Proiectarea fișierelor și a codului

Add.php
– adaugă un nou feed în baza de date
– primește prin variabila $rss un url al noului feed care trebuie adăugat în baza de date

Addrss.php
– primește un feed pentru a-l adăuga în baza de date
– verifică dacă feedul există deja, dacă nu, îl adaugă
– include check.php
– include getres.php
– include add.php

Ads.php
– afișează un banner
– verifică dacă este înregistrat userul, dacă este, verifică dacă există bannere speciale
pentru țara din care provine, dacă da, afișeaza unul aleatoriu, dacă nu, afișează un banner
internațional.
– include getdata.php

Autoupdate.php
– updatează automat feedul la intrarea pe pagină

Categ.php
– afișează pagina de categorii
– include check.php
– include getres.php

Check.php
– verifică dacă utilizatorul este logat
– include conn.php

Conn.php
– face conectarea la baza de date

Feed.php
– afișează pagina unui feed
– include check.php
– include getres.php
– include functions.php
– include autoupdate.php
– include getdata.php

Functions.php
-conține funcțiile incluse în majoritatea paginilor siteului

51

Index.php
– afișează prima pagină a siteului
– include indexanon.php dacă userul nu este logat
– include indexuser.php dacă userul este logat

News.php
– redirecționează utilizatorul către siteul care conține știrea
– incrementează numărul de vizite al știrii

Register.php
– afișeaza pagina de înregistrare a unui nou utilizator

Search.php
– afișeaza pagina de căutare avansată

Update.php
– actualizează un feed sau un număr de feeduri la cererea utilizatorului

52
Capitolul IV – Prezentarea produsului,
implementarea și exploatarea aplicației

4.1. Prezentarea software
4.1.1 Accesul utilizatorilor nelogați

Index

Anexa 3 – Pagina principală
Categorii

Anexa 4 – Pagina de categorii Feed

Anexa 6 – Pagina de feed Register

Anexa 10 – Pagina
înregistrare
Căutare

Anexa 7 – Pagina de căutare avansată

53
4.1.2 Accesul utilizatorilor logați

Index

Anexa 8 – Pagina personală
Categorii

Anexa 4 – Pagina de categorii
Feed

Anexa 6 – Pagina de feed
Statistici

Anexa 3 – Pagina principală

Căutare

Anexa 7 – Pagina de căutare avansată

54
4.2. Implementarea sistemului

4.2.1 Cerințele platformei hardware și software ale produsului

Siteul nu necesită o platformă hardware specială, orice server care suportă PHP
versiunea 4 sau mai mare și MySQL, poate hosta aplicația. Cerințele serverului pot însă
crește în funcție de numărul de utilizatori pe care trebuie să îi servească în același timp.
Viteza procesorului și capacitatea RAM sunt esențiale pentru o rulare fără probleme a
siteului. Astfel, următoarea configurație ar trebui să facă față unui volum moderat de
utilizatori, de pâna la 1000 de utilizatori / zi:

Intel Xeon Dual Core 3,2 Mhz
2 GB Ram ECC
Hdd pe SCSI 80 GB
Ruland Windows 2003 Server sau Linux ca sistem de operare pentru a asigura
stabilitate.

4.2.2 Instalarea și lansarea

Instalare Apache 2.2.2
Mai întâi obținem binarele serverului: apache_2.2.2-win32-x86-no_ssl.msi (aproximativ
4,2 MB)
După ce am descarcat kit-ul, începem instalarea, executând dublu-clik pe executabil
(dacă în sistem există deja o versiune mai veche a serverului, o dezinstalăm în prealabil).
Urmează Next, apoi citim (eventual îi suntem de acord cu) termenii și condițiile după
care Next din nou
Citim și instrucțiunile de folosire și iar Next
Am ajuns la informațiile despre server, unde completăm astfel:
Network Domain (e.g. somenet.com):
localhost

Server Name (e.g. www.somenet.com):
localhost

55
Administrator's Email Address (e.g. webmaster @somenet.com):
tu@domeniu.ro
iar mai jos, în aceeași fereastră, bifăm
for All Users, on port 80, as a Service – Recommended
Astfel, serverul Apache se va instala ca serviciu, va porni automat, odată cu Windows-ul
și va fi dISPonibil pentru toți utilizatorii sistemului.
În continuare Next. Ne intreabă de tipul instalării, bifăm Typical și apăsam Next (love
Windows 🙂 ). În continuare, suntem informați că Apache se va instala în C:\Program
Files\Apache Software Foundation\Apache 2.2\. Totul e ok și aici, îi dăm Next și Install
Ok, installerul și-a făcut treaba, apăsam Finish și am terminat cu instalarea serverului
Apache in Windows (voi reveni mai târziu, în acest tutorial, asupra configurării acestuia).
Dacă totul a decurs în regulă, vei observa că a aparut o iconiță nouă în System Tray (în
dreapta jos, unde este și ceasul).
Acestea fiind zise, am terminat, momentan, cu Apache-ul.

Instalare MySQL 5.0.22
Obținem binarele serverului:
FTP://ftp.roedu.net/pub/mirrors/ftp.mysql.com/Downloads/MySQL-5.0/mysql-5.0.22-
win32.zip" class="link" title="MySQL 5.0.22">Windows (x86) 5.0.22 (aproximativ 36,7
MB)
Deschide arhiva (implicit, Windows-ul știe să deschidă arhive .zip) și, ca de obicei,
dublu-click pe executabilul din interior (Setup.exe) (Dacă în sistem există deja instalată o
versiune mai veche de MySQL, dezinstaleaz-o. De notat este că după dezinstalare,
fișierele bazelor de date create cu versiunea veche se pastrează (C:\Program
Files\MySQL\MySQL Server 5.0\data) și se vor putea refolosi în noua versiune.).
În continuare Next, iar apoi alegem Typical la tipul instalării și Next din nou.
Mai departe, ne este prezentat rezumatul instalării. Apăsam Install
Următoarea fereastră ne îndrumă să creăm un cont gratuit la MySQL.com dar vom alege
Skip Sign-up pentru că, crearea acestui cont nu face obiectul acestui tutorial. Apăsăm
Next
Mergând mai departe, ne este prezentată o fereastră în care este prezentă o bifă cu

56
Configure the MySQL Server now
O bifăm și apăsăm Finish, pentru a continua cu configurarea serverului MySQL.
Se va deschide utilitarul de configurare al serverului, în care apăsăm Next, în următoarea
fereastră bifăm Standard Configuration și, bineînțeles, Next.
În continuare, bifăm Install As Windows Service pentru ca serverul să se instaleze ca
serviciu și să pornească de fiecare dată când pornește Windowsul. Apăsăm Next<./p>
Ne sunt prezentate două câmpuri, în ambele introducem aceeași parolă, a userului root.
Parola o vom folosi ulterior pentru a ne conecta la serverul MySQL. Apăsăm Next
Următoarea fereastră ne prezintă pașii ce vor fi executați pentru configurarea serverului.
Apăsăm Execute iar apoi Finish
Atât la instalarea serverului MySQL.

Instalare PHP 5.1.4
Obținem binarele interpretorului: PHP 5.1.4 zip package (aproximativ 8,9 MB) precum și
colecția de extensii pentru acesta, Collection of PECL modules for PHP 5.1.4
(aproximativ 2,2 MB)
Dezarhivăm conținutul arhivei php-5.1.4-Win32.zip în directorul c:\php\ iar conținutul
arhivei pecl-5.1.4-Win32.zip în directorul c:\php\ext\, proaspăt creat anterior
Următorul pas este copierea fișierelor c:\php\php5apache2.dll, c:\php\dev\php5ts.lib și
c:\php\php5ts.dll în directoarele c:\windows, c:\windows\system si c:\windows\system32.
Recomand și copierea fișierelor din c:\php\ext în directoarele menționate anterior.
În continuare, creăm fișierul de inițializare al PHP-ului. Astfel, copiem fișierul php.ini-
recommmended în directorul c:\windows\php.ini, urmând ca pe viitor să editezi acest
fișier pentru a activa/dezactiva/modifica diverse opțiuni ale PHP-ului.
Acestea fiind zise, am terminat cu instalarea PHP-ului. Acum trebuie să modificăm
fișierul de configurare al serverului Apache, pentru ca acesta să știe să servească
scripturile PHP. Deschide fișierul C:\Program Files\Apache Software
Foundation\Apache2.2\conf\httpd.conf cu un editor text (Notepad, de exemplu) și
modifică astfel :
ServerRoot "C:/Program Files/Apache Software Foundation/Apache2.2"

LoadModule php5_module "c:/php/php5apache2.dll"

57

DocumentRoot "C:/calea/către/fișierele/siteurilor/tale"

<Directory "C:/calea/către/fișierele/siteurilor/tale">

<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>

<IfModule mime_module>
….
AddType application/x-httpd-php .php

</IfModule>
Acestea fiind zise, se restartează sistemul și gata.

Instalarea aplicației

În urma instalării Apache, PHP si MySQL, fișierele siteului trebuie puse într-un
folder în cadrul directorului de servire al Apacheului setat mai sus. Apoi, printr-o
conexiune la MySQL trebuie creată o bază de date numită “rssfeed” și rulat codul
următor:


– Table structure for table `ads`

DROP TABLE IF EXISTS `ads`;
CREATE TABLE IF NOT EXISTS `ads` (
`id` int(11) NOT NULL auto_increment,
`country` varchar(5) character set latin1 NOT NULL default '',
`image` varchar(255) character set latin1 NOT NULL default '',
`link` varchar(255) character set latin1 NOT NULL default '',
`title` varchar(255) character set latin1 NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
AUTO_INCREMENT=13 ;

– –––––––––––––––––––

58
– Table structure for table `categories`

DROP TABLE IF EXISTS `categories`;
CREATE TABLE IF NOT EXISTS `categories` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(50) NOT NULL default '',
`description` varchar(255) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=101 ;

– –––––––––––––––––––


– Table structure for table `news`

DROP TABLE IF EXISTS `news`;
CREATE TABLE IF NOT EXISTS `news` (
`id` int(11) NOT NULL auto_increment,
`title` varchar(255) character set utf8 collate utf8_unicode_ci NOT NULL default '',
`description` tinytext,
`link` varchar(255) NOT NULL default '',
`rssid` int(11) NOT NULL default '0',
`pubDate` datetime NOT NULL default '0000-00-00 00:00:00',
`visited` int(11) default '0',
`bookmarked` int(2) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=270 ;

– –––––––––––––––––––


– Table structure for table `reports`

DROP TABLE IF EXISTS `reports`;
CREATE TABLE IF NOT EXISTS `reports` (
`id` int(11) NOT NULL auto_increment,
`userid` int(11) NOT NULL default '0',
`rssid` int(11) NOT NULL default '0',
`reason` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

– –––––––––––––––––––

59


– Table structure for table `rssfeeds`

DROP TABLE IF EXISTS `rssfeeds`;
CREATE TABLE IF NOT EXISTS `rssfeeds` (
`id` int(7) NOT NULL auto_increment,
`title` varchar(255) NOT NULL default '',
`link` varchar(255) NOT NULL default '',
`categ` int(11) NOT NULL default '0',
`subscribed` int(11) NOT NULL default '0',
`homelink` varchar(255) NOT NULL default '',
`description` tinytext NOT NULL,
`updated` varchar(255) NOT NULL default '',
`timezone` varchar(6) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=20 ;

– –––––––––––––––––––


– Table structure for table `subscriptions`

DROP TABLE IF EXISTS `subscriptions`;
CREATE TABLE IF NOT EXISTS `subscriptions` (
`id` int(11) NOT NULL auto_increment,
`userid` int(11) NOT NULL default '0',
`feedid` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
AUTO_INCREMENT=1 ;

– –––––––––––––––––––


– Table structure for table `users`

DROP TABLE IF EXISTS `users`;
CREATE TABLE IF NOT EXISTS `users` (
`id` int(7) NOT NULL auto_increment,
`username` varchar(30) NOT NULL default '',
`password` varchar(30) NOT NULL default '',
`email` varchar(255) NOT NULL default '',

60
`firstname` varchar(255) NOT NULL default '',
`lastname` varchar(255) NOT NULL default '',
`country` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;

După îndeplinirea tuturor pașilor, instalarea siteului ar trebui să fie completă și acesta
să fie accesibil la adresa http://<ip-ul serverului>/<folderul siteului>/index.php

61
Anexe

Anexa 1 – Cod XML în RSS

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>Realitatea TV – Stiri</title>
<description>News at first site.</description>
<link>http://www.realitatea.net</link>
<lastBuildDate>Thu, 22 May 2008 22:03:02 +0100</lastBuildDate>
<generator>FeedCreator 1.7.2</generator>
<image>
<url>http://www.realitatea.net/images/logo.jpg</url>
<title>Realitatea TV logo</title>
<link>http://www.realitatea.net</link>
<description>News at first site.</description>
</image>
<item>
<title>Secretarul general al OPEC spune că organizația nu
poate face nimic pentru a ieftini petrolul</title>
<link>http://www.realitatea.net/secretarul-general-al-opec-
spune-că-organizația-nu-poate-face-nimic-pentru-a-ieftini-
petrolul_286542.html</link>
<description>Organizația Țărilor Exportatoare de Petrol nu
poate face nimic pentru a
reduce prețul petrolului într-o piață “nebună”, în ciuda impactului
asupra săracilor și a presiunii pentru creșterea producției, a declarat
secretarul general al OPEC, Abdullah al-Badri. &lt;br&gt;&lt;a
href='http://www.realitatea.net/secretarul-general-al-opec-spune-ca-
organizația-nu-poate-face-nimic-pentru-a-ieftini-
petrolul_286542.html'&gt;Cite&amp;#537;te mai
departe…&lt;/a&gt;</description>
<author>Realitatea TV</author>
<category>Economie</category>
<pubDate>Thu, 22 May 2008 18:59:04 +0100</pubDate>
</item>
<item>
<title>Tenis: Monica Niculescu a ajuns în turul trei al
calificărilor la Roland Garros</title>
<link>http://www.realitatea.net/tenis–monica-niculescu-a-
ajuns-in-turul-trei-al-calificarilor-la-roland-
garros_286541.html</link>
<description>În ultimul tur al calificărilor, Niculescu,
cap de serie numărul 2, o va întâlni pe croata Jelena Pandzic.
&lt;br&gt;&lt;a href='http://www.realitatea.net/tenis–monica-
niculescu-a-ajuns-în-turul-trei-al-calificarilor-la-roland-
garros_286541.html'&gt;Cite&amp;#537;te mai
departe…&lt;/a&gt;</description>
<author>Realitatea TV</author>
<category>Sport</category>
<pubDate>Thu, 22 May 2008 18:51:39 +0100</pubDate>
</item>

62
Anexa 2 – Diagrama entitate-asociere

63
Anexa 3 – Pagina principală

64
Anexa 4 – Pagina de categorii

65
Anexa 5 – Pagina de categorie

66
Anexa 6 – Pagina de feed

67
Anexa 7 – Pagina de căutare avansată

68
Anexa 8 – Pagina personală

69
Anexa 9 – Structura bazei de date

70
Anexa 10 – Pagina de înregistrare

Similar Posts