• Non ci sono risultati.

Uivei deg

N/A
N/A
Protected

Academic year: 2021

Condividi "Uivei deg"

Copied!
51
0
0

Testo completo

(1)

CorsodiLaureainIngeneriaInformati a

tesi dilaurea

Analisi e progettazione di un

sistema di gestione delle presenze

Relatore: MassimoRumor

Laureando: Davide Zannirato

(2)
(3)
(4)
(5)

Questa tesi rappresenta la relazione di ne tiro inio, il ui s opo nale è la

progettazione e lo sviluppo di una web appli ation on funzioni di rilevazione

presenzeegestionedelpersonalediun'azienda,imparandoadutilizzaregli

stru-menti ne essari, ome linguaggidiprogrammazioneeframework,sotto laguida

deltutor aziendale.

Al giorno d'oggi software on funzioni di questotipo sonoutilizzati sempre

in piùrealtà lavorative, on bene i quanti abili subito ome la riduzione del

tempoimpiegatoperlatimbraturaeunamiglioregestionedeidati,ottimizzando

i ompiti della segreteria, spe ie per la totalizzazione delle ore di lavoro e la

preparazione degli stipendi.

Questi miglioramenti sono dovuti all'eliminazione del supporto arta eo: i

dipendenti non devono più segnare on penna orari di ingresso o us ita e la

segreterianon deve sobbar arsidi ontiperri avare ilquantitativonetto diore

lavorative,tutto vieneautomatizzato.

L'attivitàsvoltasidivideindueparti,laprimaèrappresentatadaunostudio

di fattibilità del progetto, dove vengono analizzati i requisiti ra olti a seguito

di olloqui onil ommittentee individuatele prin ipalifunzioni ri hieste.

Inoltre tramite un'analisi del mer ato viene ri er ato software in grado di

soddisfaretali aratteristi he,iprodottigiàesistentiperòsonotroppo omplessi

rispettoallerealine essitàeperadattarli sarebberone essaridegliinterventidi

personalizzazione a pagamento.

Pergarantiremaggiore onformitàalleri hiestedel lientesioptaquindiper

losviluppo ad-ho dell'appli azione,integrandolesolefunzionalitàri hiesteper

evitare onfusioneduranteil suoutilizzo.

La se onda parte dell'attività svolta on erne la realizzazione del software,

iniziata onildelineare onpiùpre isioneirequisitiattraversoglis hemidei asi

d'usodell'appli ativoe onlaprogettazionedelmodellodatiadattoal ontesto.

Su essivamentevengonos eltiglistrumentidautilizzareperla

programma-zione,des rivendone levarie aratteristi he, e piani ate leattività dasvolgere

perraggiungere il prodottonale.

Inne nella fase di sviluppo viene ostruita l'appli azione vera e propria,

(6)
(7)

Sommario V

1 Studio difattibilità 1

1.1 Azienda ospitante. . . 1

1.2 Obiettivi. . . 1

1.3 Analisi deiRequisiti . . . 2

1.4 Analisi delmer ato . . . 4

1.4.1 SoluzioniProprietarie . . . 4

1.4.2 SoluzioniFOSS . . . 7

1.4.3 Con lusioni . . . 9

2 Realizzazione 11 2.1 Progettazionedidettaglio on approfondimentodei requisiti . . . 11

2.1.1 Casid'uso . . . 11 2.1.2 Modello dati . . . 15 2.2 Strumentiutilizzati . . . 15 2.2.1 PHP 5.3 . . . 18 2.2.2 Symfony2.0. . . 18 2.2.3 Do trine . . . 21 2.2.4 AdminBundle . . . 21 2.2.5 MySQL 5.5 . . . 21 2.2.6 jQuery . . . 22 2.2.7 GIT . . . 22

2.3 Sviluppo delsoftware. . . 23

2.3.1 Preparazione piattaformaLAMP . . . 23

2.3.2 CreazioneDatabase . . . 23

2.3.3 Sviluppo interfa iadiFront-end . . . 24

2.3.4 Sezione diLogin . . . 25

2.3.5 Integrazione della dashboarddiAdminBundle . . . 27

2.3.6 GenerazionedelCartellino . . . 30

(8)

Bibliograa 36

Elen o delle tabelle 38

Elen o delle gure 40

(9)

Studio di fattibilità

1.1 Azienda ospitante

3DGISsrlèunasoftwarehouse onsediaRovigoeaPadovanellequalioperano

giovaniIngegneriInformati idell'UniversitàdiPadova.

Si tratta di una so ietà giovane, ma ostruita su un'esperienza pluriennale

nel ampodella progettazionee dello sviluppo disistemiinformativiterritoriali

e in generale di soluzioni nell'area ITC e GeoITC, rivolte soprattutto ad enti

pubbli i he hanno bisogno di sostegno per il mantenimento e gestione didati

territoriali.

Vengono oerte soluzioni per visualizzare e gestire le reti fognarie,

idri- he, stradali e dell'illuminazione pubbli a, dal punto di vista te ni o ed

e o-nomi o, softwareperlavisualizzazione tridimensionale deidati geogra i eper

l'interrogazionee renderizzazionedidatabase topogra i.

In generale però viene trattato qualsiasi tipo di software, on possibilità di

sviluppo sia in ambiente Open Sour e sia su piattaforme ommer iali, in base

alle esigenzerilevateaseguito di olloqui on il liente.

1.2 Obiettivi

Lo s opo del tiro inio verte sull'analisi, progettazione e sviluppo di una web

appli ation ommissionatadaun'aziendadipi ole/mediedimensionierogatri e

diservizi, hetramite olloqui haspe i atodei requisiti dasoddisfare.

Sipro ederàinizialmente onunostudiodifattibilità,pervalutareseè

possi-bilea quistareeutilizzareunprodottogiàesistentesulmer atooseèpreferibile

svilupparlo ah-ho .

In seguito verrà progettato e sviluppato un prototipo funzionante

dell'ap-pli azione, s egliendo gli strumenti di programmazioneadatti ed integrando le

(10)

raggiun-1.3 Analisi dei Requisiti

Aseguitodi olloquieettuati onil ommittentedelsoftware,sonostatideniti

dei requisiti he il prodotto naledovràsoddisfare.

Requisiti funzionali

Rappresentano le aratteristi he delleoperazioni eseguibili tramite

l'appli azio-ne.

Interfa ia difront-end Da utilizzare in monitor tou h-s reen ome hios o

sso per la timbratura, azione he deve essere rapida, per far fronte ad

eventuali ode ausateda oraridilavoro omuniaidipendenti.

Gra amente deve essereminimale, on tastierinonumeri o per

l'identi- azionedell'utentee unorologio on orario orrente.

Questas hermatadev'essereraggiungibile daogni omputer onnessoalla

lan aziendale, in questo modo i dipendenti, terminato l'orario di lavoro,

possono timbrare l'us itadirettamentedalla loro postazione.

Area personale A essibiledaogni omputer ollegatoallareteinterna

dell'a-zienda tramite autenti azione on username e password, modi abili dal

possessoreinognimomentoattraversol'areapersonaleein asodi

dimen-ti anzal'utentesirivolgerà alla segreteriaperlamodi a.

Inquestasezionepossonoessereinvo atelefunzioniallequalil'utente

on-nesso ha a esso,a se onda delsuoruolo.

Gli amministratori hanno lapossibilitàdi a edere a tutti idati presenti

e di modi arli, inoltre possono reare nuovi utenti e assegnare loro un

