Estratto del documento

Di Tommaso De Sica

Il blog

Nella società moderna internet è una realtà molto presente. Sono in molti ad aver accesso a questa risorsa e a sfruttarne le immense potenzialità.

Gli scopi principali per cui viene utilizzato questo mezzo di comunicazione sono essenzialmente due: lo scambio di informazioni e la possibilità di parlare in qualunque momento con chiunque possieda un terminale dotato di accesso alla rete.

I blog sono una delle tante realtà, insieme ai forum, alle chat…, che permette entrambi questi obiettivi.

Vediamo cos’è in dettaglio un blog. Questo è un’interfaccia che permette l’inserimento e la memorizzazione di «discussioni». Tali discussioni in genere possono essere lette da chiunque e commentate da chi possiede un account registrato.

Rispetto ai cugini forum e chat, è quello in cui l’interazione fra gli utenti è minore: infatti solo un particolare tipo di utenti, detti «blogger», possono iniziare nuove discussioni, che fungono da spunto di ragionamento per tutti gli altri che, se lo riterranno necessario, aggiungeranno i loro commenti.

Il blog si configura quindi soprattutto come luogo di riflessione, in cui gli utenti vengono guidati verso certi temi dalle discussioni dei «blogger» e vengono invitati a lasciare le loro idee ed opinioni in merito.

I forum, dando la possibilità a tutti di iniziare nuovi «topic», aumentano l’interattività fra utenti; ma spesso questo porta a spaziare fra un’immensità di argomenti che vengono abitualmente analizzati non profondamente.

Nelle chat l’interattività è massima, ma spesso sono solo posti d’incontro e di svago; solo alcune vengono incentrate su determinati temi e hanno lo svantaggio di non tenere traccia di quanto viene esposto: una volta finita la conversazione lo storico viene cancellato.

Si vede quindi che, seppur questi strumenti appaiano molto simili, in realtà presentano profonde differenze circa il loro utilizzo, la loro struttura e i loro scopi.

I blog vengono utilizzati come mezzo di diffusione di informazione in modo più interattivo della semplice pagina web. Le informazioni diffuse possono essere però le più diverse: da argomenti culturali a quelli di attualità, dalle semplici discussioni sui temi più diversi senza una linea che li unisca a quelle di carattere personale. Molti infatti utilizzano i servizi offerti da alcune compagnie per creare il proprio blog personale inserendo le proprie esperienze, raccontando i fatti avvenuti quel giorno, o mettendo le proprie foto.

L’idea

Lo scopo del nostro lavoro è stato realizzare un prodotto che offrisse a tutti la possibilità di leggere (ed eventualmente di scrivere) delle tesi su particolari argomenti storici. Oltre a ciò avrebbe dovuto offrire la possibilità di scambiarsi commenti in base agli spunti offerti dalle argomentazioni trattate.

In base a quanto detto sopra si capisce che è il blog lo strumento migliore per il nostro obiettivo.

Invece di usare uno dei tanti servizi che permettono di creare blog anche agli utenti meno esperti, abbiamo deciso di provare, grazie alle nostre competenze informatiche, a crearne uno noi partendo da 0.

Il blog è stato interamente costruito da noi, sia per quanto riguarda gli aspetti di programmazione che quelli grafici. In tal modo abbiamo potuto studiare il funzionamento di questo strumento partendo dalle basi, in modo da capire i meccanismi (e le problematiche) che ad un normale utente risultano invisibili.

Il database

Il primo strumento di cui avremo bisogno è sicuramente il database. Dovendo memorizzare grandi quantità di dati di diversa natura, questo strumento risulta indispensabile.

Diamo una breve definizione di database: esso indica un insieme di archivi tra loro collegati, organizzati in modo semplice e regolare. Esso si presenta come un insieme di tabelle relazionali che consentono la completa gestione dei dati (l’inserimento, la ricerca, la cancellazione ed il loro aggiornamento), anche da parte di applicazioni software.

