Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

38
UNIVERSITÀ DEGLI STUDI DELL’AQUILA Facoltà di Scienze MM.FF.NN TESI DI LAUREA UNA WEBAPP PER IL SERVIZIO DI ERECRUITMENT: PROGETTAZIONE E SVILUPPO CON DATABASE NOSQL E NODE.JSCorso di Laurea di I Livello in Informatica Candidato Relatore FLAVIO BONTA’ Dott. Ivano Malavolta Anno Accademico 2011/2012

Transcript of Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Page 1: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

 

UNIVERSITÀ  DEGLI  STUDI  DELL’AQUILA  

Facoltà  di  Scienze  MM.FF.NN  

TESI  DI  LAUREA  

“UNA  WEBAPP  PER  IL  SERVIZIO  DI    

E-­‐‑RECRUITMENT:  PROGETTAZIONE  E  SVILUPPO  

CON  DATABASE  NOSQL  E  NODE.JS”  

 

Corso  di  Laurea  di  I  Livello  in  Informatica  

 

Candidato     Relatore  

FLAVIO  BONTA’     Dott.  Ivano  Malavolta    

   

Anno  Accademico  2011/2012    

Page 2: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

2

Indice  Generale  INTRODUZIONE  .........................................................................................................  3  

ANALISI  STRATEGICA  ..............................................................................................  3  PANORAMICA  DEL  PRODOTTO  ..........................................................................................  3  ANALISI  DELLA  CONCORRENZA  ........................................................................................  4  

Erecruitment  Software  ....................................................................................................  4  HR-­‐Manager  ....................................................................................................................  4  Taleo  ................................................................................................................................  5  Jobvite  .............................................................................................................................  6  

RICERCA  SUGLI  UTENTI  ......................................................................................................  7  PERSONA  .............................................................................................................................  9  

INFORMAZIONI  DI  CONTESTO  ............................................................................  11  FUNZIONALITÀ  .................................................................................................................  11  REQUISITI  ..........................................................................................................................  12  

Requisiti  Funzionali  ........................................................................................................  12  Requisiti  non  Funzionali  .................................................................................................  14  

CONTENUTI  .......................................................................................................................  16  SCENARI  ............................................................................................................................  17  

Topofone  S.p.A.  .............................................................................................................  17  Arimani  ..........................................................................................................................  18  Pranzo  di  Natale  ............................................................................................................  18  

STRUTTURA  DELL’APPLICAZIONE  ......................................................................  19  MAPPA  ..............................................................................................................................  19  VOCABOLARIO  ..................................................................................................................  21  

BOZZA  STRUTTURALE  ............................................................................................  23  

INTERFACCIA  UTENTE  ...........................................................................................  27  

ARCHITETTURA  SOFTWARE  .................................................................................  30  

SORGENTI  DEI  DATI  ...............................................................................................  32  

TECNOLOGIE  USATE  ...............................................................................................  34  

RIFLESSIONI  ..............................................................................................................  36  SOLUZIONI  SMART  ............................................................................................................  36  DIFFICOLTÀ  INCONTRATE  ................................................................................................  36  

Basse  .............................................................................................................................  36  Medie  ............................................................................................................................  36  Alte  ................................................................................................................................  36  

CONCLUSIONI  ..........................................................................................................  37  

BIBLIOGRAFIA  ..........................................................................................................  38  

Page 3: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

3

Introduzione  Progettazione   e   sviluppo  in  modalità  AGILE  di   un’applicazione  web  per   la  

gestione  e  la  ricerca  di  profili  professionali  (curriculum).    

Il   progetto   e   stato   svolto   mediante   l'ʹutilizzo   di   tecnologie   client/server  

javascript  (node.js),  database  NoSql  (MongoDB)  finalizzate  alla  realizzazione  

di   un   backend   REST   based   e   di   un   rich   client   in   HTML5   compatibile   con  

browser  desktop  e  mobile.

Analisi  Strategica  Panoramica  del  Prodotto    NetCasting   è   una   webapp   che   semplifica   sensibilmente   la   selezione   di  

candidati,  finalizzati  all’assunzione  temporanea  e/o  permanente.  

Un’azienda   in   cerca   di   personale,   può   selezionare   il   suo   candidato  

attraverso   molteplici   informazioni.   Scelti   i   parametri   di   ricerca,   saranno  

elencati  i  candidati  aventi  tali  requisiti  che  possono  essere  riordinati  secondo  

un   ordine   desiderato:   alfabetico,   in   base   al   suo   feedback   medio   di  

gradimento   ricevuto   in   precedenti   lavori,   in   base   alla   sua   età,   in   base   alla  

distanza   che   intercorre   tra   il   luogo   di   lavoro   e   la   residenza   del   candidato.  

Scelti   i   candidati,   l’azienda  può   inviargli  una  notifica.  Raggiunto   il  numero  

necessario   di   candidati   che   hanno   confermato   la   loro   disponibilità,   la  

selezione  sarà  chiusa.  

Un   utente   privato   che   s’iscrive   ha   molte   probabilità   di   trovare   un  

lavoro   grazie   a   questo   canale   di   comunicazione   diretto   azienda-­‐‑lavoratore.  

Una   volta   effettuato   il   login,   l’utente   visualizza   immediatamente   la   sua  

panoramica  del  profilo,  dove  sono  in  risalto  i  lavori  che  ha  in  programma  o  

per   cui   deve   ancora   confermare   la   propria   presenza.   Quando   un   utente  

Page 4: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

4

riceve   una   richiesta   di   un   lavoro,   può   confermare   o   declinare   l’invito.   Al  

termine   di   una   prestazione   lavorativa,   l’utente   riceve   un   feedback   di  

valutazione  che  farà  media  con  i  precedenti  ricevuti.  

Analisi  della  Concorrenza    

Effettuando   una   ricerca   sul   e-­‐‑recruitment     su   google   vengono   fuori   molti  

risultati.  In  campo  internazionale  i  prodotti  meglio  piazzati  nei  risultati  sono  

i  seguenti:  

 

Erecruitment  Software    

E’   un   applicazione   web   online   che   integra   un   centro   di   carriera  

interattiva   al   sito   dell’azienda.   E’   costruito   su   una   piattaforma  

PHP/MYSQL/Linux  che  consente  facilmente  di  distribuire  un  sito  di  carriera  

completamente  funzionale  e  personalizzato  in  base  ai  requisiti  dell’utente.    

Consente  di  automatizzare  l'ʹintero  processo  di  assunzione,  dalla  creazione  di  

offerte   di   lavoro   al   pubblicare   i   requisiti   di   lavoro,   attirando   i   candidati,  