determinato prolo, rearenuovi ruoliaziendali o nuove tipologie di

tim-bratura.

I normali utenti d'altro anto hanno a esso solo alla visualizzazione dei

propri dati,senza lapossibilitàdimodi arli.

Cartellino Funzionalitàri hiamabiledall'areapersonale,vienegeneratoun

rias-sunto delletimbrature diun utenteinundeterminato periodotemporale,

on il formatodella tabella 1.1.

NomeUtente Giorno IN OUT IN OUT

20/06/2011 07:55 12:03 13:00 17:08

21/06/2011 08:00 12:01

22/06/2011 08:03 13:11 17:04

Tabella1.1: EsempiodiCartellino

(11)

gior- ellavuota in asodiman anzae inquel asosolo l'amministrazionepuò

aggiungerlo.

L'ar o temporale analizzato nel artellino può essere s elto tra 

Settima-nale,Mensile oppurePersonalizzato.

La segreteria per ovvi motivi legati al al olo delle ore lavorative degli

stipendi può ri hiedere artellini di qualsiasi utente, mentre i dipendenti

possono solo generarnedipropri.

Esportazione Per ogni artellino visualizzato dev'essere integrata la

possibi-lità di salvarlo in lo ale in un le CSV, on le stesse impostazioni di

formattazionedella tabella 1.1già analizzata.

Requisiti non funzionali

Ovveroivin olie le aratteristi he diutilizzo he ilprodotto deve soddisfare.

Software È ri hiesta una web appli ation a essibile tramite la rete interna

di un'azienda di pi ole/medie dimensioni per gestire le timbrature dei

dipendentie fa ilitarele mansionidella segreteria.

Perilmantenimentodeidatideveessereprogettatoundatabase apposito.

Usabilità L'appli azione deveavereinterfa iaintuitivaedifa ile

omprensio-ne an he perimeno avvezzi alla te nologia, l'utilizzodeve essere velo e e

lefunzioni invo abili on po hie sempli i omandi.

S alabilità Ilsoftwaredeveessere sviluppato on strumenti e metodologie he

garantis ano una futura aggiunta di funzionalità o operazioni sui dati, a

tale s opovienera omandato l'utilizzodisoftwareOpen-Sour e.

E ienza ed e a ia Lefunzioni implementatedevonoaveretempidi

rispo-stabrevi, soddisfando leri hieste dell'utilizzatore on irisultati adeguati.

Si urezza Idati ondenziali, omelepassword,devonoessereprotetti,inoltre

ogni utente può a edere solo ai dati e alle funzioni abilitate per il suo

prolo.

Utenti Hannounruolo internoall'azienda hene identi a iprivilegi.

Inizialmentesonori hiestiiproliUtente e Amministratore,manulla

vietaaggiuntefuture, ase onda delleesigenzeinterne.

Timbrature Ognunaappartieneadunsingoloutenteedeve ontenere

informa-zionisudataeoradi reazione. Sidistinguono2tipiprin ipali: Ingresso

(12)

1.4 Analisi del mer ato

La maggior partedei prodotti esistenti sulmer ato sonodegli Human

Resour- es Management System (HRMS), ovvero dei software multi-funzione per la

gestione del personale ( omprese timbrature e mansioni), delle ommissioni e

della gestione delle retribuzioni, di seguito vengono analizzati solo i prin ipali

prodotti, siaa livello nazionale he internazionale.

1.4.1 Soluzioni Proprietarie

Ovvero quei software he sono sviluppati da aziende private e rilas iati a terzi

on restrizioni spe i ate nella li enza, riguardanti l'utilizzo, la modi a e la

distribuzione delprodotto.

Solitamenteilprezzovariaa se ondadellefunzionalitàpresenti,infatti

l'ap-pli azione di base è espandibile on l'a quisto di moduli he orono features

aggiuntive.

La ditta sviluppatri e inoltre garantis e assistenza in aso di problemi e

spesso ladisponibilitàadeettuare personalizzazionio adattamenti.

OrangeHRM Live - OrangeHRM in .

ProdottoSaaS(SoftwareasaServi es), ioèl'appli azionevienerilas iataeresa

disponibiledalproduttore tramiteinternetdirettamentesulbrowserweb,senza

il bisogno dimantenerein azienda un'infrastrutturaserver, sistemidi ba kupo

te ni i addetti.

Non essendo ne essaria al una installazione o ongurazione in lo ale, il

servizio vieneresodisponibileintempibrevissimi.

Il softwareè stato sviluppatoinPHP ene essitadiDBMS ditipo MySQL.

L'interfa ia è sempli e e intuitiva, on la possibilità di generare dei

tota-lizzatori esportabili in formati PDF o CSV, inoltre sono disponibili numerosi

modulida integrarenell'appli azione, perfar fronteadogni esigenzaaziendale.

Imoduli interessantiperquanto riguardairequisiti sono:

ˆ Adminmodule: vengonoaggiuntefunzioni utiliperl'amministrazione,

o-me la gestione degli utenti, le loro informazioni, le loro mansioni, orari e

altro, on possibilitàdiinviarenoti he.

ˆ Personal information module: per inserire informazioni sulle apa ità e

onos enze del personale, le lingue parlate, le spe ializzazioni, oltre alle

informazioni sulsalario.

ˆ Employee Self Servi e: garantis elapossibilitàditimbratura diingressie

(13)

ˆ Reports module: utile per la generazione di un vasto numero di reports

se ondo diversi riteri.

ˆ Timeandattendan e module: perautomatizzareiltra iamentodelle

pre-senze del personale e organizzare meglio il usso lavorativo, ridu endo

errorie perditeditempo.

Figura1.1: Vistadell'interfa iadiOrangeHRM

SmartSuite Business Edition - Bioenable Te hnologies

Webappli ationsviluppatainPHP,installabilesiainunaIntranet aziendalesia

inserverweb.

LetimbraturevengonomemorizzateinDBMSditipoMySQL, onpossibilità

diimportarleedesportarle,inoltrequestaversionedelsoftwaresupportadiversi

strumentihardwaredia quisizione,oerti dall'aziendaproduttri e stessa.

In asodine essitàèpossibilea quistaredegliinterventidipersonalizzazione

del software a se onda delle esigenze e il supporto è garantito in diversi modi,

ome forum,email, hate telefono.

Si possono denire piùproliutentee relativiprivilegi, on lapossibilitàdi

ontrollarelepresenzee l'orariodilavorotramite gra i e s hemi esportabili.

La gestione degli stipendi vienesempli ata notevolmente on al oli

auto-mati isulleinformazionisalarialidiognidipendenteesulleoredilavoro,inoltre

vengonopiani atii ompiti lavorativiassegnati.

É possibile poi monitorare la situazioneaziendale attraverso lagenerazione

dipiùdi50 reports ongurabilie personalizzabili.

Tulip - Bloomte h s.n. .

SoftwareprodottodaunadittadiConegliano(TV)adottatodapiùdi250

azien-de di ogni settore e dimensione, per far fronte alla gestione non solo delle

(14)
(15)

Tulipè ompatibile onidatabaseOra le,Mi rosoftA essoMi rosoftSQL

Server, le timbrature possono essere rilevate on numerosi sistemi, ome quelli

oerti dalla ditta DBL di Udine: odi e a barre, banda magneti a,

transpon-der in radiofrequenza, impronta biometri a, foto istantanea da foto amera e

ri onos imento delvolto.

