Progettazione e sviluppo di un applicativo web e della sua base di dati per l'organizzazione di...

13
Progettazione e sviluppo di un applicativo web e della sua base di dati per l’organizzazione di ambienti di lavoro Relatore: Chiar.mo Prof. Maurizio Fermeglia Candidato: Stefano Dudine Università degli Studi di Trieste Dipartimento di Ingegneria e Architettura Tesi di laurea triennale in Ingegneria dell’Informazione Curriculum Informatica

Transcript of Progettazione e sviluppo di un applicativo web e della sua base di dati per l'organizzazione di...

Page 1: Progettazione e sviluppo di un applicativo web e della sua base di dati per l'organizzazione di ambienti di lavoro (slide)

Progettazione e sviluppo di un applicativo web e della sua base di dati per

l’organizzazione di ambienti di lavoro

Relatore:

Chiar.mo Prof.

Maurizio Fermeglia

Candidato:

Stefano Dudine

Università degli Studi di Trieste

Dipartimento di Ingegneria e Architettura

Tesi di laurea triennale in

Ingegneria dell’Informazione

Curriculum Informatica

Page 2: Progettazione e sviluppo di un applicativo web e della sua base di dati per l'organizzazione di ambienti di lavoro (slide)

Ambienti di lavoro

Magazzini

Punti vendita

Banchi di lavoro (fabbriche, officine)

…ma anche

Ripostigli

Scaffali

Armadi

Luoghi qualsiasi da organizzare

Page 3: Progettazione e sviluppo di un applicativo web e della sua base di dati per l'organizzazione di ambienti di lavoro (slide)

Domanda – ditta

« Dove trovo quel particolare tronchese con

l’impugnatura blu per tagliare i cavi più spessi? »

… « Lo tenete nella cassetta degli attrezzi marrone

nel magazzino più piccolo. Ci sono 3 scaffali, la

trovi su quello di destra, in basso vicino al

compressore. » (risposta perfetta)

Page 4: Progettazione e sviluppo di un applicativo web e della sua base di dati per l'organizzazione di ambienti di lavoro (slide)

In realtà…

Problematiche evidenti:

So descrivere bene l’oggetto che cerco? (non bene)

Chi sa rispondermi? (forse qualcuno)

Posso contattarlo ora? (forse no)

Se sì, le indicazioni fornite sono accurate? (forse no)

Page 5: Progettazione e sviluppo di un applicativo web e della sua base di dati per l'organizzazione di ambienti di lavoro (slide)

Scenario tipico

Poco tempo

Tanti oggetti

Pochi ambienti già "familiari"

… e forse

Un computer (meglio tablet o smartphone)

Un accesso a Internet

Page 6: Progettazione e sviluppo di un applicativo web e della sua base di dati per l'organizzazione di ambienti di lavoro (slide)

Idea

Per memorizzare la posizione di alcuni oggetti:

Fotografo l’ambiente

Tocco i punti della foto in cui si trovano

Inserisco alcune loro caratteristiche

Per cercare un oggetto:

Specifico qualche caratteristica

Vedo la foto e il punto in cui si trova

Page 7: Progettazione e sviluppo di un applicativo web e della sua base di dati per l'organizzazione di ambienti di lavoro (slide)

Obbiettivi della tesi

Si parte da zero:

Si progetta e si realizza un database ad hoc per l’applicazione web

Si realizza un prototipo dell’applicazione che permetta di cercare un oggetto memorizzato

Page 8: Progettazione e sviluppo di un applicativo web e della sua base di dati per l'organizzazione di ambienti di lavoro (slide)

Come è stato fatto

Realizzazione database

MS SQL Server (SQL Management Studio)

Accesso ai dati