qualificando  chi  è  in  cerca  di  lavoro;  riprendere  l'ʹelaborazione  ,  e  la  selezione  

finale.  

Il  pacchetto  completo  costa  US  $  2500  e  fornisce  i  seguenti  servizi:  

●    Cinque  campioni  di  home  page  personalizzata    

●    Integrazione  con  sito  web  esistente    

●    Enterprise  ATS  software    

●    Manutenzione  annuale    

●    Setup  e  installazione    

●    Hosting  annuale  

 

HR-­‐‑Manager    

HR  manager  Talent  Solutions  è  un’azienda  norvegese  la  quale  offre  

dei  servizi  di  recruiting  sotto  forma  di  SaaS  (Software  as  a  Service).  

Page 5: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

5

Ovviamente  trattandosi  di  un  SaaS  il  cliente   interessato  ad  usufruire  di   tale  

servizio  dovrà  pagare  una  quota  mensile  (non  specificata  sul  sito).  

Il   sito   non   entra   nei   dettagli   del   software,   si   limita   solo   a  mostrare   alcuni  

screenshot.  L’unica  informazione  a  riguardo  è  che  il  software  è  “fully  hosted”  

senza  che  l’azienda  utilizzatrice  del  servizio  debba  scaricare  nulla  sui  propri  

computer.  

Tra   le   aziende   utilizzatrici   di   tale   servizio   ve   ne   sono   alcuni   di   molto  

iportanti  quali  Mercedes  Benz,  Bayer  e  BNP  Paribas.    

A   differenza   dei   precedenti   servizi   questo   sito   è   stato   notato   perchè  

usufruiva  degli  annunci  sponsorizzati  di  Google  (parola  di  ricerca  utilizzata  

“e  recruitment”  oppure  “e-­‐‑recruitment”).  

 

Taleo  

Taleo   ha   costruito   un   completo   cloud   verticale   di   Talent  

Management,   ottimizzato   per   le   esigenze   di   gestione   dei   talenti.   Questo  

include   un'ʹinfrastruttura   scalabile,   elastica,   e   sicura,   una   piattaforma  

software  che  è  aperta,  mobile  e  flessibile,  e  una  suite  completa  di  applicazioni  

di  gestione  dei  talenti.  E  tutto  questo  è  supportato  da  un  grande  ecosistema  

di  clienti,  partner  e  candidati.    

Le   prime   applicazioni   di   gestione   dei   talenti   di   Taleo   hanno   sostenuto   gli  

sforzi   di   reclutamento   di   alcune   delle   aziende   più   grandi   ed   esigenti   del  

mondo.  Questo  obiettivo  iniziale  ha  aiutato  Taleo  a  costruire  la  più  completa  

piattaforma   di   cloud   verticale   del   settore.   Dal   primo   giorno,   hanno  

progettato   l’architettura   per   gestire   grandi   volumi   di   utenti   e   transazioni,  

sostenendo  i  più  alti  livelli  di  sicurezza.  Come  un  sistema  pubblico  di  facciata  

usato  da  milioni  di  candidati  al  giorno,  Taleo  ha  dovuto  offrire  facilità  d'ʹuso,  

scalabilità  e  uptime  dall'ʹinizio.  Infine,  con  un  diverso  ecosistema  di  servizi  di  

terzi   come   background   checks,   le   valutazioni   di   screening   e   di   credito  

d'ʹimposta,  la  piattaforma  software  di  Taleo  richiede  un  integrazione  aperta  e  

Page 6: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

6

flessibile.  

Tra  i  clienti  di  maggior  prestigio  della  piattaforma  Taleo  abbiamo:  

● H3G  

● Banque  National  du  Canada  

● BIC  

● La  città  di  Chicago  

● HP  

● IBM  

● Rolls-­‐‑Royce  

● Tetra  Pak  

● United  Airlines  

● Whirlpool  

e  molti  altri  per  un  totale  di  87  clienti  di  alto  livello.  

Il   prodotto   si   divide   in   base   alle   esigenze   delle   aziende   (numero   di  

dipendenti).  Si  hanno  quindi  3  tipologie  differenti:  

● Business  edition  <  5.000  impiegati  

● Enterprise  5.000  -­‐‑  13.000  impiegati  

● Large  Enterprise  >  13.000  impiegati  

Il  modello  di  business  che  propone  la  Taleo  è  quello  del  SaaS  (Software  as  a  

Service).  Di  conseguenza  il  guadagno  dell’azienda  avviene  facendo  pagare  ai  

clienti  una  quota  d’iscrizione  ad  un  servizio.  

 

Jobvite    

Jobvite   è   un   servizio   di   recruiting   fondato   sull’utilizzo   dei   social  

network.  La  filosofia  di  fondo  alla  base  del  progetto  è  quella  del  “passaparola  

digitale”.  

Jobvite  offre   la  possibilità  alle  aziende  di  mandare   inviti  di   lavoro   tramite   i  

vari   social  network,   facebook,   twitter,   linkedin   etc.  dando  poi   la  possibilità  

agli   utenti   o   di   accettare   il   lavoro,   oppure   di   inoltrarlo   ai   propri   contatti,  

Page 7: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

7

magari  un  amico  esperto  proprio  nel  ruolo  richiesto  dall’azienda  ed  in  cerca  

di  lavoro.  

Jobvite  offre   anche  un   sistema  per   la   ricerca  del   candidato   ideale  mediante  

l’analisi   dei   profili   dei   social   network.   Fornisce   anche   un   servizio   di  

creazione   di   un   app   personalizzata   sulla   pagina   facebook   dalla   quale   è  

possibile  vedere  le  offerte  di  lavoro  dell’azienda,  rispondere  ad  essa  oppure  

inviarla   a   qualcuno   che   noi   sappiamo   possa   essere   interessato.   Permette  

inoltre  di  poter  creare  un  career  site  della  compagnia.  

Oltre   all’aspetto   social   Jobvite   fornisce   anche   un   software   di   tracking  

management,   un   sistema   in   grado   di   fornire   statistiche   in   tempo   reale,   un  

integrazione  con   il  calendario  di  outlook,  un  sistema  per  gestire   in  maniera  

autonoma  l’invio  di  email  e  l’archiviazione  in  base  al  candidato  scelto.  

 

N.B.  I  loghi  delle  applicazioni  concorrenti  sono  stati  da  me  rielaborati  per  avere  una  presentazione  omogenea.  

Ricerca  sugli  Utenti    

ID   NEED  

N1   Eseguire  ricerche  sui  profili.  

N2   Ricevere  notifiche.  

N3   Aggiornare/visualizzare  il  proprio  profilo.  