Tutte le funzioni di Tulip sono personalizzabili, ome le informazioni del

personale, gli orari di lavoro, le regole per gestire le pause e le varie tolleranze

diorario, leferie,ipermessie moltoaltro.

Sipossono impostaredeitotalizzatori,peril al olodiorari odibustepaga,

artellini personalizzati, iltutto pervelo izzarele mansionidella segreteria.

Vengono inoltre gestite le missioni e letrasferte delpersonale, on la

possi-bilità diinserimento di giusti ativi e ogni totalizzatore o artellinopuò essere

esportato indiversi formati.

Non tutte le funzionalità sopra itate però sono integrate nativamente

nel-l'appli ativo, bensì sono a quistabili ome moduli da integrare, ome 

Rileva-zione tempi ommesse per piani are le ommesse partendo dalle sole

timbra-ture, Controllo a essi utile per impostare le regole e gli orari d'a esso del

personale, Risorse umane per ontrollare e gestire tutto il personale e inne

TulipWeb perfar a edereidipendenti autorizzatialle azioniditimbratura e

ontrollodirettamentetramite browserwebda qualsiasi omputer onnessoalla

rete aziendale.

1.4.2 Soluzioni FOSS

A ronimodiFreeandOpenSour eSoftware,iprodotti onquestotipodi

li en-zeintegranoi on ettidisoftwareliberoediOpen-Sour e,ovveroleappli azioni

possono essere utilizzate gratuitamente e il loro odi e sorgente è disponibile a

hiunquepermodi heo personalizzazioni.

Tuttavia per intervenire nel software è ne essario del personale all'interno

dell'azienda on onos enzee apa itàadatte,altrimentibisognaadareillavoro

ad unaditta esterna, oni osti annessi.

Moltospessononèpresenteunado umentazioneadeguata,ilprodottoevolve

grazie ad una ommunity di utilizzatori he eventualmente può fornire aiuto

tramite forum,mentre l'assistenzau iale èa pagamento.

OrangeHRM - OrangeHRM in .

SoluzioneOpen-Sour eleaderinternazionaleperlagestionedelpersonaleper

im-presedipi oleomediedimensioni,ilprogrammaès ari abileliberamente

men-tre il supporto, i orsi di formazione, le personalizzazioni e i moduli aggiuntivi

( he sonogli stessidella versione Live)sono apagamento.

Si tratta della soluzione liberamente s ari abile dell'omonimo software già

(16)
(17)

alla versione a pagamento, ome l'esportazione di reso onti in formati CSV o

PDF.

SmartSuite Community Edition - Bioenable Te hnologies

La versioneFOSSdi SmartSuite vieneprivata della ompatibilità on gli

stru-menti di mar atura di tipo biometri o o on arte di prossimità e del

suppor-to esteso, las iando omunque la possibilità di ri evere aiuto dalla ommunity

tramite ilforum.

Perquanto on erneilrestolefunzionisonolemedesime,inparti olarmodo

è possibile eseguire la prolazione degli utenti e la generazione di totalizzatori

esportabili.

1.4.3 Con lusioni

Il mer ato è orido di appli ativi di gestione del personale, ma non essendo

soluzioni reateopersonalizzatead-ho implementanounsurplusdifunzionalità

non ri hieste, he osta olano pertanto un eventuale utilizzo quotidiano degli

stessi,spe ie dapersone menovotate all'utilizzodella te nologia.

Inoltre nessun appli ativo ore un'interfa ia per monitor tou h-s reen per

latimbratura,inquestosenso bisognerebbea quistareinterventi esternidi

per-sonalizzazionedelsoftware, ostrumentiterzidira oltadellemar ature.

Viste le esigenze e le dimensioni medio/pi ole della so ietà erogatri e di

servizi he ha ommissionato l'appli ativo, si de ide di s artare le soluzioni a

pagamento,a ausadei ostidili enza edipersonalizzazione.

Infattiperadempierealle ri hiestedel ommittenteène essariol'a quistodi

diversi moduli,inquanto molte funzionalitànonsono presentinell'appli azione

dibase, fa endosalire proporzionalmenteilprezzo nale.

Le soluzioni Open Sour e sono interessanti, ma an he loro dotate di molte

featuresnonri hiestedairequisiti,l'esportazione diles nonsempreè presente,

il herendene essarialaspesasiadimoduliaggiuntivi he dipersonalizzazioni.

Vienede isoquindidiproseguire onlosviluppodiunappli ativoad-ho ,per

meglio rispondere alle esigenzee alle funzionalitàri hieste,senza averefunzioni

non ne essarie he probabilmentenon verranno mai utilizzate, inquesto modo

(18)

Figura 1.4: Confronto degli appli ativianalizzatisullefunzionalitàri hiestedai

(19)

Realizzazione

2.1 Progettazione di dettaglio on approfondimento

dei requisiti

2.1.1 Casi d'uso

Comeillustrato nella gura2.1,il sistemainnanzituttodeve garantire

un'inter-fa ia atta alla ra olta delle timbrature senza restrizioni di utenza, in

se on-do luogo deve essere raggiungibile un'area ristretta, tramite login, nella

qua-le si distinguono le diverse funzionalità disponibili per l'utente sempli e o per

l'amministratore.

(20)

Interfa ia diFront-end

Ovvero una pagina web adatta ad essere visualizzata in monitor tou h-s reen

ssi on l'uni a funzionedira ogliere letimbrature degli utentiinentrata ein

us ita.

Sarà omposta da un tastierino numeri o di dimensioni ragionevoli, un

di-splay dove visualizzare il odi e he si sta inserendo, un tasto per eliminare

l'ultimo arattere eitastiper onfermareletimbrature,inoltresaràpresenteun

orologio digitale omeris ontrodell'ora attuale.

Almomento dellatimbraturailsoftwaredovrà ontrollareneldatabasedegli

utentiregistratilapresenzadel odi einserito,in asoaermativoverrà

stampa-to as hermounmessaggiodiavvenutamar aturaperl'utente,in aso ontrario

una noti a dierrore.

Dalmomento he questapaginawebdovràrimanere ssainun hios o,non

dovranno esser i possibilitàdireindirizzamento o diapertura dinuove nestre,

al ontrario bisogna garantire un'altavelo ità ditimbratura.

Login

L'a esso per le aree ristrette avverrà tramite username e password, s elte in

base alle preferenze dell'utente, on il vin olo dell'username di tipo numeri o

pergarantirne ladigitazioneattraverso l'interfa ia tou h-s reendifront-end.

Unavoltaeettuatoe onfermatol'a essoseguiràlaprolazionedell'utente,

ovverol'assegnazionedeiprivilegigarantitiperla ategoriadiappartenenzadel

soggetto.

Idueruoliprin ipalisonoUtenteeAmministratore,nelprimosipossono

individuare idipendenti sempli i dell'azienda,lase onda ategoria inve eè più

adatta alla dirigenza on allegate funzioni di ontrollo, oppurealla segreteria.

Area personale

Saràa essibile dagli utentisempli i he hannoeettuato illogin,inquesta

pa-ginapotrannori hiamarelafunzioneperlagenerazionedel artellinopersonale.

Inquestomodoverràoertalapossibilitàdi ontrollarelepropriepresenzein

unperiodotemporaleas eltae onunpulsanteappositosaràpossibileesportare

i dati in un le CSV, ovvero in foglio di al olo elettroni o, utilizzabile on

programmi omeMi rosoft O eEx eloLibreO e Cal .

