Sunteți pe pagina 1din 23

Capitolul 3.

Dezvoltarea sistemului informatic

CAPITOLUL 3
DEZVOLTAREA SISTEMULUI INFORMATIC
Revista on-line - Student KIOSK

Lucrarea de fata descrie ca parte practica realizarea unei reviste online pentru
studenti Student Kiosk, utilizand instrumentele de dezvoltare si facilitatile puse la
dispozitie de MySQL si PHP.
Informatica si serviciile de Internet fac parte integranta din viata de zi cu zi, iar
statisticile arata ca din punct de vedere profesional, tinerii din ziua de azi arata performante
superioare in domeniul informaticii.
Intrucat serviciile de Internet sunt la dispozitia utilizatorilor, accesarea site-urilor a
devenit extrem de accesibila, majoritatea tinerilor, utilizatori de calculatoare personale, cu
acces la Internet, astfel crearea acestui site a fost gandita a fi o alternativa ce este mai
accesibila si mai utila oricarui tanar, care in zilele noastre intre presa scrisa si cea online,
inclina a alege pe cea electronica fiind accesibila oricarui utilizator, minima cerinta fiind
acces la Internet.

3.1.

Analiza si specificarea cerintelor


Aplicatia este constituita dintr-o baza de date, pentru crearea acesteia s-a folosit

MySQL, baza de date care este implementata pentru stocarea datelor necesare revistei, si
care pune accent pe articolele oferite, pe recomdariile de filme, carti, produse si editoriale
pentru cititorii revistei.
Pentru inceput trebuie sa definim in mod clar obiectivul sau scopul site-ului, adica ce
anume trebuie realizat si cum trebuie sa arate produsul final. Pentru aceasta se analizeaza
mijloacele necesare si ce avem la dispozitie pentru a ne atinge tinta propusa, ce trebuie facut
mai intai si ce sarcini le putem indeplini ulterior.
In acest caz se doreste realziarea unei reviste on-line pentru tineri, pe care se posteaza
diferite articole, se prezinta cateva produse pentru tineri si noutati in materie de film, carti,
etc. acesta fiind domeniul revistei. Se va crea o baza de date unde vor fi stocate toate
informatiile necesare fiecarei sectiuni in parte, site-ul va fi impartit in doua, astfel va exista o
parte vizibila utilizatorului si o parte vizibila administratorului.
25

Capitolul 3. Dezvoltarea sistemului informatic


Dupa ce stabilim care e scopul site-ului trebuie sa vedem care sunt utilizatorii
acestuia. Audienta reprezita publicul tinta pentru care se realizeaza site-ul, in cazul de fata
fiind tineri, studenti si astfel se vor folosi date si noutati in diverse domenii care-i intereseaza
si care le sunt destinate. Interfata site-ului se urmareste a fi cat mai accesibila si placuta
pentru viitori utilizatori.
Site-ul de fata s-a dorit sa aiba un design flexibil si nu fix. Asezarea in pagina pe
doua sau trei coloane reprezinta un design flexibil. Coloana din stanga priveste navigarea,
cea din centru contine mesajele cheie, iar in partea de sus cuprinde un meniu cu toate
sectiunile adresate utilizatorului. Pagina web poate fi extinsa sau restransa in functie de
continutul cerut la un moment dat
Din punctul de vedere al designului, site-ul este alcatuit din tabele cu linii invizibile
in care se insereaza imagini (sigla, imagini-simbol, butoane etc.) si texte, in asa fel incat
aspectul sa fie unitar si sa nu se sesizeze vizual organizarea tabelara.
Pagina principala a acesteia va fi urmatoarea:

Figura 3.1 - Pagina principala a site-ului Student Kiosk

26

Capitolul 3. Dezvoltarea sistemului informatic