N4   Valutare  una  prestazione  lavorativa.  

N5   Esportare  curriculum/profilo  in  PDF.  

N6   Esportare  una  ricerca  effettuata  in  PDF,  Excel.  

N7   Modificare/archiviare/clonare  un’offerta  di  lavoro.  

N8   Confermare/rifiutare  una  proposta  di  lavoro.  

N9   Bloccare  un  utente.  

N10   Creare  un  nuovo  profilo  “azienda”.  

Page 8: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

8

N11   Aggiungere  nuovi  campi  nel  profilo  utente.  

N12   Contattare  un  candidato.  

N13   Creare  una  nuova  offerta  di  lavoro.  

 

 

 

  SUPERADMIN   AZIENDA   PRIVATO  

Età   -­‐‑   -­‐‑   >18  

Lavoro   -­‐‑  Qualsiasi  tipo  di  azienda  in  cerca  di  personale  

Disoccupato,  studente  in  cerca  di  part-­‐‑time,  lavoro  extra  

Tecnologia  Computer  fisso/portatile  aziendale  

Computer  fisso/portatile  aziendale  

Computer  fisso/portatile,  smartphone  

Educazione   -­‐‑   -­‐‑  

Licenza  media,  licenza  media  superiore,  laurea,  Ph.D,  master  

Need  

N10  N11  

N1  N2  N4  N5  N6  N7  N9  N12  N13  

N2  N3  N5  N8  

               

Page 9: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

9

Persona  

       

 

Page 10: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 11: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

11

Informazioni  di  Contesto  Funzionalità    

ID   Funzionalità   Descrizione   Maps  to  

F1   Ricerca  candidati   Una  lista  di  candidati  è  visualizzata.   N1  

F2   Visualizza  il  profilo   È  visualizzato  in  dettaglio  il  profilo  di  un  candidato.  

N1,  N3  

F3   Visualizza  il  curriculum  

È  visualizzato  il  curriculum  di  un  candidato.  

N5,  N6  

F4  Visualizza  i  lavori  in  programma  

Una  lista  di  lavori  è  visualizzata,  con  possibilità  di  entrare  in  dettaglio.  

N3  

F5   Visualizza  offerte  in  precedenza  create  

Sono  visualizzate  tutte  le  offerte  di  lavoro  che  un’azienda  ha  creato  con  possibilità  di  modificarle,  clonarle  o  archiviarle.  

N7  

F6  Ricevi  comunicazioni  

Una  notifica  è  visualizzata  in  caso  di  una  richiesta  di  lavoro  o  di  altra  comunicazione  da  parte  dell’azienda  o  del  sistema.  

N2,  N4,  N11  

F7   Invia  comunicazioni  Una  notifica  sarà  inviata  al  candidato  scelto  o  a  tutti  gli  iscritti   N11,  N12  

F8  Rispondi  a  una  richiesta  di  lavoro  

Una  notifica  sarà  inviata  all’azienda  con  risposta  affermativa  o  negativa   N8  

F9  Valuta  una  prestazione  lavorativa  

È  visualizzata  una  semplice  valutazione  a  cinque  stelle  per  valutare  un  lavoro  svolto  da  un  candidato  

N4  

F10   Crea  un  nuovo  lavoro  

È  visualizzata  una  scheda  con  tutti  i  dettagli  per  la  creazione  di  un  nuovo  lavoro  

N7,  N13  

           

Page 12: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

12

Requisiti    Requisiti  Funzionali  

R1.  Registrazione.  Un  utente  deve  avere  la  possibilità  di  registrarsi  al  sistema  

per  avere  accesso  a  tutte  le  funzionalità  del  sito.  

§ L’utente  si   registra   tramite   il  sign-­‐‑in  dei  social  più  conosciuti  oppure  

riempie  i  campi  del  modulo  della  pagina  registrazione  con  i  valori  di:  

nome,  cognome,  email,  password,  sesso,  data  di  nascita.  

§ Un   amministratore   del   sistema   riceve   richieste   d’iscrizione   da   parte  

dell’azienda  ed  ha  il  compito  di  assegnargli  un  account  con  i  privilegi  

dedicati.    

R2.  Login  e  Password.  Un  utente  ha  la  possibilità  di  fare  login  nel  sito  se  si  è  

già   registrato  con  metodo  classico   (R1)  e  successivamente  se  andata  a  buon  

fine  può  navigare   all’interno  di   tutto   il   sito.  E’   altresì  possibile   cambiare   la  

password   in  caso  di  smarrimento  ottenendone  una  nuova  automaticamente  

tramite  email.  

 

R3.  Gestione   candidati.   L’applicazione   permette   all’azienda   di   cercare   un  

candidato  che  abbia  degli  specifici  requisiti.  

§ L'ʹapplicazione  mostra  una  lista  di  Candidati  all’azienda  (F1).      

§ L’azienda  può  selezionare  un  candidato  dalla  lista  di  cui  sopra  (F2).  

§ L’applicazione  visualizza  i  dettagli  del  candidato  scelto  (F2).  

§ L’applicazione  visualizza  il  curriculum  del  candidato  (F3).  

 

R4.  Gestione   profilo.   L’applicazione   permette   all’utente   di   visualizzare   il  

proprio  profilo.  

§ L’applicazione  mostra  i  dettagli  del  proprio  profilo  (F2).  

§ L’utente  può  apportare  modifiche  al  proprio  profilo  (F2)  modificando  

i  form  che  sono  mostrati  dall’applicazione.  

Page 13: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

13

§ L’utente  può  visualizzare/salvare  il  proprio  curriculum  (F3).  

 

R5.  Gestione  lavori.  L’applicazione  permette  all’azienda  di  gestire  le  proprie  

offerte  di  lavoro.  

§ L’applicazione  visualizza  la  lista  di  lavori  che  l’azienda  ha  creato  (F4).  

§ L’azienda   ha   la   possibilità   di  modificare   i   dettagli   di   un   lavoro   non  

ancora  iniziato.  

§ L’applicazione  visualizza  una  lista  di  lavori  archiviati  e  ne  permette  la  

clonazione   e   la   successiva   modifica   (F5)   modificando   i   dati   che  

saranno  visualizzati  all’interno  di  un  form.  

§ L’applicazione  visualizza  un  form  per  la  creazione  di  un  nuovo  lavoro  

(F10).  

 

R6.   Informazioni   lavori.  L’utente   può   visualizzare   i   lavori   per   cui   è   stato  

selezionato  e  per  il  quale  ha  già  dato  conferma.  

§ L’applicazione  mostra  all’utente  la  lista  di  lavori  (F4)  che  l’utente  può  