Innel'utentepotràmodi areleproprie redenzialidia esso, ioè

userna-meepassword,eterminatalasessionesipotràdis onnetteretramite ilpulsante

(21)
(22)

Sezione per gli amministratori

Se ad eettuare l'a esso sarà una persona on i privilegi di amministratore,

saranno disponibili nuovefunzionalitàoltreaquellegiàpresentiperutenti

sem-pli i, infattigliamministratorine essitanodiavereil ontrollo ompletodeidati

presenti per adempiere alle proprie mansioni, ome ad esempio il al olo delle

buste paga nel asodella segreteria.

Oltre al artellino personale verrà oerta la possibilità di ri hiedere e di

esportareinCSVan he letimbrature diqualsiasi utentepresenteneldatabase,

quindiprimadis egliereilperiodotemporale diriferimentosidovràselezionare

da una listaildipendenteda ontrollare.

Inoltre tramite un'apposità interfa ia sarà possibile eettuare operazioni

CRUDsuogniinformazionepresenteneldatabase, ome adesempiomodi are

unutente,ri er areunadeterminatatimbratura,oppureaggiungerenuoviproli

diprivilegi.

(23)

2.1.2 Modello dati

Come già dis usso, l'appli ativo dovrà interfa iarsi on un database reato

appositamenteperar hiviare idatiutili.

Analizzando irequisiti sui dati vengono identi ate 4 entità da gestire, he

verranno hiamate: event, user, type erole.

Sullo s hemaevent,ognievento,ovveroognitimbratura,verràgestito

singo-larmente, fa endolo orrispondere aduna solaentry.

L'alternativa sarebbe stata la reazione di righe formate da oppie

ingres-so/us ita,maè si uramentepiùfunzionalees alabilemantenereidati atomi i,

hehanno piùpossibilitàdiutilizzoinaggiuntefunzionalifuturerispettoadati

 omposti, piùdi ilida manipolare.

Gli attributi di event sono time, di tipo DateTime, utile per salvare il

timestamp relativo all'istante di timbratura e i ampi user_id e type_id,

ioè le hiavi esterne he puntanoall'utentee alla tipologiadimar atura, ome

suggeris onole ardinalità (1,1) nellos hemaER digura2.4.

Nella tabella user verrà gestito tutto il personale, dal dipendente normale

all'amministratore, on i ampi name e surname peril nome e ognomedel

soggetto, username peril odi enumeri opersonaleutilizzato infasedilogin

e mar atura, password e salt, dove risiedono rispettivamente la password

perl'a esso riptatae lastringaperde rittarla einnerole_id perla hiave

esternadelruolo assegnatoalsoggetto.

Le rimanentientitàrole etype ontengonolalistarispettivamentedeiproli

utente e delletipologiedi timbratura assegnabili, ognuna on il ampo name

doveinserire ilrelativo nome.

2.2 Strumenti utilizzati

Nella s elta dei prodotti impiegati per lo sviluppo della web appli ation si è

tenuto onto di aratteristi he ome:

ˆ Tipologia FOSS: programmiOpenSour eil uiutilizzoèpossibilesenza

ostidili enzae hesono supportatidauna numerosa ommunity.

ˆ Adabilità: software aggiornatie diusi,il uiutilizzoèben rodato.

ˆ Supporto informativo: viene garantita la presenza di do umentazione

adeguata.

La web appli ation verrà sviluppata su piattaforma LAMP, a ronimo di

Linux-Apa he-MySQL-PHP,perindi arerispettivamentesistemaoperativo,

web-server, DBMS e linguaggio di s riptingutilizzati, inoltre verrà sfruttato

(24)

Entità Des rizione Attributi Identi atore

Event Timbrature eettuate id, id( ontatore)

da ogniutenteregistrato time,

user_id,

type_id

User Utenti abilitatialla timbratura id, id( ontatore)

username, name, surname, role_id, password, salt

Role Proli he possono essere id, id( ontatore)

assegnati agliutenti name

Type Tipiditimbrature eettuabili id, id( ontatore)

name

Tabella 2.1: Dizionariodelleentità

(25)
(26)

L'utilizzodiframeworkèindispensabilesoprattuttoperprogettidiuna erta

dimensione, infatti il programmatore evita la ris rittura di odi e per funzioni

usatefrequentemente, on entrandosisullalogi adibasedell'appli azione,senza

perditeditempo.

Non è ritenutone essario l'a quisto di ostose li enze di DBMS proprietari

ome Ora le, verrà utilizzato MySQL, uno strumento Open Sour e adabile,

performanteesempli edautilizzare healgiornod'oggia ompagnalamaggior

parte delleweb appli ationsviluppate.

2.2.1 PHP 5.3

PHP:HypertextPrepro essor èil linguaggio dis riptingOpenSour e

server-side pere ellenzaideatodal daneseRasmus Lerdorfnel1994.

É lostrumento prin ipaleperlosvilupppo diweb appli ation o pagineweb

dinami he, infatti si integra perfettamente on il odi e HTML, generandolo

dinami amentedallato servereinviandolo al lient.

Ladinami itàdell'outputsibasasu ondizioniimpostatedalprogrammatore,

ad esempio su informazioni del database o sull'input dell'utente, produ endo

odi e HTMLinuenzatodall'elaborazione diquestidati.

I suoi utilizzi però sono moltepli i, ad esempio è possibile reare s ripting

di righe di omando da usare senza al un server o browser, oppure per reare

appli azioni desktop on interfa ia gra a.

Features he hanno reso PHP lostrumento di lavoro ideale e hanno

ontri-buito alla sua diusione sono la ompatibilità on la maggior parte dei DBMS

esistenti, dei sistemi operativi, dei web-server, la do umentazione ben fatta e

sempre aggiornatae lenumeroseAPIesistenti.

Dal lato prati o l'utilizzo di PHP è sempli e, la sintassi infatti deriva dal

linguaggio C, ome JAVA e C++, inoltre è possibile utilizzare un appro io

alla programmazionesia di tipo OOP, ovvero orientato agli oggetti, sia ditipo

pro edurale, o volendoan he unmisto diquestidue.

2.2.2 Symfony 2.0

Esistono moltiframeworkperPHP, omeZend,Symfony,CakePHP,Code

Igni-ter e Yii, ognuno on aratteristi he diverse,perquesto progettovienes elto il

