CorsodiLaureainIngeneriaInformati a
tesi dilaurea
Analisi e progettazione di un
sistema di gestione delle presenze
Relatore: MassimoRumor
Laureando: Davide Zannirato
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,
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
Bibliograa 36
Elen o delle tabelle 38
Elen o delle gure 40
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
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
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
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
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
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à
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
Figura 1.4: Confronto degli appli ativianalizzatisullefunzionalitàri hiestedai
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.
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
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.
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
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à
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.
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
Figura2.6: Patterndifunzionamentodelframeworkperrisponderealleri hieste
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.
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
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
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
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
Figura 2.8: Interfa ia di front-end on messaggi di avvenuta timbratura e di
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.
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
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
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
Figura 2.13: Come viene selezionato l'utente e la data per la generazione del
artellino
Vengonopoiinseriteleistruzioniperreindirizzareil browsereallegareil le
appena reato, onsentendo ilsalvataggioinlo ale.
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
[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
1.1 EsempiodiCartellino . . . 2
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
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.