selezionare.  

§ L’applicazione   mostra   in   dettaglio   (F4)   una   richiesta   di   lavoro   che  

l’utente  ha  selezionato.  

§ L’utente  può  decidere   se  accettare  o   rifiutare  una  proposta  di   lavoro  

(F8),  o  annullarne  uno  in  precedenza  accettato  (F8).  

 

R7.  Comunicazioni.  L’applicazione  visualizza  una  notifica  per  segnalare  un  

evento  all’utente.  

§ Una   notifica,   inviata   dall’azienda   (F7),   è   visualizzata   dal   candidato  

(F6)  nel  caso  in  cui  quest’ultimo  è  stato  selezionato  per  un  lavoro.  

§ L’applicazione   invia   una   notifica   (F7)   generata   automaticamente   dal  

sistema  nel  caso  siano  stati  aggiunti  dei  nuovi  campi  nel  profilo.  

§ L’applicazione   invia   una   notifica   all’azienda   (F6)   quando   un  

Page 14: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

14

candidato   risponde   sia   positivamente   sia   negativamente   a   un’offerta  

di  lavoro  (F8).  

R8.   Valutazione.   L’azienda   al   termine   della   prestazione   lavorativa   può  

valutare  il  lavoro  dal  candidato.  

§ L’applicazione  visualizza  le  classiche  cinque  stelle  (F9)  per  permettere  

all’azienda  la  valutazione  della  prestazione  offerta  dal  candidato.  

§ L’utente   visualizza   la  media   voto   delle   sue   valutazioni   nella   pagina  

principale  del  suo  profilo  (F2).  

 

Requisiti  non  Funzionali  

RN1.  Usability.  

§ L'ʹapplicazione  deve  essere  usabile  per  ogni  tipologia  di  attore  definito.    

§ L'ʹinterfaccia  utente  deve  essere  intuitiva  e  user-­‐‑friendly  in  stile  social.    

§ L’applicazione  deve  essere  sufficientemente  veloce  e  leggera  per  ogni  

tipo  di  dispositivo.    

§ L’interfaccia  deve  avere  colori  non  aggressivi  e  ben  bilanciati  tra  loro.      

 

RN2.  Performance.    

§ La   webapp   deve   essere   veloce   e   scaricare   meno   dati   possibili   da  

internet  facilitando  il  caching  dei  dati  sul  dispositivo.    

§ Il  database  NoSql  deve  essere  in  grado  di  sopportare  la  mole  dei  dati  

passati   e   ricevuti   da   ogni   dispositivo   mobile   e   desktop   ed   eseguire  

query  in  un  tempo  impercettibile  per  l’utente.      

 

RN3.  Data  requirements.    

§ Il   database   deve   essere   NoSql   in   modo   tale   da   non   utilizzare   più  

spazio  del  necessario,   e   ridurre   sensibilmente   i   tempi  di  accesso  non  

dovendo  effettuare  innumerevoli  JOIN.    

§ La  webapp  deve  richiedere  le  informazioni  tramite  chiamate  API  Rest.  

Page 15: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

15

 

RN4.  Security.    

§ Tutti   i   campi   d’inserimento   dati   devono   gestire   l’input   in   modo   da  

prevenire   eventuali   attacchi   di   SQL   injection   nei   confronti   del  

database.    

§ La  connessione  verso  il  database  deve  essere  sicura  e  criptata.    

§ Le  password  non  devono  essere  memorizzate   in  chiaro  sul  database,  

ma   deve   essere   usato    un  meccanismo   di   hash   in  modo   che   non   sia  

possibile  in  alcun  modo  recuperarle.    

§ Il   sistema   di   registrazione/login   deve   prevedere   un   sistema   per  

circoscrivere  il  fenomeno  di  troll    e  bot  automatici.    

§ La  webapp  deve  evitare  attacchi  di  tipo  XSS  (cross  site  scripting).    

 

RN5.  Privacy.  

§ Ogni   utente   deve   poter   scegliere   per   quali   lavori   può   essere  

selezionato  e  quindi  visibile  da  un’azienda.    

§ Un  utente  completando  il  suo  profilo,  regola  automaticamente  la  sua  

privacy.  

o Se   una   ditta   cerca   personale   per   un   lavoro   all’estero   e   un  

candidato   nel   suo   profilo   ha   scelto   di   lavorare   solo   in   Italia,  

nella  lista  di  candidati  che  saranno  visualizzati  all’azienda  tale  

utente  non  apparirà.  

o Un   utente   che   lascia   vuoti   tutti   i   campi   non   sarà  mai   visibile  

nelle  ricerche.  

RN6.  Development  Process.    

§ I   contenuti   della   webapp   saranno   sviluppati   in   HTML5   con  

l’utilizzo  del  template  engine  JADE.  

§ La   presentazione   sarà   realizzata   attraverso   fogli   di   stile   CSS3  

servendosi   principamente   del   framework   di   rapid   prototype  

Page 16: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

16

FOUNDATION.  

§ Le   funzionalità   dell’applicazione   saranno   realizzate   in   JavaScript  

con  l’ausilio  del  framework  per  nodejs  EXPRESS  e  jQuery.  

§ Come   wrapper   nativo   per   l’applicazione   verrà   utilizzato   il  

framework    open  source  PhoneGap.    

 

 

Contenuti    

NetCasting  ha  una  serie  di  contenuti  informativi  necessari  al  raggiungimento  

degli   obiettivi   per   la   quale   è   stata   creata.   Le   categorie   di   contenuti   vanno  

dalle  più   leggere   informazioni   in   formato   testuale,   a   contenuti   leggermente  

più  impegnativi  quali  sono  la  creazione  di  curriculum  in  formato  PDF.  

 

La   raffigurazione  di   tutto   il   layout   si   adatta  a  ogni   tipologia  di  dispositivo,  

che   sia   un   desktop   con   risoluzione   1920   x   1200   pixel   fino   ad   arrivare   al  

dispositivo  mobile  con  risoluzione  320  x  480  pixel.  

 

Essendo   NetCasting   un’applicazione   di   comunicazione   tra   due   utenze,   la  

maggior  parte  dei  contenuti  è  in  formato  testuale.  Le  pagine  hanno  tutte  un  

layout   simile   con   un   menu   laterale   a   sinistra   per   la   versione   desktop   e   a  

scomparsa   in  quella  mobile,   e  un  corpo  centrale,  dove  saranno  visualizzate  

tutte   le   informazioni   che   l’utente   richiede.   Si   parte   dalla   panoramica   del  

proprio   profilo,   dove   sono   visualizzate   le   proprie   informazioni   base   e   gli  