nuovo Symfony2.0[1℄, sviluppato da Fabien Poten ier e dotato dili enza MIT:

si tratta quindi diun prodotto Open Sour e, on un'ottimado umentazione e

una vasta ommunitypronta aforniresupporto.

Al ontrariodeglialtri,Symfonysipuòdenireoperanteadunlivellodi

astra-zione piùelevato,orientatopiùallasempli azionedelleoperazioniCRUD

( rea-te, read, update, delete) grazie agli strumenti integrati, garantendo un velo e

ari amento dellepagine.

(27)

terfa ia ai dati tramite le funzioni fornite dal model, molto spesso al ne di

a edere aldatabase, inne larisposta vienevisualizzata dall'utenteattraverso

view.

MVCquindiseparanettamenteiltemplategra o,l'interfa ia,dalla logi a

operativadifondo edaimetodidia essoaidati,assi urandonel'indipendenza

re ipro a, fondamentale perquanto on ernemodi he oaggiuntefuture.

QuestalosoaèperfettamenteintegratainSymfony,le uiparti

fondamen-tali sono:

ˆ Bundle: Dire tory he rappresenta una o più funzionalità ben pre ise,

ontenente odi e, impostazioni e stili ne essari. Inoltre è ondivisibile e

utilizzabileinqualsiasiprogettosivoglia,garantendolas alabilitàri hiesta

dairequisiti.

ˆ Routing: File s ritto in XML, PHP o YAML ontenente le

istruzio-ni riguardanti l'instradamento di una ri hiesta dell'utente, ovvero quale

ontroller eseguiresel'URL orrispondead una ertalabel.

ˆ Controller: Alsuo interno vengono denite delle A tions, ovvero

fun-zioniPHP atteagestiredelleRequest dell'utente,inbasealrouting,e he

ritornano delleResponse, spesso rappresentate da render di nuove pagine

on irisultati.

ˆ Template: File dove viene denita la struttura di una pagina, vengono

renderizzati tramite il ontroller e ontengono un misto di odi e HTML

eTWIG,untemplateengineperPHP sviluppatodallostessoinventoredi

Symfony, onlos opodidiminuirelaverbositàdel odi eutilealrendering,

perrenderlo più on isoesempli e.

Ri apitolando, e o la logi a Symfony: Un utente ri hiede un URL, la

ri- hiesta viene ra olta dal front ontroller di Symfony he tramite il kernel del

framework veri a se è presente quel per orso nel le di routing, dove è an he

indi atoil ontroller dainvo are.

Il ontroller eseguito risiederà all'interno di un bundle dell'appli azione ed

eettuerà le operazioni perle quali è stato reato, terminando on la

renderiz-zazionedel template diuna nuova pagina, eventualmente ontenente irisultati

o altro.

Questo funzionamento appli ato al software in via di sviluppo è illustrato

nell'immagine2.6.

Symfony2 integra una onsole (a essibile attraverso il terminale di linux)

molto utile per automatizzare ed evitare passaggi ri orrenti, ome la reazione

di bundle, database e s hemi, e impartire altri omandi ome la pulitura della

(28)

Figura2.6: Patterndifunzionamentodelframeworkperrisponderealleri hieste

(29)

2.2.3 Do trine

É una libreria integrata nativamente in Symfony on funzione di Obje t

Rela-tional Mapper (ORM)[2℄ per PHP, ovvero vengono reati oggetti di 

ollega-mento aldatabase, onpossibilitàdifarpersistereoggettiinmodotrasparente,

direttamentedal odi e PHPusando iparadigmidella programmazioneOOP.

Inoltre integra la funzione di Database Abstra tion Layer (DBAL), ovvero

mette in omuni azione un'appli azione qualsiasi ai database più diusi, ome

MySQL,Ora le,PostgreSQL,e ...

PerinterrogareildatabaseèpossibileutilizzaresiaillinguaggioSQL lassi o,

sia ilDo trineQuery Language(DQL), unlinguaggio orientatoagli oggetti he

sempli ae snellis eil odi esenza andareadin idere sullaessibilità.

2.2.4 AdminBundle

Bundle sviluppatoda Thomas Rabaix, su essoredelfamoso Admin Generator

dalle similifunzioni ma ompatibile on laprimaversionediSymfony.

GrazieallefunzionalitàdiAdminBundleèpossibilesviluppare onsempli ità

evelo itàun'interfa iadiba k-end,adattainspe ialmodoagliamministratori,

vieneinfattioertalapossibilitàdieseguireoperazioni CRUDsuidati.

Viene reatanell'appli azioneunasezione hiamataDashboard,nellaquale

vengono visualizzati gli s hemi presentinel database, on possibilità di

aggiun-gere,modi are,eliminaree ri er aredati,oppureordinarliase onda

dell'attri-buto.

2.2.5 MySQL 5.5

Si tratta del più diuso Relational database management system (RDBMS)

Opensour eutilizzatosoprattuttoinpiattaformeLAMP

(Linux-Apa he-MySQL-PHP), rilas iato su li enza GNU GPL, s ritto in C e C++ e eduto da Sun

Mi rosystema Ora leinvia denitiva il27 Gennaio2010.

Le aratteristi he he hanno de retato il suo su esso sono la ompatibilità

onprati amentetuttiisistemioperativi,lafa ilitàdiutilizzoelanaturaFOSS

dell'appli ativo,rendendopossibilerisparminotevoliditempoedenarononsolo

aisingolisviluppatori,maan hearealtàdialtolivello, omeWikipedia,Google,

Youtube,Yahoo! etantissime altre, he devono gestireingentiquantitàdidati.

Spessovieneutilizzatoin oppia on phpMyAdmin, un'appli azioneweb on

funzionediMySQLmanager,ovveroattaall'amministrazionedidatabase,

trami-teinterfa ia gra a, on possibilitàdi eseguirequery emodi he direttamente

agli s hemi.

PhpMyAdmin verrà utilizzato an he nel presente progetto, soprattutto on

s opi di ontrolloe veri a della orrettaimpostazionedella basedidati.

(30)

ma sonodisponibili tantissimi altri, on proe ontro diversi a se onda deltipo

didati ontenuti.

2.2.6 jQuery

Libreria difunzioni JavaS ript sviluppatada John Resig nel2006 on l'intento

direndere il odi e piùsinteti o, senzailbisogno dito aregli oggettinatividi

JavaS ript, aumentandola ompatibilità on altrelibrerie.

JQuery ore una vasta gamma di funzionalità, ome la manipolazione dei

CSS e degli elementi HTML, gli eetti gra i e i omodimetodi per eettuare

hiamate AJAX ross-browser.

Grazieallasua ompatibilitàealsuopossibileutilizzointuttiiprogetti,alla

sua gestionedelleestensioni e allasintassisinteti aed e iente, questalibreria

si è diusavelo emente esi è reata attorno alteam disviluppo unanumerosa

ommunity hemette adisposizioneplugin e supporto.

Di parti olare interesse sono lefeatures messe a disposizione da jQueryUI,

una libreria integrata nel framework e adatta perla realizzazione di interfa e

utentefunzionalie dall'esteti apia evole.

Sono infatti presenti diversi eetti gra i aggiuntivi, dei omodi widget

o-me alendario, nestre modali e navigazione a s hede e la gestione di al une

interazioni omplesse, ome l'ordinamento e il drag & drop di oggetti, il tutto

integrabileinmaniera sempli ee onpo he righe di odi e.

2.2.7 GIT

Software di ontrollo della versione, reato da Linus Torvalds e di tipo Open

Sour e on li enza GPL, pensato per agevolare lo sviluppo in un ambiente

di-stribuito, dove ognunone essitadiessere a onos enza delleultimemodi he o

diaggiornarsi sullostatoraggiunto inun ertoprogetto.

L'utilitàprin ipaleèlastori izzazionedei ambiamenti heavvengonoinvia

di sviluppo di ogni do umento, dal odi e sorgentedi un appli ativo, alkernel

diun sistemaoperativo.

Esistepoilapossibilitàdisdoppiareunalinea disviluppo,me anismo

hia-mato Bran hing, e di proseguire on lavorazioni separate dei due rami, on

l'eventualitàdiunirleinfuturotramite Merging.

Ciò hepiùlodierenziadaglialtristrumentidi ontrollorevisioneèilfatto

he atturaistantaneediinteri alberididire torydileinve e hedisingolile,

rendendolo piùadattoa progettidiuna ertadimensione.

Lo sviluppo dell'appli ativo saràaan ato dall'utilizzo diGIT per

stori iz-zare i ambiamenti, in aso dine essitàverranno reati nuovi bran h, neiquali

testare eventuali alternative funzionali o gra he, il tutto on la possibilità di

(31)

2.3 Sviluppo del software

Losviluppoinizierà onl'installazioneela ongurazionedelsoftwarene essario

e verrà reato il databaseseguendo il modello dativistonel paragrafo2.1.2.

Sipro ederàpoi onla reazionedell'interfa iadifront-endperlepostazioni

tou h-s reen, on il relativo layout e la funzione di reazione delle timbrature

orredata on i ontrolli ne essari.

Verrà poi sviluppata la sezione di login per l'area personale e il form per

l'a esso, integrandolasi urezza ne essariaperlaseparazionedeidiversi proli

diprivilegi.

Inne verrannoinseritetutte lefunzioni ri hiestedairequisiti, omela

gene-razionedel artellino el'esportazionediquest'ultimo informatoCSV,testando

divolta involtairisultati ottenuti.

2.3.1 Preparazione piattaforma LAMP

La distribuzione diLinuxs eltaperlosviluppo è Ubuntu 10.04 LTS.

Su essivamentesipro edeprima onl'installazionedelwebserverApa he2,

deldatabaseserverMySQL,diPHP5 edellelibreriediquestiultimiperApa he2,

dando per assunto he nel sistema sia già installato un Java Development Kit

(JDK).

Dopo aver apportato le ne essarie ongurazioni, vengono preparati altri

strumenti heverrannoutilizzati omephpMyAdmin edE lipse PHPHelios,un

ambientedisviluppo integrato(IDE) onsigliato perprogrammare inPHP.

In seguito viene ongurato Symfony2, per il suo funzionamento infatti è

ri hiesto qual he omponente aggiuntivo e delle impostazioni spe i he, ome

suggerito dallapagina di ontrolloinstallazione.

L'integrazione di AdminBundle al suo interno è fa ile e velo e e dopo aver

veri atoil orrettofunzionamento diogni omponentesièprontiperlo

svilup-po.

2.3.2 Creazione Database

Per prima osa o orre reare il bundle per il progetto tramite il omando

init:bundle direttamenteda onsole.

Come già a ennato, tramite Do trine ORM è possibile gestire le entry del

database omedeiverieproprioggetti,le ui lassientitàrisiedononella artella

Entity delprogetto.

Le lassientitàsonodellesempli i lassiPHP, onvariabili herappresentano

gli attributidello s hema e ommenti dove vengono indi ate le aratteristi he,

ome il tipo di valore salvato (Integer, DateTime, String...) e altro, il tutto

(32)

Non è tutto, Symfony può auto-generare queste lassi on un sempli e

o-mando da onsole, a partire da le on estensione .orm.yml, s ritti in YAML,

quindi moltomenoverbosi.

Altrafeatures hevienesfruttata èla gestionedella si urezza se ondo

Sym-fony, onguratanellese urity.ymlnelqualebisognadeniredoverisiedonogli

utenti onrelativepasswordeiruoliutiliperl'a esso(adesempioinquale

s he-madeldatabase)egliindirizziprivati,non raggiungibilida hiunqueattraverso

il browser.

Per automatizzare il ontrollo dell'a esso tramite framework le lassi

ri-guardanti gli utenti e i ruoli devono implementare le interfa e UserInterfa e e

RoleInterfa e fornitedaSymfony2.

Sipro edequindi onla reazionedeile.orm.yml herappresentanoleentità

ne essarie, in seguito tramite il omando da onsole do trine:generate:entities

vengono reatele lassi ommentate.

Coni omandido trine:database: reate edo trine:s hema: reate vengono

ge-nerati rispettivamente il database, he avrà nome e tipologia deniti nel ledi

ongurazione, egli s hemi apartire dalle lassientità.

Inquestomodoildatabaseèprontoall'utilizzosenzaavers ritto unarigadi

odi e SQL e può già esserepopolato,in asodi sviluppio ambiamenti futuri

basta modi are i le YAML e ripetere i omandi da onsole per appli are le

modi he,risparmiando moltotempo.

2.3.3 Sviluppo interfa ia di Front-end

Perquanto on ernelapagina web ssa utileper letimbrature, viene

imposta-to inizialmente il layout, on i bottoni numeri i, il tasto Can ella, Entrata

e Us ita, tutto orredato da fogli di stile relativi, per adattarla meglio alla

visualizzazione e alla digitazionesu monitortou hs reen.

Utilizzando odi eJavaS riptsiaggiunge intestaalla paginauno s ript he

visualizza un orologiodigitale.

Quando viene premuto il pulsante relativo all'entrata o all'us ita, viene

ef-fettuata una ri hiesta POST on parametri il odi e digitato e la tipologia del

pulsanteazionato(IN o OUT).

La ri hiestaviene gestita da un metodo a tion del ontroller, he si o upa

dia edereal databasee ontrollare hel'username siavalido ( er andolonella

tabella user e ampo username).