In particolare noi dovremo mantenere in memoria gli utenti e i relativi dati, le discussioni inviate dagli utenti, e i commenti relativi alle discussioni.

Definite queste 3 entità (utente, discussione e commenti), possiamo progettare un diagramma E-R:

Passiamo all’analisi delle singole entità e delle relazioni tra esse.

Come si vede dallo schema, l’entità ‘Utente’ ha un identificativo (ID_Utente), un nickname e una password per poter effettuare il login sul blog e qualche informazione anagrafica (nome, cognome e data di nascita). Infine sono presenti i due attributi ‘avatar’ e ‘blogger’: il primo contiene la stringa del percorso dell’immagine dell’avatar dell’utente; mentre il secondo è un flag che indica se l’utente è un blogger o meno (i livelli degli utenti si analizzeranno in seguito).

Passiamo all’entità ‘Discussione’: anche questa ha un identificativo (ID_Discussione) e altri attributi tipici di una discussione: il titolo, l’eventuale descrizione, il testo (corpo della discussione) e la data di invio.

Infine è presente l’entità ‘Commento’ che possiede soltanto due attributi: l’identificativo (ID_Commento) e il testo.

Passiamo ad analizzare le relazioni tra queste tre entità: risulta esserci un’associazione di tipo ternaria; vediamola nel dettaglio.

Ogni utente può iniziare una o più discussioni. C’è da specificare che può iniziarle solo se il suo campo ‘Blogger’ è ‘Sì’, altrimenti questa operazione non è possibile. Ogni utente può comunque leggere tutte le discussioni.

Le discussioni possono contenere uno o più commenti. Uno o più commenti possono essere scritti da un utente. Tutti gli utenti possono comunque leggere tutti i commenti.

Finita la progettazione del diagramma E-R, si può passare ad uno schema logico.

Tabella: Utenti

Attributo Tipo Chiave NULL Default Extra

ID_utente BIGINT PK NO IDENTITY

nickname VARCHAR(15) NO

password VARCHAR(15) NO

email VARCHAR(30) NO

nome VARCHAR(15) NO

cognome VARCHAR(15) NO

data_di_nascita DATETIME NO

avatar VARCHAR(60) NO ‘img/av0.gif’

blogger CHAR(2) NO

Tabella: Discussioni

Attributo Tipo Chiave NULL Default Extra

ID_discussione BIGINT PK NO IDENTITY

titolo VARCHAR(20) NO

descrizione VARCHAR(50) SI’

testo TEXT NO

data DATETIME NO

ID_utente BIGINT FK NO 2 ON DELETE SET DEFAULT

Tabella: Commenti

Attributo Tipo Chiave NULL Default Extra

ID_commento BIGINT PK NO IDENTITY

testo TEXT NO

ID_discussione BIGINT FK NO

ID_utente BIGINT FK NO 2 ON DELETE SET DEFAULT

Le particolarità che si notano in questo schema rispetto al precedente sono abbastanza ridotte. In primo luogo l’avatar dell’utente ha un valore di default: questo perché al momento della registrazione l’utente non ha avatar, o meglio ha un avatar vuoto.

Potrà in seguito cambiarlo tramite il proprio pannello di controllo. Interessante è il comportamento della chiave esterna dell’utente nelle tabelle «Discussioni» e «Commenti». Infatti se un utente viene cancellato, le chiavi esterne corrispondenti vengono settate sul valore «2», che corrisponde ad un particolare utente, cioè «Utente cancellato» (vedi il seguito).

Infine si può notare che tutti i campi di tutte le tabelle sono obbligatori, fatta eccezione per il campo «Descrizione» in «Discussioni» che è opzionale.

A questo punto siamo passati a scrivere le query che ci permettono di creare tali tabelle.

CREATE TABLE Utente

(

ID_utente BIGINT IDENTITY PRIMARY KEY,

nickname VARCHAR(15) NOT NULL,

password VARCHAR(15) NOT NULL,

email VARCHAR(30) NOT NULL,

nome VARCHAR(15) NOT NULL,

cognome VARCHAR(15) NOT NULL,

data_di_nascita DATETIME NOT NULL,

avatar VARCHAR(60) DEFAULT ‘img/av0.gif’ NOT NULL,

blogger VARCHAR(2) NOT NULL

)