eventuali   lavori   in   programma   per   poi   proseguire   con   i   dettagli   di   ogni  

singola   proposta   di   lavoro   tuta   in   formato   testuale.   La   pagina   del   profilo  

personale   è   formata   da   campi   testuali   che,   al   click   dell’utente,   diventano  

campi  form  dove  modificare  le  proprie  informazioni.  

Page 17: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

17

 

Per  quanto   riguarda   la  manutenzione  dei   contenuti   informativi,   sono   le   tre  

tipologie   di   utenti   che   hanno   il   compito   di   arricchire   il   contenuto  

informativo:  

§ Il  superadmin  ha  il  compito  di  ricevere  richieste  d’iscrizione  da  parte  

di  nuove  aziende  e  procede  all’inserimento  di  eventuali  nuovi  campi  

nel  form.  

§ L’azienda   è   la   fonte   principale   di   arricchimento   d’informazioni  

all’interno   del   sito,   ha   il   compito   di   creare   nuove   offerte   di   lavoro,  

inviarle  ai  candidati  scelti  e  valutare  questi  ultimi.  

§ Il  candidato  procede  solo  ed  esclusivamente  all’inserimento  dei  propri  

dati  personali  visibili  dall’azienda  che  lo  cerca.  

Scenari    

Topofone  S.p.A.  

La   Topofone   S.p.A.,   nota   compagnia   telefonica,   deve   promuovere   in   tutta  

Italia   la   sua   nuova   promozione   “NGPensa”   che   permette   all’utente   di  

chiamare   illimitatamente   tutti   a   un   prezzo   eccezionale.   La   Topofone   ha  

deciso   di   compiere   una   politica   pubblicitaria   molto   aggressiva,   oltre   alle  

solite  pubblicità  televisive  ha  deciso  di  fare  un  contatto  diretto  con  il  cliente,  

il  piano  è  di  mandare  una  promoter  in  ogni  centro  commerciale  d’Italia.  Nel  

magazzino   centrale,   la   Topofone   dispone   di   1000   divise   da   donna   (500   di  

taglia  36  e  500  di   taglia  38),  1000  paia  di  scarpe  (500  scarpe  di  numero  36  e  

500   di   numero   38).   Effettuare   una   ricerca   di   promoter   aventi   queste  

caratteristiche   sarebbe   una  missione   a   dir   poco   ardua   se   non   ci   fosse   stato  

NetCasting   a   risolvere   il   tutto.   In   pochi   semplici   passi   l’incaricato   della  

Topofone   esegue  una   ricerca   inserendo   le   caratteristiche   che  una   candidata  

deve  avere  e  invia  una  notifica  a  tutti  i  selezionati.      

 

Page 18: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

18

Arimani  

Arimani,  stilista  di  fama  provinciale,  è  riuscito  nel  sogno  di  mostrare  le  sue  

creazioni  nella  settimana  della  moda  di  Milano.  Un’occasione  unica!  Per  fare  

bella   figura,   Arimani   ha   deciso   di   cercare  modelle   tutte   alte   180   cm   e   per  

mettere  in  risalto  i  colori  dei  suoi  abiti  le  vuole  tutte  bionde  con  occhi  azzurri.  

Siccome   Arimani   è   controcorrente,   vuole   modelle   in   carne,   quindi   i   suoi  

vestiti  saranno  di  taglia  42.  I  provini  si  svolgeranno  nella  sua  città,  L’aquila.  

Si  mette  subito  alla  ricerca  di   trenta  candidate  da  ammettere  al  provino  per  

poi   sceglierne   cinque.  Arimani   s’iscrive   subito   a  NetCasting   e   in  un  attimo  

contatta  le  trenta  ragazze  da  provinare.  

 

Pranzo  di  Natale  

Sandro,   noto   ristoratore   di   Giulianova   (TE),   vuole   tenere   aperto   il   suo  

ristorante   anche   per   il   pranzo   di   Natale.   Ha   dato   piena   facoltà   ai   suoi  

camerieri  di  decidere  se  lavorare  o  rimanere  a  casa  con  i  parenti  per  il  pranzo  

in   famiglia.  Su  otto   camerieri   solo  due  hanno  deciso  di  voler   restare  a   casa  

per   il   giorno   di   Natale,   mentre   gli   altri   sei   hanno   deciso   di   lavorare   visto  

anche   l’extra   di   150€   che   sarà   loro   dato.   Sandro   adesso   deve   rapidamente  

rimpiazzare   i   due   camerieri   e   in   più   ne   vuole   altri   due   perché   prevede   il  

pienone.  Ricorda  di  aver  utilizzato  NetCasting  anche  in  un’altra  occasione  e  

immediatamente  effettua  il  login  e  si  mette  alla  ricerca  dei  quattro  camerieri  

con  le  seguenti  caratteristiche:  diploma  di  scuola  alberghiero  e  collo  camicia  

38  cm,  poiché  ha  comprato  camicie  create  appositamente  per  la  giornata.  In  

un  click  ha  selezionato  i  quattro  camerieri  che  avevano  il  massimo  feedback  

di  valutazione.  

 

 

 

Page 19: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

19

Struttura  dell’Applicazione    In  questa  sezione  è  mostrata  la  mappa  concettuale  della  webapp.  La  sitemap  

è   uno   strumento   di   rappresentazione   grafica   che   consente   di   identificare   i  

rapporti,  le  relazioni,  le  dipendenze  e  le  appartenenze  di  diversi  elementi.  Le  

mappe   concettuali   si   rivelano   molto   utili   non   solo   per   l’analisi   e   il   card-­‐‑

sorting   dei   singoli   contenuti,   ma   anche   per   rappresentare   e   guidare  

l’architettura  profonda  di  un  portale.  

 

Mappa  

 

Page 20: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

20

     

Page 21: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

21

Vocabolario  

Termini  vocabolario   Descrizione  

Account  setting   Sezione  dove  l’utente  modifica  le  impostazioni  di  ricezione  notifica.  

Anagrafica   Pagina  dove  l’utente  può  modificare  i  propri  dati  anagrafici.  

Archivio  Visualizza  tutti  i  lavori  che  la  ditta  ha  creato  con  possibilità  di  clonarli  o  visualizzare  i  candidati  selezionati  per  quel  lavoro.  

Cerca  candidato  L’azienda  può  scegliere  se  cercare  un  candidato  in  una  ricerca  precedentemente  salvata  o  effettuare  una  nuova  ricerca.  

Clona  lavoro  Viene  visualizzata  la  stessa  view  di  “Crea  lavoro”  con  i  campi  già  riempiti,  con  possibilità  di  modificarli.  