In aso di man ata orrispondenza viene visualizzato un avviso di errore

nella s hermata di front-end, in aso di mat h inve e viene reato un nuovo

event, ovvero una timbratura on idati passati e impostando il ampo time

altimestamp orrente,su essivamentevienestampatounris ontrodiavvenuta

timbratura on ilnome dell'utente.

L'aggiunta diuna nuova entrynel database sieettua attraversouna lasse

(33)

uno s hema oppure ottenere degli arraydi elementi giàpresenti, i ui attributi

sonoa essibilitramite imetodigetter/setter.

Per mantenere l'interfa ia di front-end pulita, ogni die i se ondi vengono

eliminati tuttiimessaggipresentiedeventuali odi i pendentineldisplay.

Figura2.7: Interfa iadifront-end permonitor tou h-s reen

2.3.4 Sezione di Login

É ostituita da un form nel qualeinserire username e password, in aso di

a - esso segue il reindirizzamento all'area personale, qui vienesfruttato il layer di

si urezzadiSymfony2: lapaginadiloginè visualizzabiledatutti,mentrel'area

personale solodaunutenteloggatoe,ase ondadelruolo,diversefunzioni sono

invo abili.

Non o orre s rivere altro odi e,sono direttamente lefunzioni diSymfony

a preo uparsi di ontrollarela orrettezza delle redenziali (dal distributore

diutentiimpostato)e adassegnare ilprolo adatto perl'utente onnesso.

Nelledi ongurazionedellasi urezzavieneimpostataan helaroute

(34)

Figura 2.8: Interfa ia di front-end on messaggi di avvenuta timbratura e di

(35)

gestitainautomati odalframework),mentreilse ondoindirizzal'utenteinuna

nuova pagina,nella qualemodi arele proprie redenzilidia esso.

Quest'ultima funzionalitàvienegestita on una nuova a tion del ontroller,

nella quale viene reato il form per l'inserimento dei nuovi valori, he prima

di essere salvati vengono sottoposti ad al uni ontrolli, ad esempio se sono già

utilizzati daqual un'altro.

Se non i sonoproblemi da segnalare vengono aggiornati ivalori e il nuovo

oggetto èpoifattopersisteretramite imetodiopportuniperrendere eettive le

modi he,noti andoas hermoun messaggiodi onferma.

Figura2.9: Sezione dilogin perl'autenti azione e l'autorizzazione

2.3.5 Integrazione della dashboard di AdminBundle

Per iniziare viene aggiunto un link all'area personale, visualizzabile solo dagli

amministratori, he indirizza alla dashboard, ovvero l'interfa ia he onsente