CREATE TABLE Discussione

(

ID_discussione BIGINT IDENTITY PRIMARY KEY,

titolo VARCHAR(20) NOT NULL,

descrizione VARCHAR(50),

testo TEXT NOT NULL,

data DATETIME NOT NULL,

ID_utente BIGINT DEFAULT ‘2’ NOT NULL,

FOREIGN KEY (ID_utente) REFERENCES Utente(ID_utente) ON DELETE SET DEFAULT

)

CREATE TABLE Commento

(

ID_commento BIGINT IDENTITY PRIMARY KEY,

testo TEXT NOT NULL,

ID_utente BIGINT NOT NULL DEFAULT ‘2’,

ID_discussione BIGINT NOT NULL,

FOREIGN KEY (ID_discussione) REFERENCES Discussione(ID_discussione),

FOREIGN KEY (ID_utente) REFERENCES Utente(ID_utente) ON DELETE SET DEFAULT

)

Fatto ciò abbiamo scelto su quali campi fare degli indici. Nella fattispecie abbiamo creato un indice sul nickname dell’utente (nel quale abbiamo anche imposto il vincolo dell’unicità) e sul titolo della discussione; in quanto sono questi due i campi sui quali vengono effettuate maggior ricerche.

CREATE UNIQUE INDEX

indNick

ON Utente (nickname)

CREATE INDEX

indTitolo

ON Discussione(titolo)

Infine abbiamo inserito due righe standard nella tabella Utenti per due utenti particolari: l’amministratore del blog e l’utente cancellato.

Il primo è quello che avrà accesso al pannello di amministrazione degli utenti all’interno del blog, il secondo è l’utente a cui puntano le chiavi esterne in discussioni e commenti quando il relativo utente viene cancellato.

INSERT INTO Utente

(nickname,password,email,nome,cognome,data_di_nascita,avatar,blogger)

VALUES(‘Admin’,’*********’,’admin@mail.it’,’Amministratore’,’Amministratore’,’01/01/1990’,’img/av0.gif’,’Sì’)

INSERT INTO Utente(nickname,password,email,nome,cognome,data_di_nascita,avatar,blogger)

VALUES(‘Cancellato’,’*****’,’cancelled@mail.it’,’Utente’,’Cancellato’,’01/01/1990’,’img/av0.gif’,’No’)

Finito di creare il nostro database siamo passati a progettare lo schema delle pagine web.

La struttura del blog

Il blog è composto di ben 16 pagine web dinamiche. Alcune sono quelle con cui interagiranno direttamente gli utenti altre saranno invece necessarie solo a scopi di gestione del database (inserimento record, controllo nickname e password…).

Andiamo ad analizzare come sono legate tra loro tali pagine e a darne una breve descrizione, le analizzeremo successivamente una per una in dettaglio.

Partiamo dal centro dello schema, come si vede tutto parte dalla pagina «Default.asp», che è anche la homepage del blog. In tale pagina, con un «iframe» è visibile la pagina «Discussioni.asp», nella quale sono visualizzate tutte le discussioni.

Sempre dalla home è possibile visualizzare la pagina «NuovaDiscussione.asp», che presenta un form i cui dati vengono catturati dalla pagina «InserimentoDiscussione.asp» per l’inserimento di una nuova discussione.

Per ogni discussione è possibile vedere la pagina con i relativi commenti («Commenti.asp»); in tale pagina è presente anche un form per gli utenti registrati i cui dati vengono catturati dalla pagina «NuovoCommento.asp» per l’inserimento di un nuovo commento.

A grandi linee queste sono le pagine che costituiscono la struttura base del blog; andiamo ora a vedere quelle che riguardano la gestione utente.

Se un utente non è registrato, può farlo tramite l’apposito modulo presente in «Registrazione.asp», i cui dati verranno elaborati e memorizzati dalla pagina «Confermareg.asp».