ADO.NET (C#)

Realizzazione prototipo

HTML5

CSS

JavaScript (jQuery)

Page 9: Progettazione e sviluppo di un applicativo web e della sua base di dati per l'organizzazione di ambienti di lavoro (slide)

Schema ER ristrutturato

ULTIMO

INSERIMENTO

ULTIMO

INSERIMENTO

INSERIMENTO

PASSATO

INSERIMENTO

PASSATO

OGGETTOOGGETTO VALOREVALORE

PARAMETROPARAMETRO

USERUSERUSER

FOTOGRAFIAFOTOGRAFIA

AMBIENTEAMBIENTE

COMPANYCOMPANYCOMPANY

0 - I

0 - U

I - U

U - U

PROPRIETÀ

U - F

AGGIUNTA

U - F

I - F

LOCALIZ

PROPRIETÀ

F - C

COMPL

DEFINIZIONE

PART - OF

1, 1

1, 11, 1

0, 1

0, N

0, N

0, N

1, N

1, N

0, N1, 1

0, N

1, 1

0, N 1, 1

0, N

1, 1

0, N

0, N

0, N

0, 1

1, 1

0, 1

0, N

1, 1

Data X Y

Data X Y

InsPassatoID

OggettoID Nome Colore

ClasseUtilitàMateriale

Descrizione

UtenteID

Nome

Val Num

DataUltimaOperazione

DataNascita

DataRegistrazione

Email

Cognome

Sesso

AmbienteID

Nome

Descrizione

FotografiaID

GeotagDescrizione

URL

DataCaricamento

NumMaxValori

Descrizione

Nome

Num

Admin

Nome

Descrizione

DataCreazione

CompanyID

Aperta

0, 1

Page 10: Progettazione e sviluppo di un applicativo web e della sua base di dati per l'organizzazione di ambienti di lavoro (slide)

Schema logico

tblAmbiente

PK ambienteID

nome descrizione

tblCompany

PK companyID

nome datacreazione descrizione aperta

tblFotografia

PK fotografiaID

dataCaricamento geotag descrizione urlFK1 ambienteIDFK2 userIDFK3 companyID

tblValore

PK numParametroPK numValorePK,FK1 oggettoID

valore

tblOggetto

PK oggettoID

nome colore materiale utilità descrizione

tblUltimoInserimento

PK,FK1 oggettoID

data x yFK2 fotografiaIDFK3 userID

tblInserimentoPassato

PK insPassatoID

data x yFK1 oggettoIDFK2 fotografiaIDFK3 userID

tblUser

PK userID

nome cognome dataNascita sesso email dataRegistrazione dataUltimaOperazione

tblParametro

PK numParametroPK,FK1 companyID

nome numMaxValori descrizione

tblPartOf

PK,FK1 userIDPK,FK2 companyID

admin

Page 11: Progettazione e sviluppo di un applicativo web e della sua base di dati per l'organizzazione di ambienti di lavoro (slide)

trgDeleteUsertrgDeleteUser

trgByeAdmintrgByeAdmin

trgDeletePhototrgDeletePhoto

trgObjRemovedtrgObjRemoved

trgObjMovedtrgObjMoved

trgParamValuetrgParamValue

trgAdminInstrgAdminIns

trgHasPhototrgHasPhoto

trgURLtrgURL

trgDeleteParamtrgDeleteParam

Triggering graph

Page 12: Progettazione e sviluppo di un applicativo web e della sua base di dati per l'organizzazione di ambienti di lavoro (slide)

Demo

Page 13: Progettazione e sviluppo di un applicativo web e della sua base di dati per l'organizzazione di ambienti di lavoro (slide)

1 function processRequest() {

2 $.post("GetObj.aspx", "user=" + userID + "&" + $("#mainForm").serialize(),

3 function (data, status, jqXHR) {

4 console.log(data);

5 objects = data;

6 $("div#response > img#loading").remove();

7 if (data.length)

8 viewResponse();

9 else {

10 $("div#response").append(imgNotFound);

11 }

12 });

13 }

14

15 function viewResponse() {

16 $("div#response > table").replaceWith($("<table></table>"));

17 var table = $("div#response > table");

18 for (var n = 0; n < objects.length; n++) {

19 var tr = $('<tr data-rowNumber="' + n + '"><td><img src="'

20 + objects[n].picture.imagePath + 'small.jpg" />'

21 + '</td><td>' + generateDescription(n) + '</td></tr>');

22 tr.click(zoomImage);

23 table.append(tr);

24 }

25 }

Request - Response