l'interazione on leinformazionidel database.

AdminBundle[3℄pergarantirelefunzioniCRUDtramiteladashboard

ne es-sita dial uni omponentiaggiuntiviperognis hema presente:

ˆ Un ontroller heestendela lasseCRUDController,nelqualesipossono

ridenireleazionidiAdminBundleeseguibilisullos hemain

onsiderazio-ne, ome la reazione,modi ao eliminazione.

Nella presente appli azione ad esempio, per quanto on erne la tabella

user,sonostate riprogettate leazioni diedit e  reate, pergarantire la

orretta odi a della password utilizzando il salt dell'utente, impostato

infasedi reazione.

ˆ Una lasse he estendeAdmin, nella qualesonopresenti 3 variabili

pro-te ted: $list, nella quale vanno deniti gli attributi dello s hema da

vi-sualizzarenella tabella della dashboard, $form,perindi are qualipossono

essere modi atie $lter perimpostarei ampi he possono essere

sfrut-tati pereettuare ri er he.

(36)

eseguono un task globale, reati per far fronte a spe i he funzionalità

e ari ati al momento dell'inizializzazione del framework, in questo aso

servonopergarantireil orretto ari amentodeglis heminelladashboard.

Inseguito,indirizzandoilbrowserall'URLdelladashboard,saràvisualizzata

l'interfa iaperl'amministrazione, ompostada una vistadelletabelle presenti

nel database, he sono esplorabili e modi abili ome nelle gure 2.10, 2.11 e

2.12.

Figura2.10: Dashboardperamministratori ontabelle onsultabiliemodi abili

Figura 2.11: Esempio di tabella utenti per amministratori, on funzioni di

(37)
(38)

2.3.6 Generazione del Cartellino

Il artellinoèessenzialmente ompostodadueparti: iltitoloeidativeriepropri

divisipergiorno.

Il titolo è formato da una stringa he identi a il soggetto (ad esempio

Nome_Cognome_Username), una he indi a la data e una serie variabile di

olonne IN eOUTnellequali vengonoinseritigli orari sepresenti.

Inizialmentevieneinvo atoil metodoperla ostruzionedella parte deidati

enelrelativoalgoritmovengono onteggiatele oppiedi olonneIN/OUT

ne es-sarie neltitolo, a se onda del numero massimo dientrate e us iteinun singolo

giorno.

Inbaseaquestoparametrovienegeneratoiltitolo hevienesu essivamente

unito on idatiinuna stringauni a.

Selapersona hehaeettuatol'a essoèunutentesenzaprivilegiallorapuò

s eglieredirettamenteilperiodotemporaleper ontrollareleproprietimbrature,

altrimentiseèamministratorehalapossibilitàdi ontrollaretuttigliutenti, he

permaggiore hiarezza vengonovisualizzati ome una lista.

La lista degli utenti è ottenuta interrogando il database tramite

EntityMa-nager, ri hiedendo tutteleentrydella tabellaUsereinserendolenellayoutdella

pagina tramite unasempli e tabella HTML.

Per ogniriga della tabella, quindiperogniutente,si aggiungono inoltre tre

pulsanti, duedeiqualiperperioditemporalipredeniti(settimanalee mensile),

heunavoltapremutiri hiamanol'algoritmodi reazionedel artellinopassando

ome parametri i valori DateTime della ne e dell'inizio dell'analisi, ovvero il

timestamp orrentee quest'ultimomeno unperiodo ditempo(sette giornio un

mese), graziealle funzioni PHP peroggettiditipoDateTime e DateInterval.

L'ultimopulsanteintegralas eltapersonalizzatadelperiododitempo,

sfrut-tando lefunzionalitàoerteda JQuery UI, omedialog e datepi ker, il primoè

utilizzato perfar omparirea s hermo unanestramobile ontenentedue

text-box he on un li k ri hiamano datepi ker, fa endo omparire un alendario,

onledovuterestrizioni,nelqualeselezionareledatediinizioedineapia ere,

il risultatoè visibile nell'immagine2.13.

Ri apitolando,sedalPannelloPersonalevieneri hiestalafunzione artellino,

vengonoprima ontrollatiipermessidell'utenteri hiedenteevienerenderizzata

o lalista ontuttigli utenti on allegates eltetemporaliseamministratore

op-pure solo le s elte temporalipersonali, al momento della onferma del periodo

vieneeettuataunari hiestaPOSTgestitadaun ontroller heestraei

parame-tri start, end e user e liutilizza asua volta per estrarre letimbrature dal

database e passarle omeparametro arrayperl'algoritmodigenerazione

artel-lino, ri evendo inrispostada esso unle testuale formattatoperessereinserito

inuna tabella HTML on irisultati.

L'algoritmodigenerazioneeformattazionedel artellinoanalizzaun

(39)

ˆ Ladatadellatimbratura nonè ambiatarispettoall'ultimoelemento

ispe-zionato,non o orreiniziareuna nuova riga,lamar aturapuò essere:

 Ingresso avvenuto dopo un altro ingresso: Errato, vienelas iata una

asella vuotaperil ampoOUTdella timbratura pre edente.

 Ingresso avvenuto dopo un'us ita: Giusto, vieneinseritosubito

l'ora-rio.

 Us itaavvenuta dopouningresso: Giusto,vieneinseritosubito

l'ora-rio.

 Us ita avvenuta dopo un'altra us ita: Errato, vienelas iata una

a-sellavuota peril ampo INdella presentetimbratura.

ˆ Ladatadellatimbraturaè ambiatarispettoallapre edente,vieneiniziata

unanuovariga,saltatala elladelnomeutentees rittalanuovadata. La

mar atura puòessere:

 Ingresso: Giusto,vieneinseritosubito l'orario.

 Us ita: Errato, un giorno non può iniziare on una us ita, viene

las iata una asellavuota peril ampoINdella presentetimbratura.

Terminatal'analisisiri evelastringa hefunge da orpodell'elementotable

nella pagina HTML, ovvero il tbody, pre eduto dall'intestazione on i titoli,

thead,ottenutadaun altro metodo s ritto ad-ho he a se ondadell'utentee

delnumero di oppie IN/OUTlagenera.

Per on luderevengonounitequesteduepartiepassate omeparametroper

larenderizzazionediunanuovapaginadeirisultati,nellaqualevienevisualizzata

latabella, ome ingura2.14.

2.3.7 Esportazione in CSV

Per ogni artellino visualizzato viene aggiunto un link (nel template relativo

alla visualizzazionedeirisultati) ollegato allaroute heri hiamalafunzione di

esportazione nelformatoCSV.

Questa voltavienes eltoil passaggiodeiparametritramite metodo GET,

quindi direttamente nella URL, fa endo sempre i dovuti ontrolli sui permessi

dell'utenteri hiedente.

Il funzionamento dibase èlostesso della generazionedel artellino,non

ap-penavienepremutoilpulsantediesportazionelari hiestaGETvieneanalizzata

dal ontroller he estrae iparametri, interroga il database e l'array dirisultati

ottenutoloutilizza omeparametro peril metodo digenerazione delleCSV.

L'algoritmo è il medesimodella generazione del artellino, on la sola

die-renza della formattazione della stringa, non più atag per latabella HTML ma

(40)

Figura 2.13: Come viene selezionato l'utente e la data per la generazione del

artellino

(41)

Vengonopoiinseriteleistruzioniperreindirizzareil browsereallegareil le

appena reato, onsentendo ilsalvataggioinlo ale.