Crea  lavoro   Pagina  di  creazione  di  un  nuovo  lavoro.  

Page 22: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

22

Curriculum  

Operazione  con  cui  un  candidato  visualizza  il  proprio  curriculum  o  un’azienda  visualizza  quello  di  un  candidato  selezionato  con  possibilità  di  scaricarlo.  

Dettaglio  offerte   Visualizza  l’offerta  di  lavoro  in  dettaglio.  

Esperienze  e  disponibilità  

Pagina  dove  l’utente  può  modificare  le  proprie  esperienze  e  disponibilità.  

Modifica  info  azienda   Pagina  dove  l’azienda  può  modificare  la  propria  ragione  sociale.  

Modifica  offerta  Viene  visualizzata  la  stessa  view  di  “Crea  lavoro”  con  i  campi  già  riempiti,  con  possibilità  di  modificarli.  

Modifica  requisiti  candidato  

Stessa  view  di  “Scelta  caratteristiche  candidato”  con  i  campi  dei  requisiti,  che  un  candidato  deve  avere,  già  riempiti  e  la  possibilità  di  modificarli.  

Notifiche   Pagina  dove  l’utente  o  l’azienda  visualizza  le  notifiche.  

Offerte  attive   Lista  di  lavori  attivi  che  l’azienda  sceglie  di  clonare  o  modificare.  

Offerte  di  lavoro   Lista  delle  offerte  di  lavoro  per  cui  un  candidato  è  stato  selezionato.  

Pagina  azienda  Pagina  di  accesso  con  cui  si  apre  la  webapp  per  un’azienda.  

Pagina  login  Pagina  iniziale  dove  l'ʹutente  registrato  si  logga  al  sistema.  

Pagina  personale  Pagina  di  accesso  con  cui  si  apre  la  webapp  per  un  utente  privato.  

Personali  Pagina  dove  l’utente  può  modificare  i  propri  dati  personali.  

Registra  azienda  Pagina  con  cui  l’azienda  chiede  all’admin  la  registrazione.  

Registrazione   Pagina  di  registrazione  dove  l’utente  si  registra.  

Ricerche  salvate   Lista  delle  ricerche  salvate  in  precedenza.  

Scelta  caratteristiche  candidato  

L’azienda  visualizza  la  pagina  con  la  scelta  dei  requisiti  che  un  candidato  deve  avere.  

Seleziona  candidato  Lista  di  candidati  aventi  caratteristiche  che  l’azienda  ha  scelto  con  possibilità  di  ordinarli,  selezionarli,  contattarli  e  salvare  tale  ricerca.  

Storico  Pagina  dove  sono  elencati  tutti  i  lavori  che  un  candidato  ha  portato  a  termine.  

Page 23: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

23

Bozza  Strutturale  

 

       

 

 

 

     

L’accesso  alla  Webapp  risulta  essere  molto  rapido,  il   login  avviene  tramite  i  

social   sign-­‐‑in   o   tramite   l’inserimento   di   username   e   password.   La  

registrazione,   anch’essa   molto   semplice,   chiede   all’utente   solo   le  

informazioni   base.   La   versione   mobile   ha   esattamente   tutti   i   campi   della  

versione  mobile,  progettata  per  essere  molto  leggera  e  minimale.  

 

SK 0: Pagina Login  

SK 1.1: Pagina Registrazione  

SK 1.2: Registrazione Tablet  

SK 1.3: Registrazione Smartphone

Page 24: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

24

SK 2: Home Page Utente

                 

 

 

La   pagina   personale   di   un   candidato   si   presenta   molto   in   stile   social,  

progettata  per  essere  familiare  già  al  primo  utilizzo.  La  versione  desktop  e  la  

versione   tablet   in   landascape,  presentano  un  menu  laterale   fisso,  un  header  

dove  sono  messe  in  risalto  la  completezza  del  profilo  e  le  notifiche.  Il  corpo  

centrale  contiene  le  informazioni  della  pagina  scelta.  La  versione  mobile  e  la  

versione   tablet   in   portrait,   si   presentano   con   il   corpo   centrale   a   pieno  

schermo,  l’header  che  mette  in  risalto  le  notifiche  e  il  menu  nascosto.  

 

SK 2.1: Home Page Tablet  

SK 2.2: Home Page Smartphone

Page 25: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

25

SK 3: Modifica Anagrafica

  SK 3.1: Modifica Anagrafica Mobile

SK 3.2: Anagrafica Smartphone

 La  modifica  dei  dati,  sia  per  la  versione  desktop  sia  in  quella  mobile,  avviene  

semplicemente   cliccando   sul   dato   da   modificare.   Nella   versione   mobile   il  

menu  compare  e  scompare  cliccando  sull’apposito  pulsante.  

 

Tutte   le   pagine   si   presentano   con   il   medesimo   menu   e   header,   solo   il  

contenuto  informativo  del  corpo  centrale  differisce  per  ogni  pagina.  

Page 26: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

26

SK 4: Dettaglio Offerta Admin

 

 

 

 

 

 

 

Il   back-­‐‑end   si   presenta   nella   medesima   versione   del   front-­‐‑end   sia   nella  

versione  desktop  sia  in  quella  mobile.    

 

 

 

 

 

SK 4.1: Dettaglio Offerta Admin Mobile  

SK 4.2: Dettaglio Offerta Admin Smartphone

Page 27: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

27

Interfaccia  Utente    L’interfaccia  grafica  di  NetCasting  è  stata  disegnata  per  essere  semplice  e  allo  

stesso  tempo  piacevole  da  utilizzare.  Lo  stile  social  fa  si  che  l’utente  anche  al  

primo  accesso  avrà  subito  confidenza  con  il  sistema.    

L’intuitività   è   garantita   anche   grazie   all’utilizzo   delle   gesture   più   abituali  

come  il  tap,  lo  swipe  e  il  pinch  to  zoom.  

Il  colore  predominante  è  il  bianco,  che  conferisce  all’utente  un  tono  pulito,  un  

header   nero,   che   con   il   suo   alto   contrasto   coglie   l’attenzione   dell’utente,  

infatti  lì  si  possono  trovare  le  notifiche  e  il  grado  di  completezza  del  proprio  

profilo.  Il  corpo  centrale  alterna  profili  di  grigio  e  blu.  Per  questioni  di  spazio  

di   seguito   vengono   mostrati   solo   alcuni   screenshot   della   webapp   sia   in  

versione  desktop  che  in  quella  mobile.  

 

Il  mockup  sovrastante  corrisponde  al  Lo-­‐‑Fi  Wireframe  descritto  nella  sezione  