Informatia vizibila utilizatorului se modifica din sectiunea de administrare, lucru
facut doar de administatorul revistei, sectiune care nu va fi vizibila utilizatorilor la mometul
in care vor accesa pagina web.
Baza de date a aplicatiei, denumita kiosk, a fost creata cu MySql, si este compusa din
mai multe tabele care vor fi prezentate in cele ce urmeaza.
Practic aplicatia este impartita in doua, si anume:
parte front-side, vizibila utilizatorului, si aceasta pentru ca este vorba despre un
continut dinamic, preluat din baze de date, folosind scripturi php-mysql ce interogheaza
aceste baze de date.
o parte back-side, vizibila administratorului, in care se permite adaugarea, modificarea,
stergerea informatiilor din aceste baze de date si a sistemului de fisiere (imagini) afisate pe
site.
Partea de administrare a site-ului, vizibila doar administratorului

are urmatorul

meniu:

Figura 3.2 Interfata de administrare


Fiecare din aceste optiuni ale partii de administrare are rolul de a permite
administratorului site-ului sa stabileasca ce continut va fi afisat pe site, reprezentand numarul
current al revistei.

27

Capitolul 3. Dezvoltarea sistemului informatic


Aplicatia asigura securitate si confidentialitate, deoarece doar administratorul are
acces la baza de date, cu drepturi de adaugare, modificare sau stergere.

3.2.

Proiectarea bazei de date


In cele ce urmeaza voi prezenta baza de date a aplicatiei, baza de data create in

MySQL - phpMyAdmin, aceasta a fost denumita kiosk, si este compusa din tabelele:
-

k_books

k_categ

k_editorial,

k_filme,

k_ganduri,

k_newsletter,

k_produse.

Figura 3.3. Baza de date kiosk


3.2.1. Tabele
Asa cum se observa in figura 3.3., baza de date kiosk este compusa din mai multe
tabele, fiecare tabela este compusa din mai multe campuri avand si o cheie primara.
In cele ce urmeaza voi prezenta tabelele cele mai importante ale bazei de date:
1. k_books se refera la cartiile care vor aparea afisate in sectiunea CARTI , ca si
recomandari pentru cititorii reviste.
Tabela va avea urmatoarea structura:
28

Capitolul 3. Dezvoltarea sistemului informatic