(42)
(43)

Con lusioni

L'appli ativo reato soddisfa tuttii requisiti, il suosviluppo ad-ho ha fatto sì

he inpo o tempo sia stata reata una web appli ation su misura e on tuttii

presuppostidimodularitàes alabilitàperimplementazionifuture, graziean he

all'utilizzodisolistrumentiOpenSour eeallastrutturaabundledelframework

Symfony2.0.

L'interfa ia nale è hiara e pulita, on po hipulsanti perle funzionalità,

lequalipossono essereri hiamateinbrevetempoe on po hi li k.

Gli amministratori hanno a disposizione una sezione apposita he ome

ri- hiestoore un ontrollo ompleto suidati,e i artellini generabilirispettanoil

formatodis usso neirequisiti dettatidal ommittente.

Isempli iutentipotrannosempre ontrollareilorodatidalproprio omputer

e generaredeireso onti, nella più ompleta trasparenza.

L'implementazione del nuovo sistema di timbratura velo izza e ottimizza

tutteleazioniadesso ollegate,dallasempli emar atura diingresso eus itaai

al oliperadempiereallemansionidellasegreteria,infattigrazieall'eliminazione

del supporto arta eo vengono ridotti gli errori, velo izzati tutti i pro essi e

salvaguardatetutteleinformazioniinmodomiglioreesi uro,graziealdatabase

apposito.

Gli sviluppi futuri potrebbero riguardare lagenerazione automati adi altri

modulialtrimenti arta ei, omel'inserimentodimissionidilavoroo trasfertee

lari hiestadiferie opermessi.

Oppure gestire le rimanenti ferie di ogni utente, le ore di straordinari, di

permessi, dimalattiao dimaternitàe il al olo delleorenette earrotondate di

lavoro, on l'aggiunta delletolleranzediorarioa ettabili.

Inoltre potrebbe essereinteressantelapossibilitàditimbrare on dispositivi

di prossimità, ome i transponder RFID, diminuendo ulteriormente i tempi di

(44)
(45)

[1℄ Symfony 2.0 the book. Online available

http://symfony. om/do / urrent/book/index.html.

[2℄ Do trine 2.1 referen e do umentation. Online available

http://www.do trine-proje t.org/do s/orm/2.1/en/.

[3℄ Adminbundle do umentation. Online available

http://rabaix.net/AdminBundle/html/index.html.

[4℄ C. Ltd., Ubuntu server guide. Online available

https://help.ubuntu. om/10.04/serverguide/C/index.html.

[5℄ Orangehrm. Online availablehttp://www.orangehrm. om/.

[6℄ Smartsuite - bioenable te hnologies. Online available

http://smartsuite.bioenablete h. om/.

[7℄ Tulip-bloomte h.Onlineavailable

http://www.bloomte h.it/introduzione-tulip.html.

[8℄ Phpdo umentation. Onlineavailablehttp://www.php.net/manual/en/.

[9℄ Mysql 5.6 do umentation. Online available

http://dev.mysql. om/do /refman/5.6/en/index.html.

[10℄ jquery do umentation. Online available

(46)
(47)

1.1 EsempiodiCartellino . . . 2

(48)
(49)

1.1 OrangeHRMs reenshot . . . 5

1.2 SmartSuites reenshot . . . 6

1.3 TulipWeb s reenshot. . . 8

1.4 Confronto deisoftwaresullefunzioni oerte . . . 10

2.1 Casid'uso . . . 11

2.2 Casid'uso pergliutenti . . . 13

2.3 Casid'uso pergliamministratori . . . 14

2.4 S hemaER . . . 16

2.5 S hemaLogi o . . . 17

2.6 Flusso operativo diSymfony2.0 . . . 20

2.7 Interfa iadifront-end . . . 25

2.8 Messaggi nell'interfa iadifront-end. . . 26

2.9 Sezione diLogin . . . 27

2.10 Dashboardperamministratori . . . 28

2.11 Tabella utenti peramministratori . . . 28

2.12 Creazionetimbratura peramministratori . . . 29

2.13 Selezione datapergenerareil artellino . . . 32

2.14 Cartellino generato . . . 32

(50)
(51)

Un grazie parti olare al relatore, il Prof. Massimo Rumor, perla disponibilità

on essasia durantelelezioni he nelperiododistesuradella tesi.

Un ringraziamento al tutor aziendale, l'ingegner Eduard Ro atello, e agli

ingegneri Davide Grossato, Lu a Giandoso e Fran es o Dol etto, il tiro inio è

stato pia evolee moltoistruttivo.

Un grazie di uore ai miei genitori Claudio ed Emanuela e a mia sorella

Ali e, senza la vostra du ia e il vostro sostegno nei periodi di di oltà tutto

questo non sarebbe mai stato possibile, spero diaver ripagatoi vostri sa ri i,

nalmenteil sognosiè avverato.

Peri weekend passati in asa a studiare nei periodi d'esame,perl'interesse

elapazienzaringrazioBarbara,lamiaragazza,lasuadol ezzaè statalagiusta

uraalle mie preo upazioni.

Unringraziamento spe ialeatuttigliziieparenti, inparti olareaGiuseppe

e Mario,a nonna Giovanna e ainonniGiuseppe e Lina, levostre preghiere alla

ne sonostate as oltate epremiate.

Un grazie ai miei ompagni universitari, i Los Mejores, le lezioni in

om-pagnia vostra s orrevano ome niente fosse, l'aiuto re ipro o per gli esami è

stato indispensabile e le ontinue risate hanno fatto nas ere delle ami izie he

dureranno neltempo.

Ringrazio tutta la ompagnia di ami i, soprattutto quelli stori i Sandro,

Mar o Sak e Denis, siamo res iuti assieme e non dimenti herò mai le mille

avventure, lanostra ami izianon niràmai.

Isa ri i sonostatimolti,iperiodidistressinnumerevoli,maèstato grazie

allepersone he mihannoseguitoe he sonostate almioan o hesonogiunto

a questotraguardo.

Grazie di uorea tutti.

Riferimenti

Documenti correlati

AUTONOMIA DELLE STUDENTE se lo studente risiede fuori dall’unita abitativa della famiglia di origine da almeno 2 anni rispetto alla data di presentazione della

• Terminata la compilazione di tutte le sezioni, cliccare su “Conferma ed invio”, compaiono le dichiarazioni finali da rendere ed alla conclusione di queste si “Conferma

Un viaggio alla scoperta della Spagna più autentica, unitamente ad un tour completo del Marocco.. Un’occasione unica di esplorare, tassello dopo tassello, un angolo di mondo

La Carta dei Servizi del “Centro terapeutico riabilitativo intensivo ed estensivo per disturbi dello spettro autistico Valori” individua e rappresenta lo strumento

Fondazione Aida - Glossa teatro e Papagena teatro d’attore e figura | dai 5 ai 10 anni | durata 50 minuti.. Lo spettacolo è una riproposizione in forma scenica dell’omonimo

Nel caso in cui le domande superino il numero massimo dei partecipanti stabilito, e qualora il Consiglio Scientifico del Master ritenga di voler ampliare il numero

 E’ possibile iscriversi ad uno dei Corsi di studio post-laurea dell’Università degli Studi di Teramo esclusivamente on-line seguendo la procedura

Diversa situazione, va osservato per incidens, si verifica dopo la chiusura delle indagini preliminari (ad esempio, in sede di udienza preliminare): in questo caso il giudice,