Al contrario, se un utente è registrato può fare il login passando dalla pagina «LogIn.asp», il controllo dei dati e l’autenticazione viene effettuata dalla pagina «ConfermaLogIn.asp».

Una volta effettuato l’accesso, può consultare la pagina «PannelloControlloUtente.asp» per la modifica dei propri dati (passando da «CambioDati.asp») oppure per la scelta/modifica dell’avatar («CambioAvatar.asp»).

Se tramite la pagina «LogIn.asp» si autentica l’Admin del blog, esso viene reindirizzato alla pagina «PannelloControlloAdmin.asp». Da qui può modificare i dati degli utenti, modificare il loro avatar («CambioAvatar.asp») o eliminarli («EliminaUtente.asp»).

Infine un utente può effettuare il LogOut passando per la pagina «LogOut.asp».

I livelli di accesso

Prima di andare nel dettaglio ad analizzare le pagine e il loro codice, definiamo una cosa molto importante: i livelli di accesso.

Abbiamo fatto riferimento, nel definirli, alla struttura degli altri blog. Esistono essenzialmente quattro livelli di accesso:

  • Utente non registrato
  • Utente registrato
  • Blogger
  • Blog Administrator

Vediamo nel dettaglio i loro privilegi e le operazioni definite per ognuno di essi.

Utente non registrato

L’utente non registrato è colui che si affaccia al blog, senza essersi iscritto (cioè non ha compilato l’apposito modulo per la registrazione). Essenzialmente i suoi privilegi si limitano alla semplice visualizzazione delle discussioni inviate e dei commenti relativi.

Utente registrato

L’utente registrato può visualizzare anch’esso tutti i contenuti del blog. La registrazione, effettuata attraverso un apposito modulo, permette inoltre di fare il LogIn al blog. Una volta autenticatosi, l’utente può inviare dei propri commenti alle discussioni. Oltre a ciò possiede un proprio pannello di controllo con cui modificare i propri dati, scegliere un avatar…

Blogger

Il blogger è il livello superiore che può avere un utente registrato. Mentre tutti i visitatori possono registrarsi, solo l’amministratore può consentire questo livello di privilegio ad un determinato utente. I blogger sono coloro che contribuiscono attivamente ad ampliare i contenuti del blog, potendo inviare nuove discussioni.

Blogger Administrator

Il blogger administrator è il livello più alto nella scala gerarchica. Egli, che chiameremo per comodità «Admin» dal nickname che utilizza per loggarsi, ha accesso al pannello di amministrazione. Tale interfaccia risulta molto intuitiva e consente di apportare modifiche dirette sul database (cancellazione, aggiornamento record…).

Supponendo infatti che il prodotto possa essere usato anche da persone inesperte è necessario dagli un mezzo per interagire col DB senza che lo maneggino direttamente.

L’Admin, tramite il suo pannello, ha il diretto controllo su tutti gli utenti ed è colui che assegna o revoca i privilegi di «blogger».

Le pagine

L’ultima cosa che dobbiamo analizzare per quanto riguarda l’aspetto informatico, sono le singole pagine e i meccanismi che presentano.

Default.asp

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head>

<title>Default</title>

<link href="Stile.css" rel="stylesheet" type="text/css" />

<!--Ultima modifica: 16/06/2009-->

</head>

<body>

<!--#include file="DBConn.inc"-->

<div class="defDivTitle">

<img src="img/logo.jpg" alt="logo" />

</div>

<div class="defDivUser">

<%

If Session("User")<>"" Then 'Controlla che sia stato effettuato il login

If Session("User")="Admin" Then 'Controlla se è stato effettuato l’accesso tramite l’account Admin

%> <div class="defDivUserInfo">

Benvenuto! Ti sei loggato come amministratore del blog.

</div>

<div class="defDivUserAction">

<a href="PannelloControlloAdmin.asp" target="frameContenuto"><img class="defImgDivUser" alt="Pannello di controllo Admin" src="img/controlPanelAdmin.png"/></a>