CREATE TABLE k_books (
id tinyint(3) unsigned NOT NULL auto_increment,
titlu varchar(100) default NULL,
autor varchar(100) default NULL,
editura varchar(100) default NULL,
an int(3) unsigned default '0',
imagine varchar(255) default NULL,
descriere longtext,
KEY id (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;unde vor fi prezentate.
2. k_editorial se refera la editorialele care vor aparea in revista, fiind prezentate pe
site-ul revistei in functie de data la care au fost redactate, tabela are urmatoarea structura:
CREATE TABLE k_editorial (
id tinyint(3) unsigned NOT NULL auto_increment,
titlu varchar(100) default NULL,
continut longtext,
imagine varchar(100) default NULL,
`data` varchar(100) default NULL,
KEY id (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
3. k_categ se refera la categoriile la care se adreseaza o gama de produse, si anume
se vor recomanda produse pentru ea si pentru el. Tabela are urmatoarea structura:
CREATE TABLE k_categ (
idcateg tinyint(3) unsigned NOT NULL auto_increment,
`name` varchar(100) default NULL,
KEY id (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
4. k_produse se refera la gama de produse care sunt recomandate cititorilor
revistei, care vor fi structurate pe cele doua categorii, astfel intre cele doua tabele k_produse
si k_categ exista o relatie directa. Tabela are urmatoarea structura:
CREATE TABLE k_produse (
id int(3) unsigned NOT NULL auto_increment,
idcateg int(3) unsigned default '0',
29

Capitolul 3. Dezvoltarea sistemului informatic


produs varchar(200) default NULL,
pret float default NULL,
descriere longtext,
imagine varchar(100) default NULL,
furnizor varchar(255) NOT NULL default '',
KEY id (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
5. k_filme - se refera la recomandariile de filme pentru cititorii revistei, care vor
putea sa se informeze despre noile aparitii in acest domeniu. Tabela va avea urmatoarea
structura:
CREATE TABLE k_filme (
id tinyint(3) unsigned NOT NULL auto_increment,
titlu varchar(255) default NULL,
descriere longtext,
actori mediumtext,
regizor varchar(100) default NULL,
imagine varchar(100) default NULL,
KEY id (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
6. k_ganduri in sectiunea Ganduri de duminica, vor fi publicate gandurile
cititorilor revistei, tabela va avea urmatoarea structura:
CREATE TABLE k_ganduri (
id tinyint(3) unsigned NOT NULL auto_increment,
titlu varchar(100) default NULL,
continut longtext,
nume varchar(100) default NULL,
localitatea varchar(100) default NULL,
`data` varchar(50) default NULL,
KEY id (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
7. k_newsletter pentru ca se doreste o relatie cat mai stransa cu cititorii, se ofera
posibilitatea inregistratii la revista astfel oricand apar noutatii cititorii fideli vor fi informati.
Tabela va avea urmatoarea structura:
30

Capitolul 3. Dezvoltarea sistemului informatic


CREATE TABLE k_newsletter (
id tinyint(3) unsigned NOT NULL auto_increment,
email varchar(100) default NULL,
KEY id (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
In figura 3.4. este ilustrata o tabela k_books - in care se vad campurile si datele
introduse:

Figura 3.4. Exemplu de tabela cu date introduse de programator.


3.2.2. Relatii intre tabele
Intre tabelele bazei de date exista mai multe relatii, in special intre tabelele k_categ si
k_produse, acestea vor fi illustrate in figura 3.5.
Deoarece in phpMyAdmin unde s-a creat baza de date nu exista posibilitatea de
ilustrare a relatiilor dintre tabele, s-a exportat baza si introdus in Microsoft Acces, unde
exista aceasta posibilitate si a rezultat diagrama de mai jos.

31

Capitolul 3. Dezvoltarea sistemului informatic

Figura 3.5. Relatiile dintre tabelele bazei de date kiosk.

3.2.3. Module de program


Revista on-line Student Kiosk, este o aplicatie destinata tuturor tinerilor, oferind
posibilitatea informarii acestor utilizatori cu privire la noutatiile din domeniul filmelor,
cartiilor, a diferitelor produse cosmetice si nunumai, cat si despre pareriile cititorilor in
sectiunea Ganduri de duminica.
In meniul principal se pot observa sectiunile: Editorial, Cartea de pe noptiera, Pentru
el, Pentru ea, Home Cinema, Abonamente, Ganduri de duminica, Contact, iar in partea
stanga imaginea copertii numarului curent si sectiunea Newsletter.
Informatia vizibila utilizatorului se modifica din sectiunea de administrare, lucru
facut doar de administatorul revistei, sectiune care nu va fi vizibila utilizatorilor la mometul
in care vor accesa pagina web.
Pentru partea de cod php s-a folosit aplicatia Adobe Dreamweaver CS4, iar codul
paginii principale index.php este urmatorul:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Student Kioks -Revista lunara pentru studenti</title>

32

Capitolul 3. Dezvoltarea sistemului informatic


<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="css/styles.css" rel="stylesheet" type="text/css">
</head>
<style>
body {
background-image: url(../images/page_bg.gif);
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
</style>
<body>
<?php
include("admin/kiosk.php");
$check = "select * from k_editorial order by data desc";
$qry = mysql_query($check) or die ("Could not match data because ".mysql_error());
$row = mysql_fetch_array( $qry);
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center">
<table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
<td> <?php include ("header.php");?></td>
</tr>
<tr>
<td bgcolor="#FFFFFF">
<table width="100%" border="0" cellspacing="10"
bordercolor="#e4e0ea">
<tr>
<td width="30%" rowspan="3" scope="col" valign="top">
<?php include("stanga.php");?>
</td>
<td bgcolor="#f9f9f9" class="titlu">&nbsp;</td>
</tr>
<tr>
<td bgcolor="#f9f9f9" class="titlu"><?php echo $row['titlu']; ?></td>
</tr>
<tr>
<td width="70%" bgcolor="#f9f9f9" valign="top"><p class="corp">

33

Capitolul 3. Dezvoltarea sistemului informatic


<img src="k_editorial/<?php echo $row['imagine']?>"
align="left" hspace="6" alt="Editorial" />
<?php echo addBR($row['continut']);?></p>
</td>
</tr>
</table> </td>
</tr>
<tr> <td> <?php include ("footer.php");?> </td> </tr>
</table>
</td>
</tr>
</table>
</body>
</html>

Pentru fiecare sectiune in parte s-a creat o pagina si anume:


- Abonamente, Carti, Cinema, Contact, Detalii_carte, Detalii_film, Ea, El, GAnduri,
Newsletter.
- iar pentru partea de administrare vom avea urmatoarele pagina index.htm.
Practic in cele ce urmeaza mai jos, se prezinta modul in care s-a realizat conexiunea
la baza de date si legaturiile cu celelalte tabele, acestea se gasesc in kiosk.php:
Cod kiosk.php:
<?php
$hostname = "localhost";
$database = "kiosk";
$username = "root";
$password = "";
$nkim = mysql_pconnect($hostname, $username, $password) or
trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database, $nkim) or die ("Could not select database because ".mysql_error());
$nr_carti_pe_pagina=2;
$nr_produse_pe_pagina=3;
$nr_filme_pe_pagina=3;
function schimbData($sir){
$sirnou=explode("-",$sir);
$sirnou=$sirnou[2]."-".$sirnou[1]."-".$sirnou[0];
return $sirnou;
}

34

Capitolul 3. Dezvoltarea sistemului informatic


function addBR($s){
$rez="";
for($i=0;$i<strlen($s);$i++)
if ($s[$i]==chr(13)) $rez.='<br>';//enter
else if ($s[$i]==chr(32) &&$i<strlen($s)-1 && $s[$i+1]==chr(32))
$rez.='&nbsp';//spatiu
else $rez.=$s[$i];
return $rez;
}
function extras($s){
$rez="";
$i=0;
while($i<strlen($s)&&$i<200){
$rez.=$s[$i];
$i++;
}
return $rez;
}
function get_categ(){
$categ_array=array();
$check = "select * from k_categ";
$qry = mysql_query($check) or die ("Could not match data because ".mysql_error());
$num_rows = mysql_num_rows($qry);
for( $j=0; $j<$num_rows; $j++ )
{
$row = mysql_fetch_array( $qry);
$index=$row["id"];
$value=$row["name"];
$categ_array["'$index'"]=$value;
}
return $categ_array;
}
function sendRedirect($url)
{
if (!headers_sent()){
header ('Location: '.$url);
exit;
}
else

35

Capitolul 3. Dezvoltarea sistemului informatic


echo "Iese pe else".$url;
}
?>

3.3.

Implementarea sistemului informatic revista on-line Student


Kiosk
Practic aplicatia revista on-line - Student Kioskeste impartita in doua, si

anume:
parte front-side, vizibila utilizatorului, si aceasta pentru ca este vorba despre un
continut dinamic, preluat din baze de date, folosind scripturi php-mysql ce interogheaza
aceste baze de date. (figura 3.1.)
o parte back-side, vizibila administratorului, in care se permite adaugarea, modificarea,
stergerea informatiilor din aceste baze de date si a sistemului de fisiere (imagini) afisate pe
site.(figura 3.2.)
In cele ce urmeaza se trec in revista fiecare din aceste sectiuni cu o analiza paralela a
celor 2 parti: front- side si back - side.

Sectiunea EDITORIAL
Pentru editorialul care apare pe prima pagina se foloseste din baza de date numita
kiosk - tabela k_editorial, care va avea urmatoarea structura:

Figura 3.6. Tabela k_editorial


Pe site se va afisa ultimul editorial din punct de vedere cronologic evitandu-se
afisarea pe site a altui editorial corespunzator numarului precedent al revistei, astfel campul
data din tabela k_editorial decide care este acesta.
In sectiunea de administrare, pentru adaugarea unui nou editorial, se foloseste
optiunea EDITORIAL din meniul principal al sectiunii de administrare, la selectarea careia

36

Capitolul 3. Dezvoltarea sistemului informatic


exista posibilitatea de adaugare unui nou editorial, de modificare sau de stergere a unui
editorial existent. Pentru adaugarea unui editorial, ecranul de introducere a datelor este:

Figura 3.7. Formular de adaugare a unui nou editorial


Fereastra ce contine calendarul lunii permite o introducere mai usoara a datei pentru
acest editorial. De mentionat ca data nu apare pe site, ci doar stabileste ce editorial va fi
afisat pe site.
Campul imagine din tabela k_ editorial are rolul de a memora numele fisierului ce
contine imaginea atasata editorialului. Folderul in care se afla aceste imagini se numeste k_
editorial.

Sectiunea COPERTA
Ca orice revista, fie si una online aceasta va avea o coperta, care apare pe prima
pagina in partea stanga a ecranului.
Pentru modificarea copertii se foloseste optiunea COPERTA din meniul principal al
sectiunii de administrare. La selectarea acestei optiuni veti obtine urmatorul ecran:

37

Capitolul 3. Dezvoltarea sistemului informatic

Figura 3.8. Formular de modificare coperta


Este vorba de 2 imagini: cea mica, de 150 pixeli latime, vizibila pe site permanent in
partea stanga si cea de detaliu care este afisata intr-o fereastra popup, la un click pe imaginea
mica.

Sectiunea GANDURI DE DUMINCA


Pentru sectiunea GANDURI DE DUMINCA se foloseste din baza de date tabela
k_ganduri, unde vor fi stocate fragmente din scrisorile cititorilor, astfel cititorii revistei
avand posibilitatea de a-si exprima ganduri, pareri si de ce nu de a participa la realizarea
efectiva a revistei.
Tabela are urmatoare structura:

Figura 3.9. Tabela k_ganduri

38

Capitolul 3. Dezvoltarea sistemului informatic


Pentru adaugarea, modificarea sau stergerea fragmentelor din scrisorile cititorilor
administratorul are urmatorul formular:
- pentru adaugarea de noi date

pentru modificarea sau stergerea celor existente

Figura 3.10. Formular de adaugare, modificare sau stergere a unei scrisori


Toate scrisorile introduse in aceasta tabela vor fi vizibile pe site in sectiunea cu
acelasi nume, in ordine invers cronologica asa cum se poate observa in imaginea de mai jos.

39

Capitolul 3. Dezvoltarea sistemului informatic

Figura 3.11. Sectiunea Ganduri de duminica


Sectiunea CARTI
Pentru afisarea cartilor din sectiunea CARTEA DE PE NOPTIERA a site-ului se
foloseste tabela k_books cu structura:

Figura 3.12. Tabele k_books


In sectiunea de administrare se pot vizualiza toate cartile existente in tabela k_books,
se pot modifica oricare din aceste informatii sau se poate sterge toata informatia cu referire
la o carte folosind optiunea CARTI din meniul principal al sectiunii de administrare.

40

Capitolul 3. Dezvoltarea sistemului informatic

Figura 3.13. Formular de administrare a unei carti noi


Corespunzator, pe site, in sectiunea cartea de pe noptiera, vor fi afisate doar acele
carti existente in tabela k_books.
La un click pe butonul Detalii sau pe imaginea copertii se obtine o descriere mai
amanuntita a cartii respective intr-o fereastra noua, fereastra in care si imaginea copertii este
mai mare.
Campul imagine din tabela k_ books are rolul de a memora numele fisierului ce
contine coperta respectivei carti. Folderul in care se afla aceste imagini se numeste
k_books.
Imaginile ce urmeaza ilustreaza modul de vizualizare a acestei sectiuni pe site,
respectiv detaliu pentru o carte.

41

Capitolul 3. Dezvoltarea sistemului informatic

Figura 3.14. Fereastra de prezentare a unei carti


Sectiunea PRODUSE
Gestioneaza produsele din tabela k_produse cu urmatoarea structura:

Figura 3.15. Tabela k_produse


Aceasta tabela impreuna cu tabela k_categ permite memorarea datelor aferente
produselor vizibile in sectiunile PENTRU EL si PENTRU EA.

Astfel, la introducerea unui produs se selecteaza categoria din care face parte acesta
si locul unde va fi afisat pe site (sectiunile PENTRU El respectiv PENTRU EA).

42

Capitolul 3. Dezvoltarea sistemului informatic


Pentru toate produsele se permite modificarea oricarei caracteristici, inclusiv a imaginii
atasate produsului.
Campul imagine din tabela k_produse are rolul de a memora numele fisierului ce
contine poza produsului respectiv. Folderul in care se afla aceste imagini se numeste
k_produse. La adaugarea unui produs se fac validari pentru datele introduse asa cum se
vede in imaginea de mai jos.

Figura 3.16. Formular de introducere a unui nou produs

Imaginile ce urmeaza ilustreaza posibilitatea de a modifica pentru un produs selectat,


oricare din caracteristicile sale si sectiunea PENTRU EA din site.

Figura 3.17. Formular de modificare a produselor

43

Capitolul 3. Dezvoltarea sistemului informatic

Figura 3.18. Sectiunea produse Pentru ea

Sectiunea FILME
Are ca si corespondent pe site componenta HOME CINEMA pentru care mai jos se
poate observa forma de vizualizare, inclusiv detaliul pentru un film.

Figura 3.19. Sectiunea Home Cinema

44

Capitolul 3. Dezvoltarea sistemului informatic

Figura 3.20. Fereastra de prezentare a unui film


Permite modificarea datelor din tabela k_filme cu structura.

Figura 3.21. Tabela k_filme


Campul imagine din tabela k_filme are rolul de a memora numele fisierului ce
contine imaginea atasata. Folderul in care se afla aceste imagini se numeste k_ filme.
Imaginea de mai jos corespunde optiunii FILME din meniul principal al sectiunii de
administrare.
Se pot adauga filme noi, sterge ori modifica orice informatie despre un film existent.

Figura 3.22. Formularul de administrare a unui film

45

Capitolul 3. Dezvoltarea sistemului informatic


Sectiunea NEWSLETTER
Pe site, la rubrica utile, exista posibilitatea abonarii la newsletter-ul revistei asa cum
se poate vedea in imagine.

Figura 3.23. Sectiunea Newsletter


Astfel, la introducerea unei adrese de email valide si selectarea optiunii abonare,
aceasta este introdusa in tabela k_newsletter cu structura.

Figura 3.24. Tabela k_newsletter


Evident, adaugarea se face doar dupa o verificare si daca adresa respectiva se mai
afla in baza de date, atunci utilizatorul va primi un mesaj corespunzator. O verificare
similara se face si pentru operatia de dezabonare.
In sectiunea de administrare, optiunea NEWSLETTER are ca rol trimiterea unui
mesaj catre toti abonatii, catre toate adresele de email din tabela k_newsletter sub forma:

Figura 3.25. Formularul de trimitere a unui newsletter

46

Capitolul 3. Dezvoltarea sistemului informatic


Observatie: Deoarece in folderele k_books, k_editorial, k_filme, k_produse se fac
upload-uri de fisiere prin intermediul sectiunii de administrare pentru imaginile atasate
cartilor, editorialelor, filmelor si respectiv produselor, acestea trebuie sa aiba setat drept de
scriere 777 pe server.

Sectiunea HELP
Se doreste a fi un ghid sumar de utilizare a sectiunii de administrare.
Are rolul de a preciza cum se utilizeaza sectiunea de administrare si care este
legatura intre optiunile din partea de administrare si sectiunile site-ului.

Figura 3.26. Sectiunea Help


Din pagina de administrare a revistei exista si optiunea de revenire la revista, astfel
administarorul are posibilitatea dupa ce a adaugat date noi sau a modificat, respective sters
pe cele existente sa revina la pagina revistei pentru a vizualiza modificarile efectuate.

47

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