Schema di relazione per un progetto di informatica

RELAZIONE TECNICA
GESTIONE CARTE DI CREDITO
a cura di
EMANUELE CESARI
1
INDICE
ARGOMENTO:
PAGINA
1.
Traccia del problema
3
2.
Analisi di massima e spiegazione
4-11
3.
Modello Er
12
4.
Scema Relazionale
13
5.
Manuale d 'uso e conclusione
14
2
TRACCIA DEL PROBLEMA
Carta di credito (Cesari e Dhana)
Si consideri una Banca Dati per gli acquisti con carta di credito che contiene le
seguenti informazioni sui clienti (titolari di carte di credito), estratti conto, dettagli
degli acquisti, prodotti acquistati, luoghi degli acquisti e promozioni.
Dei clienti interessano il codice fiscale, che li identifica, il nome, il reddito, il sesso,
l’anno di nascita, l’indirizzo, il numero e l’anno di scadenza della carta. I clienti
ricevono mensilmente un estratto conto del quale interessano il numero, che lo
identifica, la data, il totale delle spese addebitato e, per ogni acquisto, la data,
l’importo, il luogo (città, provincia e regione), la descrizione e la categoria del
prodotto (supermercato, ristorante, auto, viaggi, varie).
Con l’estratto conto vengono segnalate al cliente diverse promozioni di acquisti
delle quali interessano il codice, che le identifica, la descrizione, il costo, le date di
inizio e fine della promozione. Per ogni promozione inviata ad un cliente interessa la
risposta (sì, no) del cliente.
Presentare entro e non oltre il 28 febbraio 2015: la relazione tecnica, il sito web
professionale, la gestione mySql + Php con inserimento, modifica, visualizzazione e
cancellazione dei dati nelle tabelle realizzate.
Creare le seguenti queries:
elenco dei clienti ai quali sta per scadere la carta di credito
elenco clienti con gli acquisti effettuati
elenco delle promozioni inviate ai clienti
3
ANALISI DI MASSIMA
L' applicazione permette di simulare l'operato online di un istituto di credito
che fornisce servizi di carte di credito.
L'applicazione è sviluppata interamente in html, css per la grafica, le parti di
programmazione sono sviluppate in php e il database viene gestito utilizzando
Mysql.
Il sito è costituito da due parti:
la prima parte simula il front- end ed è puramente a scopo grafico da cui si
puo accedere alla pagina del login
Queste pagine sono realizzate
interamente in html e css per
alcune parti di grafica, queste
pagine simulano la presentazione e
le informazione di un azienda sul
proprio sito; e anche presente una
pagina di contact us che in futuro
potrà essere implementata e resa
funzionante.
Per accedere alla seconda parte del sito quella che simula la pagina di back
office dove l'amministratore del sito può compiere operazioni sulla base di dati
bisogna cliccare sulla pagina Login.
Per effetturare il login bisognera utilizzare le seguenti credenziali
4
Username:admin
password:1234
Questo è lo screen della pagina login con le credenziali inserite, per realizzare
questa pagina mi sono ispirato al classico login in stile google.
Dunque è utilizzato un css opensource preso da internet e un semplice form
html/php inoltre sui campi è presente un controllo che non permette di effettuare il
login se prima non si sono compilati tutti i campi.
Il login è stato gestito con l'utilizzo delle sessioni in php, la pagina di login(figura)
invia username e password ad una pagina di check login dove tramite una query si
controlla che l'username e la password inseriti siano presenti nel database se essi
sono presenti a una variabile di sessione $session_register("autorizzato");
assumera il valore autorizzato e cio permetterà di accedere alle pagine riseravate in
quanto ogni pagina successiva al login verifichera che la sessione sia registrata
tramite questo script:
//codice controllo sessione
5
<?php
session_start();
if (!session_is_registered('autorizzato'))
{
echo "<h1>Area riservata - accesso negato</h1>";
die;
}
?>
se la sessione non sara registrata verrà visualizzato il seguente messaggio di
errore
“AREA RISERVATA -ACCESSO NEGATO”.
Se invece si è effettuato il login correttamente ( dunque la sessione è
registrata) si potra accedere al pannello di controllo dell'amministratore dal
quale si potranno eseguire le query.
6
Questa pagina simula il back office dove si possono compiere le query,
modificare,inserire o eliminare nuovi dati nel database.
Come indicato L'amministratore di questa pagina possiede tutti i privilegi
dunque potrà modificare tutti i dati presenti nella base di dati, e vincoli di
integrità sui dati sono impostati on delete “CASCADE” E on update “CASCADE”.
La pagina è costituita da un menu dal quale si può accedere a tutte le query e i
menu disponibile e dei bottoni che permettono di raggiungere le query
velocemente.
Dal menu clienti si potranno compiere le seguenti operazioni :
• visualizzazione dei dati personali di tutti i clienti
• Inserimento dei dati di nuovi clienti
• Modifica dei dati dei clienti
• Eliminazione dei dati dei clienti
Ovviamente queste pagine presuppongono che sia presente un database nel
quale esista la tabella clienti; queste 4 operazioni sono gestite semplicemente
come query a questo database e sono semplici operazioni di visualizazzione,
inserimento, modifica e cancellazione in sql, di conseguenza non riporterò il
codice.
Ecco uno screen di un esempio di inserimento:
7
(form html passaggio valori tramite il metodo post)
se i valori inseriti saranno corretti il nuovo cliente verrà inserito nella tabella
clienti e verrà visualizzato il messaggio
“registrazione record avvenuta con successo”
Le pagine elimina e modifica agiscono in modo molto simile a questa pagina
solamente che al posto del inserimento abbiamo l'update per la modifica e
Delete per l'eliminazione.
Ecco il codice della query per l'inserimento di un nuovo cliente
(ovviamente per poter eseguire la query bisogna includere il file di
connessione al database tramite l' istruzione include)
// query inserimento
8
include("connessione.php");
//Inizializzo variabili
$codice=$_POST['codice'];
$nome=$_POST['nome'];
$cognome=$_POST['cognome'];
$reddito=$_POST['reddito'];
$telefono=$_POST['telefono'];
$sesso=$_POST['sesso'];
$indirizzo=$_POST['indirizzo'];
$annodinascita=$_POST['annonascita'];
$scadenzacarta=$_POST['scadenza'];
$query="INSERT INTO `my_ilblogdiemanuele`.`clienti` (`codicefiscale`, `nome`,
`cognome`, `reddito`, `sesso`, `annodinascita`, `indirizzo`, `telefono`,
`scadenzacarta`, `Codicepromozione`) VALUES ('$codice', '$nome', '$cognome',
'$reddito', '$sesso', '$annodinascita', '$indirizzo', '$telefono', '$scadenzacarta',
'1')";
$result = mysql_query($query);
if (!$result)
{
echo"I Valori Inseriti non sono Validi in quanto potrevve gia essere
presenti nel nostro database";
?>
<br>
<?
echo"ecco l'errore riscontrato:";
?>
<br>
<?
die("Errore nella query " . mysql_error());
}
else ?>
<h4>registrazione record avvenuta con successo</h4>
<?
mysql_close($conn);
?>
9
il file connessione.php che ho incluso contiene semplicemente le istruzione
per connettersi al database
include("connessione.php");
<?php
//Connessione mysql
$hostname="localhost";
$username="ilblogdiemanuele";
$password="";
$conn=mysql_connect($hostname, $username, $password);
if(!$conn)
die("Errore di connessione a mysql<br>");
//Selezione DataBase
$dbname="my_ilblogdiemanuele";
$db=mysql_select_db($dbname);
if(!$db)
die("Errore di connessione al DataBase<br>");
echo "";
?>
Il sito permette anche di eseguire altre operazioni come visulizzare per ogni
cliente quando scade la sua carta operazione effetuabile tramite il menu
scadenza
carte
10
Le altre operazioni che l'applicazione permette sono:
• visualizzare l'estrattoconto di ogni cliente assieme alla data
• visualizzare gli acquisti effettuati da ogni cliente con la propria carta di
credito, l'importo di questi acquisti, la data, il numero dell estrattoconto
in cui sono contenuti e una breve descrizione.
Il sito permette inoltre di effettuare il logout, che distruggerà la sessione
esistente e rimanderà alla pagina di login
11
MODELLO ER
Il sito si basa su un database che presenta il sequente modello ER
12
SCEMA RELAZIONALE
PROMOZIONI (codice,nome,datainizio,datafine)
CLIENTI(Codicefiscale,nome,cognome,reddito,sesso,annodinascita,indirizzo,tel
efono, scadenza carta,codicepromozione)
FK clienti(codicepromozionie) references promozioni(codice)
ESTRATTOCONTO (Numero,data,importo,codicefiscalecliente)
FK estrattoconto(codicefiscalecliente) references clienti(codicefiscale)
ACQUISTI(codice,importo,data,luogo,descrizione,numeroestrattoconto)
FK acqusiti (numeroestrattoconto)references estrattoconto(numero)
13
MANUALE D'USO
Per utilizzare l'applicativo basta avere un connessione internet e un browser
Ps
il sito è realizzato unicamente a scopo didattico come esercitazione scolastica
14