Skeleton:  

§ Home  page  utente  (SK  1)  

Page 28: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

28

             

Partendo  da  sinistra  i  mockup  corrispondono  ai  seguenti  Lo-­‐‑Fi  Wireframe:  

§ Login  (versione  mobile  di  SK  0)    

§ Home  page  utente  mobile  (SK  2.2  con  menu  a  discesa  aperto)  

§ Home  page  utente  mobile   (SK  2.2  con  menu   laterale  a  scomparsa  

aperto)  

§ Modifica  anagrafica  mobile  (SK  3.2)  

 

 

Il  mockup  in  alto  si  riferisce  al  dettaglio  offerta  descritto  nello  skeleton  (SK  4)  

 

Page 29: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

29

                 

   I   mockup   precedenti,   dall’alto   verso   il   basso,   non   sono   descritti   nei   Lo-­‐‑Fi  

wireframe,  mostrano:  

§ Ricerca  avanzata,  da  parte  dell’admin  dell’azienda  

§ Ricerca  avanzata  mobile  

§ Dettaglio  di  un  utente  ricercato  

 

 

Page 30: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

30

Architettura  Software      

     

Page 31: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

31

La  webapp  sarà  suddivisa  in  file  js,  che  gestiranno  la  logica,  e  in  file  jade,  che  

saranno   i   file   di   template.   Nel   bootstrap   saranno   caricate   tutte   le  

configurazioni   e   le   dipendenze   dei   moduli   node.js.   Sarà   compito  

dell’access.js   stabilire   quale   view   visualizzare   a   seconda   dei   permessi   che  

l’utente   possiede.  Una   volta   caricate   le   view,   il   controllo   passa   in  mano   ad  

angular;  website.js   avrà   il   compito   di   caricare   un   partial   specifico   per   ogni  

rotta   che   l’utente   percorre   mentre   gestire   la   grafica   sarà   compito  

dall’application   style.   Ogni   path   specifico   sarà   gestito   dal   controller   di  

angular  che  effettuerà  chiamate  REST  di  tipo  GET,  POST,  PUT  e  DELETE.  

Page 32: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

32

Sorgenti  dei  Dati    

   La   struttura   dell'ʹapplicazione   è   volutamente  molto   semplice   e   si   appoggia  

principalmente   su   di   un   database   documentale   MongoDB.   Il   database  

gestisce  tutti  i  dati  relativi  agli  utenti  ed  ai  loro  profili  così  come  le  offerte  e  le  

notifiche  ed  è  stato  strutturato  per  garantire  delle  ottime  performance  sia  in  

termini  di  storage  che  in  termini  di  velocità  ricerca  su  di  un  numero  elevato  e  

variabile   di   campi.   Il   fatto   che   MongoDB   sia   un   database   schemaless  

consentirà   inoltre   di   aggiornare   i   campi   deputati   al   censimento   solo  

attraverso   una   modifica   lato   Application,   senza   dover   provvedere   a  

migrazioni   lunghe   e   spesso   complicate   (soprattutto   quando   il   numero   di  

record  diventa  elevato).  

L'ʹutilizzo   di   un   database   non   relazionale   comporta   la   necessità   di  

implementare  algoritmi  di  "ʺintegrità"ʺ  a  livello  application,  e  a  tal  fine  è  stato  

utilizzato   l'ʹODM   (Object   Document   Mapper)   Mongoose,   che   funge   da  

Page 33: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

33

interfaccia  con  il  database  attraverso  la  definizione  di  Schemi  Virtuali  e  offre  

funzionalità  di  validazione.    

Per  la  gestione  dei  dati  "ʺvolatili"ʺ,  principalmente  le  sessioni  utente,  si  è  deciso  

di   utilizzare   un   database   Redis   (key-­‐‑value   store),   che   verrà   utilizzato  

attraverso  le  interfacce  messe  a  disposizione  dal  framework  ExpressJS,  ed  in  

particolare  il  modulo  Session.  

Lato  Client,  dopo  le  analisi  dei  casi  d'ʹuso  più  rappresentativi,  si  è  deciso  di  

sfruttare  le  potenzialità  di  Angular  js  nella  gestione  e  manipolazione  dei  dati  

per  ridurre  ulteriormente  il  carico  a  db.  Attraverso  infatti  l'ʹutilizzo  di  "ʺfilters"ʺ  

sarà  possibile  effettuare  operazioni  di  sorting  e  di  ricerca  sui  dati  ritornati  da  

DB  dirattamente  da  interfaccia  client.  

 

 

Page 34: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

34

Tecnologie  Usate    

NodeJS:   È   un   framework   per   realizzare   applicazioni   Web   in   JavaScript,  

permettendoci   di   utilizzare   questo   linguaggio,   che   tipicamente   viene  

utilizzato  nel  lato  client,  anche  per  la  scrittura  di  applicazioni  “server-­‐‑side”.  

La  piattaforma  è  basata  sul  JavaScript  Engine  V8,  che  è  il  runtime  di  Google  

utilizzato  anche  da  Chrome.    

La   caratteristica   principale   di  Node.js  

risiede   nella   possibilità   che   offre   di  

accedere   alle   risorse   del   sistema  

operativo   in   modalità  event-­‐‑driven  

(programmazione  ad  eventi),   si   lancia  

una   azione   quando   accade   qualcosa.  

Ogni  azione  quindi  risulta  asincrona  a  

differenza   dei   pattern   di   programmazione   più   comuni   in   cui   un’azione  

succede  ad  un’altra  solo  dopo  che  essa  è  stata  completata.  

Ciò  dovrebbe  garantire  una  certa  efficienza  delle  applicazioni  grazie  ad  un  

sistema  di  callback  gestito  a  basso  livello  dal  runtime  (Bottarini 2012).  

 

ExpressJS:   È   un   framework   leggero   e   flessibile   per   applicativi   node.js,  

fornisce   un   robusto   set   di   funzioni   per   la   creazione   di   applicazioni   web   a  

singola  pagina,  multi-­‐‑pagina  e  ibridi.  

 jQuery:   È   una   libreria   JavaScript   veloce   e   concisa   che   semplifica   la  

manipolazione  del  documento  HTML,  la  gestione  degli  eventi,  l’animazione  

e  le  interazioni  Ajax  per  lo  sviluppo  web  rapido.    

 

PhoneGap:  È  un  framework  che  permette  di  convertire  in  applicazioni  native  

per  iOS,  Android,  Blackberry,  Windows  Phone,  Palm  WebOS  e  Symbian  da  

Page 35: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

35

linguaggio  HTML,  CSS  e  JavaScript.  

 

Foundation   Zurb:   È   un   framework   responsive   basato   su   HTML5   e   CSS3  

pensato   per   lo   sviluppo   di   siti   e   applicazioni   Web.   Foundation   è   stato  

concepito  con  un  approccio  ancora  più  orientato  ad  una  prospettiva  mobile-­‐‑

first.   In   questo   modo,   Foundation   spinge   i   designer   a   concentrarsi   prima  

sull’esperienza  mobile  e  successivamente  a  quella  desktop (Fogliata 2013).  

 

AngularJS:  È   un   framework   JavaScript,   patrocinato   da   Google,   utile   a  

semplificare   la   realizzazione  di   applicazioni  Web   single   page.  AngularJS   si  

ispira   al  pattern  MVC,   come   altri   framework   analoghi   quali  Knockout  o  

Ember.js.  Ma  rispetto  ai  diretti  concorrenti,  questo  framework  è   in  grado  di  

ridurre   in   maniera   considerevole   il   codice   necessario   a   realizzare  

applicazioni  HTML/JavaScript.  (Chiarelli 2012)  

 

MongooseJS:  Questo  framework  offre  un’legante  modellazione  degli  oggetti  

mongodb   per   node.js,   prende   come   primo   parametro   la   query  mongodb   e  

come  secondo  parametro  una  funzione  di  callback  che  restituisce  un  array  di  

oggetti  JSON  pronti  per  l’utilizzo.  

 

PassportJS:   Passport   è   middleware   di   autenticazione   per  Node.js.  

Estremamente   flessibile   e   modulare,   Passport   può   essere   utilizzato   in  

qualsiasi   applicazione   web   basata   su   Express.js.  Ha   un   set   completo   di  

strategie  di  supporto  per  l'ʹautenticazione  utilizzando  un  nome  utente  e  una  

password,  Facebook,  Twitter  e  altro  ancora.  

Page 36: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

36

Riflessioni  Soluzioni  Smart  

Sicuramente   la  soluzione  che  ha  fatto   la  differenza  nello  sviluppo  di  questa  

webapp  è  stata  l’utilizzo  di  un  database  noSql  che  ha  ridotto  sensibilmente  i  

tempi   delle   query   effettuate.   Avendo   i   dati   dell’utente,   admin,   aziende   e  

offerte   tutte   in   una   riga   e   scalabili   orizzontalmente,   abbiamo   evitato   di  

effettuare  moltissimi   JOIN   per   tantissime   tabelle   con   l’utilizzo   di   database  

tradizionali  con  un  costo  in  tempo  davvero  elevato.  

Difficoltà  incontrate  

Basse  

Le   prime   difficoltà   incontrate   sono   state   quelle   di   capire   bene   cosa   il  

committente  cercava  per  la  sua  webapp  e  quindi  come  strutturare  il  progetto,  

a   quali   problematiche   si   andava   incontro   e   alle   tecnologie   da   usare   in  

previsione   di   un   grande   bacino   d’utenza   e   quindi   ad   una   grande  mole   di  

dati.  

 

Medie  

Discreta   difficoltà   è   stata   quella   del   passaggio   da   un   database   relazionale  

classico   ad   un   noSql   di   tipo   “documents   databases”.   Alla   fine   è   risultato  

molto  veloce,  intuitivo  e  semplice  da  utilizzare.  

 

Alte  

Le  maggiori  difficoltà  le  ho  incontrate  nell’utilizzo  di  nuove  tecnologie  quali  

Node.js,  Express.js,  Angular.js  ed  una  metodologia  di  sviluppo  di  tipo  MVC  

che  ha  permesso  una  separazione  strutturata  fra  la  logica  applicativa, a  carico  

del  controller  e  del  model,  e  l'ʹinterfaccia  utente  a  carico  del  view.  

 

Page 37: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

37

Conclusioni    

Lo  sviluppo  di  quest’applicazione  web  ha   lo  scopo  di   facilitare   la  ricerca  di  

candidati,   da   parte   di   un’azienda,   al   fine   di   instaurare   una   collaborazione  

lavorativa   tra   le   due   parti.   Al   giorno   d’oggi,   viste   le   problematiche   che  

affliggono   il   paese   ed   una   disoccupazione   sempre   crescente,   l’utilizzo   di  

questa  webapp  può  aiutare  un  utente  a  cercare  un’occupazione  temporanea  

o  permanente,  ma  pur   sempre  un’occupazione.  Un  piccolo  aiuto  per  uscire  

da  questa  profonda  crisi.  

Attraverso  questa  tesi  ho  appreso  nuove  metodologie  di  sviluppo  e  scoperto  

tecnologie  che   facilitano  davvero   il   compito  dello   sviluppatore   il  quale  non  

deve  creare  sempre  tutto  da  zero,  ma  ha  a  disposizione  framework  e  librerie  

che  permettono  il  write-­‐‑less,  do  more.  

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 38: Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js

Tesi di Laurea – Anno Accademico 2011-2012

38

Bibliografia    AngularJS  —  Superheroic  JavaScript  MVW  Framework,  http://angularjs.org/  

Bottarini,   A.   (2012,   04   17).   Introduzione   a   Node.js.   Tratto   da   HTML.it:  http://www.html.it/pag/32814/introduzione-­‐‑a-­‐‑nodejs/  

Chiarelli,  A.   (2012,   12   4).  AngularJS,   il   supereroe  dei   framework   JavaScript  …di  Google.  Tratto  da  HTML.it:  http://www.html.it/articoli/angularjs-­‐‑il-­‐‑supereroe-­‐‑dei-­‐‑framework-­‐‑javascript-­‐‑di-­‐‑google/  

Chosen  -­‐‑  a   JavaScript  plugin   for   jQuery  and  Prototype  -­‐‑  makes  select  boxes  better,  http://harvesthq.github.com/chosen/  

Express  -­‐‑  node.js  web  application  framework,  http://expressjs.com/  

Fogliata,   T.   (2013,   03   1).   ZURB   Foundation   4:   nuova   versione   del   framework  responsive.   Tratto   da   Tiziano   Fogliata   -­‐‑   web   design,   web   marketing   e  ottimizzazione  dei  siti  web:  http://www.fogliata.net/zurb-­‐‑foundation/  

Foundation:   The   most   advanced   responsive   front-­‐‑end   framework   by   ZURB,  http://foundation.zurb.com/  

jQuery,  http://jquery.com/  

Mongoose,  http://mongoosejs.com/  

Passport  -­‐‑  Simple,  unobtrusive  authentication  for  Node.js,  http://passportjs.org/  

PhoneGap,  http://phonegap.com/