<a href="LogOut.asp"><img alt="LogOut" src="img/logout.png" class="defImgDivUser" /></a>

</div>

<br />

<% Else

%> <div class="defDivUserInfo">

Benvenuto/a <%=Session("User")%>

</div>

<div class="defDivUserAction">

<a href="PannelloControlloUtente.asp" target="frameContenuto"><img class="defImgDivUser" alt="Pannello di controllo" src="img/controlPanel.png"/></a>

<a href="LogOut.asp"><img alt="LogOut" src="img/logout.png" class="defImgDivUser" /></a>

</div>

<br />

<% End If

Else

%> <div class="defDivUserInfo">

Non sei Loggato al blog.

</div>

<div class="defDivUserAction">

<a href="Login.asp"><img class="defImgDivUser" alt="LogIn" src="img/login.png"/></a>

<a href="Registrazione.asp" target="frameContenuto"><img alt="Registrati" src="img/registrazione.png" class="defImgDivUser" /></a>

</div>

<br />

<%End If %>

</div>

<div class="defDivContenuto">

<iframe scrolling="auto" src="Discussioni.asp" name="frameContenuto" class="defFrameDiscussioni"></iframe>

</div>

</body>

Anteprima
Vedrai una selezione di 14 pagine su 63
Blog: Le armi della Prima guerra mondiale Pag. 1 Blog: Le armi della Prima guerra mondiale Pag. 2
Anteprima di 14 pagg. su 63.
Scarica il documento per vederlo tutto.
Blog: Le armi della Prima guerra mondiale Pag. 6
Anteprima di 14 pagg. su 63.
Scarica il documento per vederlo tutto.
Blog: Le armi della Prima guerra mondiale Pag. 11
Anteprima di 14 pagg. su 63.
Scarica il documento per vederlo tutto.
Blog: Le armi della Prima guerra mondiale Pag. 16
Anteprima di 14 pagg. su 63.
Scarica il documento per vederlo tutto.
Blog: Le armi della Prima guerra mondiale Pag. 21
Anteprima di 14 pagg. su 63.
Scarica il documento per vederlo tutto.
Blog: Le armi della Prima guerra mondiale Pag. 26
Anteprima di 14 pagg. su 63.
Scarica il documento per vederlo tutto.
Blog: Le armi della Prima guerra mondiale Pag. 31
Anteprima di 14 pagg. su 63.
Scarica il documento per vederlo tutto.
Blog: Le armi della Prima guerra mondiale Pag. 36
Anteprima di 14 pagg. su 63.
Scarica il documento per vederlo tutto.
Blog: Le armi della Prima guerra mondiale Pag. 41
Anteprima di 14 pagg. su 63.
Scarica il documento per vederlo tutto.
Blog: Le armi della Prima guerra mondiale Pag. 46
Anteprima di 14 pagg. su 63.
Scarica il documento per vederlo tutto.
Blog: Le armi della Prima guerra mondiale Pag. 51
Anteprima di 14 pagg. su 63.
Scarica il documento per vederlo tutto.
Blog: Le armi della Prima guerra mondiale Pag. 56
Anteprima di 14 pagg. su 63.
Scarica il documento per vederlo tutto.
Blog: Le armi della Prima guerra mondiale Pag. 61
1 su 63
Sintesi

Tesina - Premio maturità  2009

Titolo: Blog: Le armi della Prima guerra mondiale

Autore: De sica Tommaso

Descrizione: e' stato realizzato per intero un blog: programmazione pagine, interazione col database, gestione utenti, discussioni, commenti, aspetti grafici... tale blog è stato riempito con argomenti di carattere storico: le armi della prima guerra mondiale. tali

Materie trattate: Informatica, Storia

Area: tecnologica

Sommario: Programmazione di pagine web dinamiche mediante linguaggi asp/sql, interazione col database mediante linguaggio SQL, contenuti storici: le armi della Prima grande guerra (equipaggiamenti dei soldati, mitragliatrici, gas letali, carri armati, aviazione).

D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi