SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
 



      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  
        
Tesi di Laurea – Anno Accademico 2011-2012




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	
  




                                                                      2
Tesi di Laurea – Anno Accademico 2011-2012




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  


                                                3
Tesi di Laurea – Anno Accademico 2011-2012


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).  

                                                 4
Tesi di Laurea – Anno Accademico 2011-2012


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  

                                                 5
Tesi di Laurea – Anno Accademico 2011-2012


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,  

                                                  6
Tesi di Laurea – Anno Accademico 2011-2012


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”.  


                                                               7
Tesi di Laurea – Anno Accademico 2011-2012



N11      Aggiungere  nuovi  campi  nel  profilo  utente.  

N12      Contattare  un  candidato.  

N13      Creare  una  nuova  offerta  di  lavoro.  
  

  

  

                 SUPERADMIN                AZIENDA                    PRIVATO  

Età              -­‐‑                      -­‐‑                       >18  
                                                                      Disoccupato,  
                                           Qualsiasi  tipo  di  
                                                                      studente  in  cerca  
Lavoro           -­‐‑                      azienda  in  cerca  di  
                                                                      di  part-­‐‑time,  
                                           personale  
                                                                      lavoro  extra  
                 Computer                  Computer                   Computer  
Tecnologia       fisso/portatile           fisso/portatile            fisso/portatile,  
                 aziendale                 aziendale                  smartphone  
                                                                      Licenza  media,  
                                                                      licenza  media  
Educazione   -­‐‑                          -­‐‑  
                                                                      superiore,  laurea,  
                                                                      Ph.D,  master  
                 N10                       N1                         N2  
                 N11                       N2                         N3  
                                           N4                         N5  
                                           N5                         N8  
Need                                       N6  
                                           N7  
                                           N9  
                                           N12  
                                           N13  
  
  
  
  
  
  
  
  



                                               8
Tesi di Laurea – Anno Accademico 2011-2012



Persona  




                                                           
  
  
  

  

                              9
Tesi di Laurea – Anno Accademico 2011-2012


  

  

  




                                                    
  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

                       10
Tesi di Laurea – Anno Accademico 2011-2012




Informazioni  di  Contesto  
Funzionalità  
  

ID     Funzionalità                Descrizione                                      Maps  to  

F1     Ricerca  candidati          Una  lista  di  candidati  è  visualizzata.   N1  
                                  È  visualizzato  in  dettaglio  il  profilo  
F2     Visualizza  il  profilo                                                      N1,  N3  
                                  di  un  candidato.  
      Visualizza  il              È  visualizzato  il  curriculum  di  un  
F3                                                                                  N5,  N6  
      curriculum                  candidato.  
                                  Una  lista  di  lavori  è  visualizzata,  
      Visualizza  i  lavori  in  
F4                                con  possibilità  di  entrare  in                 N3  
      programma  
                                  dettaglio.  
                                  Sono  visualizzate  tutte  le  offerte  di  
      Visualizza  offerte  in   lavoro  che  un’azienda  ha  creato  con  
F5                                                                                  N7  
      precedenza  create          possibilità  di  modificarle,  clonarle  o  
                                  archiviarle.  
                                  Una  notifica  è  visualizzata  in  caso  di  
      Ricevi                      una  richiesta  di  lavoro  o  di  altra          N2,  N4,  
F6  
      comunicazioni               comunicazione  da  parte                          N11  
                                  dell’azienda  o  del  sistema.  
                                  Una  notifica  sarà  inviata  al  
F7   Invia  comunicazioni                                                           N11,  N12  
                                  candidato  scelto  o  a  tutti  gli  iscritti  
      Rispondi  a  una            Una  notifica  sarà  inviata  all’azienda  
F8                                                                                  N8  
      richiesta  di  lavoro       con  risposta  affermativa  o  negativa  
                                  È  visualizzata  una  semplice  
      Valuta  una  
                                  valutazione  a  cinque  stelle  per  
F9   prestazione                                                                    N4  
                                  valutare  un  lavoro  svolto  da  un  
      lavorativa  
                                  candidato  
                                  È  visualizzata  una  scheda  con  tutti  i  
      Crea  un  nuovo  
F10                               dettagli  per  la  creazione  di  un              N7,  N13  
      lavoro  
                                  nuovo  lavoro  
  
  
  
  
  
  



                                            11
Tesi di Laurea – Anno Accademico 2011-2012



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.  


                                                  12
Tesi di Laurea – Anno Accademico 2011-2012


     §   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  

                                                13
Tesi di Laurea – Anno Accademico 2011-2012


          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.  

                                                14
Tesi di Laurea – Anno Accademico 2011-2012


  

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  

                                                15
Tesi di Laurea – Anno Accademico 2011-2012


              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.  


                                                16
Tesi di Laurea – Anno Accademico 2011-2012


  

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.      

  

                                                   17
Tesi di Laurea – Anno Accademico 2011-2012


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.  

  

  

  



                                                18
Tesi di Laurea – Anno Accademico 2011-2012




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  




                                                                                                           
                                               19
Tesi di Laurea – Anno Accademico 2011-2012




                                                    
  
  




                       20
Tesi di Laurea – Anno Accademico 2011-2012




Vocabolario  

Termini  vocabolario       Descrizione  
                           Sezione  dove  l’utente  modifica  le  impostazioni  di  
Account  setting  
                           ricezione  notifica.  
                           Pagina  dove  l’utente  può  modificare  i  propri  dati  
Anagrafica  
                           anagrafici.  
                           Visualizza  tutti  i  lavori  che  la  ditta  ha  creato  con  
Archivio                   possibilità  di  clonarli  o  visualizzare  i  candidati  
                           selezionati  per  quel  lavoro.  
                           L’azienda  può  scegliere  se  cercare  un  candidato  in  
Cerca  candidato           una  ricerca  precedentemente  salvata  o  effettuare  
                           una  nuova  ricerca.  
                           Viene  visualizzata  la  stessa  view  di  “Crea  lavoro”  
Clona  lavoro              con  i  campi  già  riempiti,  con  possibilità  di  
                           modificarli.  
Crea  lavoro               Pagina  di  creazione  di  un  nuovo  lavoro.  
                                        21
Tesi di Laurea – Anno Accademico 2011-2012



                              Operazione  con  cui  un  candidato  visualizza  il  
                              proprio  curriculum  o  un’azienda  visualizza  quello  
Curriculum  
                              di  un  candidato  selezionato  con  possibilità  di  
                              scaricarlo.  
Dettaglio  offerte            Visualizza  l’offerta  di  lavoro  in  dettaglio.  
Esperienze  e                 Pagina  dove  l’utente  può  modificare  le  proprie  
disponibilità                 esperienze  e  disponibilità.  
                              Pagina  dove  l’azienda  può  modificare  la  propria  
Modifica  info  azienda  
                              ragione  sociale.  
                              Viene  visualizzata  la  stessa  view  di  “Crea  lavoro”  
Modifica  offerta             con  i  campi  già  riempiti,  con  possibilità  di  
                              modificarli.  
                              Stessa  view  di  “Scelta  caratteristiche  candidato”  
Modifica  requisiti  
                              con  i  campi  dei  requisiti,  che  un  candidato  deve  
candidato  
                              avere,  già  riempiti  e  la  possibilità  di  modificarli.  
                              Pagina  dove  l’utente  o  l’azienda  visualizza  le  
Notifiche  
                              notifiche.  
                              Lista  di  lavori  attivi  che  l’azienda  sceglie  di  clonare  
Offerte  attive  
                              o  modificare.  
                              Lista  delle  offerte  di  lavoro  per  cui  un  candidato  è  
Offerte  di  lavoro  
                              stato  selezionato.  
                              Pagina  di  accesso  con  cui  si  apre  la  webapp  per  
Pagina  azienda  
                              un’azienda.  
                              Pagina  iniziale  dove  l'ʹutente  registrato  si  logga  al  
Pagina  login  
                              sistema.  
                              Pagina  di  accesso  con  cui  si  apre  la  webapp  per  un  
Pagina  personale  
                              utente  privato.  
                              Pagina  dove  l’utente  può  modificare  i  propri  dati  
Personali  
                              personali.  
                              Pagina  con  cui  l’azienda  chiede  all’admin  la  
Registra  azienda  
                              registrazione.  
Registrazione                 Pagina  di  registrazione  dove  l’utente  si  registra.  

Ricerche  salvate             Lista  delle  ricerche  salvate  in  precedenza.  
Scelta  caratteristiche       L’azienda  visualizza  la  pagina  con  la  scelta  dei  
candidato                     requisiti  che  un  candidato  deve  avere.  
                              Lista  di  candidati  aventi  caratteristiche  che  
Seleziona  candidato          l’azienda  ha  scelto  con  possibilità  di  ordinarli,  
                              selezionarli,  contattarli  e  salvare  tale  ricerca.  
                              Pagina  dove  sono  elencati  tutti  i  lavori  che  un  
Storico  
                              candidato  ha  portato  a  termine.  

                                            22
Tesi di Laurea – Anno Accademico 2011-2012




Bozza  Strutturale
  
SK 0: Pagina Login       
                                                                    SK 1.1: Pagina Registrazione  

    
  



  

                                            
               SK 1.2: Registrazione Tablet




  

  

  
  
                                                      SK 1.3: Registrazione Smartphone

  

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.  

  




                                               23
Tesi di Laurea – Anno Accademico 2011-2012


        SK 2: Home Page Utente




                 SK 2.1: Home Page Tablet  




  
  
  
  
  
  
  
  
  

  
                                                            SK 2.2: Home Page Smartphone
  

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.  

  




                                              24
Tesi di Laurea – Anno Accademico 2011-2012


       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.  

                                             25
Tesi di Laurea – Anno Accademico 2011-2012


SK 4: Dettaglio Offerta Admin




                SK 4.1: Dettaglio Offerta Admin Mobile  




                                                                                                    
  

  

  

  

  
                                                 SK 4.2: Dettaglio Offerta Admin Smartphone
  

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

versione  desktop  sia  in  quella  mobile.    

  

  

  

  

  




                                                26
Tesi di Laurea – Anno Accademico 2011-2012




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)  




                                                  27
Tesi di Laurea – Anno Accademico 2011-2012




                                                                                                   
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)  

  




                                             28
Tesi di Laurea – Anno Accademico 2011-2012




                                                                                                       
  
  
  
  
  
  
  
  




                                                                                                     
  
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  

  

  

                                               29
Tesi di Laurea – Anno Accademico 2011-2012




Architettura  Software  
  
  




                                                        
  
  


                           30
Tesi di Laurea – Anno Accademico 2011-2012


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.  




                                               31
Tesi di Laurea – Anno Accademico 2011-2012




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  

                                                32
Tesi di Laurea – Anno Accademico 2011-2012


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.  

  

  




                                                  33
Tesi di Laurea – Anno Accademico 2011-2012




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  

                                              34
Tesi di Laurea – Anno Accademico 2011-2012


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.  




                                            35
Tesi di Laurea – Anno Accademico 2011-2012




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.  

  


                                               36
Tesi di Laurea – Anno Accademico 2011-2012




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.  

  

  

  

  

  

  

  

  

  

  

  

  

  




                                               37
Tesi di Laurea – Anno Accademico 2011-2012




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/  




  

  

  

  




                                                38

Mais conteúdo relacionado

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

Angelo_Bai_Curriculum
Angelo_Bai_CurriculumAngelo_Bai_Curriculum
Angelo_Bai_CurriculumAngelo Bai
 
CurriculumVitae_OnofrioComes
CurriculumVitae_OnofrioComesCurriculumVitae_OnofrioComes
CurriculumVitae_OnofrioComesonofrio comes
 
Studio e implementazione di uno strumento di configurazione e visualizzazione...
Studio e implementazione di uno strumento di configurazione e visualizzazione...Studio e implementazione di uno strumento di configurazione e visualizzazione...
Studio e implementazione di uno strumento di configurazione e visualizzazione...Matteo Miotto
 
Flt.lab Business Presentation
Flt.lab Business PresentationFlt.lab Business Presentation
Flt.lab Business PresentationFLT.lab
 
Enjoineering - Web Marketing Universitario - Presentazione 4 aprile
Enjoineering - Web Marketing Universitario - Presentazione 4 aprileEnjoineering - Web Marketing Universitario - Presentazione 4 aprile
Enjoineering - Web Marketing Universitario - Presentazione 4 aprileenjoineering
 
LabTECH 2018 - Cultura Tecnica Passione tecnologica
LabTECH 2018 - Cultura Tecnica Passione tecnologicaLabTECH 2018 - Cultura Tecnica Passione tecnologica
LabTECH 2018 - Cultura Tecnica Passione tecnologicaFondazione Aldini Valeriani
 
SMAU Firenze 2014 - Siti ed Applicazioni Web nel Cloud: piccoli team e svilup...
SMAU Firenze 2014 - Siti ed Applicazioni Web nel Cloud: piccoli team e svilup...SMAU Firenze 2014 - Siti ed Applicazioni Web nel Cloud: piccoli team e svilup...
SMAU Firenze 2014 - Siti ed Applicazioni Web nel Cloud: piccoli team e svilup...Paolo Dadda
 
Progettazione User-Centered di un sistema di mHealth
Progettazione User-Centered di un sistema di mHealthProgettazione User-Centered di un sistema di mHealth
Progettazione User-Centered di un sistema di mHealthGloria Beccalli
 
FLTlab Business Presentation 2012
FLTlab Business Presentation 2012FLTlab Business Presentation 2012
FLTlab Business Presentation 2012FLT.lab
 
Curriculum di Valeria Meschia
Curriculum di Valeria MeschiaCurriculum di Valeria Meschia
Curriculum di Valeria MeschiaValeria Meschia
 
Tesi di Laurea Paolo Selce
Tesi di Laurea Paolo SelceTesi di Laurea Paolo Selce
Tesi di Laurea Paolo SelcePaolo Selce
 
Usabilità e User Experience Design: #3 Test e Performance sui Motori di Ricerca
Usabilità e User Experience Design: #3 Test e Performance sui Motori di RicercaUsabilità e User Experience Design: #3 Test e Performance sui Motori di Ricerca
Usabilità e User Experience Design: #3 Test e Performance sui Motori di RicercaFormazioneTurismo
 

Semelhante a Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js (20)

Relazione
RelazioneRelazione
Relazione
 
Angelo_Bai_Curriculum
Angelo_Bai_CurriculumAngelo_Bai_Curriculum
Angelo_Bai_Curriculum
 
CurriculumVitae_OnofrioComes
CurriculumVitae_OnofrioComesCurriculumVitae_OnofrioComes
CurriculumVitae_OnofrioComes
 
Studio e implementazione di uno strumento di configurazione e visualizzazione...
Studio e implementazione di uno strumento di configurazione e visualizzazione...Studio e implementazione di uno strumento di configurazione e visualizzazione...
Studio e implementazione di uno strumento di configurazione e visualizzazione...
 
Flt.lab Business Presentation
Flt.lab Business PresentationFlt.lab Business Presentation
Flt.lab Business Presentation
 
Cv impara
Cv imparaCv impara
Cv impara
 
Cv_a_impara
Cv_a_imparaCv_a_impara
Cv_a_impara
 
Enjoineering - Web Marketing Universitario - Presentazione 4 aprile
Enjoineering - Web Marketing Universitario - Presentazione 4 aprileEnjoineering - Web Marketing Universitario - Presentazione 4 aprile
Enjoineering - Web Marketing Universitario - Presentazione 4 aprile
 
LabTECH 2018 - Cultura Tecnica Passione tecnologica
LabTECH 2018 - Cultura Tecnica Passione tecnologicaLabTECH 2018 - Cultura Tecnica Passione tecnologica
LabTECH 2018 - Cultura Tecnica Passione tecnologica
 
SMAU Firenze 2014 - Siti ed Applicazioni Web nel Cloud: piccoli team e svilup...
SMAU Firenze 2014 - Siti ed Applicazioni Web nel Cloud: piccoli team e svilup...SMAU Firenze 2014 - Siti ed Applicazioni Web nel Cloud: piccoli team e svilup...
SMAU Firenze 2014 - Siti ed Applicazioni Web nel Cloud: piccoli team e svilup...
 
Progettazione User-Centered di un sistema di mHealth
Progettazione User-Centered di un sistema di mHealthProgettazione User-Centered di un sistema di mHealth
Progettazione User-Centered di un sistema di mHealth
 
FLTlab Business Presentation 2012
FLTlab Business Presentation 2012FLTlab Business Presentation 2012
FLTlab Business Presentation 2012
 
Curriculum di Valeria Meschia
Curriculum di Valeria MeschiaCurriculum di Valeria Meschia
Curriculum di Valeria Meschia
 
CV WEB Standard Solution
CV WEB Standard SolutionCV WEB Standard Solution
CV WEB Standard Solution
 
Presentazione cv easy
Presentazione cv easyPresentazione cv easy
Presentazione cv easy
 
Tesi di Laurea Paolo Selce
Tesi di Laurea Paolo SelceTesi di Laurea Paolo Selce
Tesi di Laurea Paolo Selce
 
Presentazione tesi
Presentazione tesiPresentazione tesi
Presentazione tesi
 
DS4Biz - Data Science for Business
DS4Biz - Data Science for BusinessDS4Biz - Data Science for Business
DS4Biz - Data Science for Business
 
UserPie
UserPieUserPie
UserPie
 
Usabilità e User Experience Design: #3 Test e Performance sui Motori di Ricerca
Usabilità e User Experience Design: #3 Test e Performance sui Motori di RicercaUsabilità e User Experience Design: #3 Test e Performance sui Motori di Ricerca
Usabilità e User Experience Design: #3 Test e Performance sui Motori di Ricerca
 

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

  • 1.   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    
  • 2. Tesi di Laurea – Anno Accademico 2011-2012 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   2
  • 3. Tesi di Laurea – Anno Accademico 2011-2012 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   3
  • 4. Tesi di Laurea – Anno Accademico 2011-2012 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).   4
  • 5. Tesi di Laurea – Anno Accademico 2011-2012 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   5
  • 6. Tesi di Laurea – Anno Accademico 2011-2012 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,   6
  • 7. Tesi di Laurea – Anno Accademico 2011-2012 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”.   7
  • 8. Tesi di Laurea – Anno Accademico 2011-2012 N11   Aggiungere  nuovi  campi  nel  profilo  utente.   N12   Contattare  un  candidato.   N13   Creare  una  nuova  offerta  di  lavoro.           SUPERADMIN   AZIENDA   PRIVATO   Età   -­‐‑   -­‐‑   >18   Disoccupato,   Qualsiasi  tipo  di   studente  in  cerca   Lavoro   -­‐‑   azienda  in  cerca  di   di  part-­‐‑time,   personale   lavoro  extra   Computer   Computer   Computer   Tecnologia   fisso/portatile   fisso/portatile   fisso/portatile,   aziendale   aziendale   smartphone   Licenza  media,   licenza  media   Educazione   -­‐‑   -­‐‑   superiore,  laurea,   Ph.D,  master   N10   N1   N2   N11   N2   N3   N4   N5   N5   N8   Need   N6   N7   N9   N12   N13                   8
  • 9. Tesi di Laurea – Anno Accademico 2011-2012 Persona             9
  • 10. Tesi di Laurea – Anno Accademico 2011-2012                                         10
  • 11. Tesi di Laurea – Anno Accademico 2011-2012 Informazioni  di  Contesto   Funzionalità     ID   Funzionalità   Descrizione   Maps  to   F1   Ricerca  candidati   Una  lista  di  candidati  è  visualizzata.   N1   È  visualizzato  in  dettaglio  il  profilo   F2   Visualizza  il  profilo   N1,  N3   di  un  candidato.   Visualizza  il   È  visualizzato  il  curriculum  di  un   F3   N5,  N6   curriculum   candidato.   Una  lista  di  lavori  è  visualizzata,   Visualizza  i  lavori  in   F4   con  possibilità  di  entrare  in   N3   programma   dettaglio.   Sono  visualizzate  tutte  le  offerte  di   Visualizza  offerte  in   lavoro  che  un’azienda  ha  creato  con   F5   N7   precedenza  create   possibilità  di  modificarle,  clonarle  o   archiviarle.   Una  notifica  è  visualizzata  in  caso  di   Ricevi   una  richiesta  di  lavoro  o  di  altra   N2,  N4,   F6   comunicazioni   comunicazione  da  parte   N11   dell’azienda  o  del  sistema.   Una  notifica  sarà  inviata  al   F7   Invia  comunicazioni   N11,  N12   candidato  scelto  o  a  tutti  gli  iscritti   Rispondi  a  una   Una  notifica  sarà  inviata  all’azienda   F8   N8   richiesta  di  lavoro   con  risposta  affermativa  o  negativa   È  visualizzata  una  semplice   Valuta  una   valutazione  a  cinque  stelle  per   F9   prestazione   N4   valutare  un  lavoro  svolto  da  un   lavorativa   candidato   È  visualizzata  una  scheda  con  tutti  i   Crea  un  nuovo   F10   dettagli  per  la  creazione  di  un   N7,  N13   lavoro   nuovo  lavoro               11
  • 12. Tesi di Laurea – Anno Accademico 2011-2012 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.   12
  • 13. Tesi di Laurea – Anno Accademico 2011-2012 § 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   13
  • 14. Tesi di Laurea – Anno Accademico 2011-2012 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.   14
  • 15. Tesi di Laurea – Anno Accademico 2011-2012   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   15
  • 16. Tesi di Laurea – Anno Accademico 2011-2012 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.   16
  • 17. Tesi di Laurea – Anno Accademico 2011-2012   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.         17
  • 18. Tesi di Laurea – Anno Accademico 2011-2012 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.         18
  • 19. Tesi di Laurea – Anno Accademico 2011-2012 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     19
  • 20. Tesi di Laurea – Anno Accademico 2011-2012       20
  • 21. Tesi di Laurea – Anno Accademico 2011-2012 Vocabolario   Termini  vocabolario   Descrizione   Sezione  dove  l’utente  modifica  le  impostazioni  di   Account  setting   ricezione  notifica.   Pagina  dove  l’utente  può  modificare  i  propri  dati   Anagrafica   anagrafici.   Visualizza  tutti  i  lavori  che  la  ditta  ha  creato  con   Archivio   possibilità  di  clonarli  o  visualizzare  i  candidati   selezionati  per  quel  lavoro.   L’azienda  può  scegliere  se  cercare  un  candidato  in   Cerca  candidato   una  ricerca  precedentemente  salvata  o  effettuare   una  nuova  ricerca.   Viene  visualizzata  la  stessa  view  di  “Crea  lavoro”   Clona  lavoro   con  i  campi  già  riempiti,  con  possibilità  di   modificarli.   Crea  lavoro   Pagina  di  creazione  di  un  nuovo  lavoro.   21
  • 22. Tesi di Laurea – Anno Accademico 2011-2012 Operazione  con  cui  un  candidato  visualizza  il   proprio  curriculum  o  un’azienda  visualizza  quello   Curriculum   di  un  candidato  selezionato  con  possibilità  di   scaricarlo.   Dettaglio  offerte   Visualizza  l’offerta  di  lavoro  in  dettaglio.   Esperienze  e   Pagina  dove  l’utente  può  modificare  le  proprie   disponibilità   esperienze  e  disponibilità.   Pagina  dove  l’azienda  può  modificare  la  propria   Modifica  info  azienda   ragione  sociale.   Viene  visualizzata  la  stessa  view  di  “Crea  lavoro”   Modifica  offerta   con  i  campi  già  riempiti,  con  possibilità  di   modificarli.   Stessa  view  di  “Scelta  caratteristiche  candidato”   Modifica  requisiti   con  i  campi  dei  requisiti,  che  un  candidato  deve   candidato   avere,  già  riempiti  e  la  possibilità  di  modificarli.   Pagina  dove  l’utente  o  l’azienda  visualizza  le   Notifiche   notifiche.   Lista  di  lavori  attivi  che  l’azienda  sceglie  di  clonare   Offerte  attive   o  modificare.   Lista  delle  offerte  di  lavoro  per  cui  un  candidato  è   Offerte  di  lavoro   stato  selezionato.   Pagina  di  accesso  con  cui  si  apre  la  webapp  per   Pagina  azienda   un’azienda.   Pagina  iniziale  dove  l'ʹutente  registrato  si  logga  al   Pagina  login   sistema.   Pagina  di  accesso  con  cui  si  apre  la  webapp  per  un   Pagina  personale   utente  privato.   Pagina  dove  l’utente  può  modificare  i  propri  dati   Personali   personali.   Pagina  con  cui  l’azienda  chiede  all’admin  la   Registra  azienda   registrazione.   Registrazione   Pagina  di  registrazione  dove  l’utente  si  registra.   Ricerche  salvate   Lista  delle  ricerche  salvate  in  precedenza.   Scelta  caratteristiche   L’azienda  visualizza  la  pagina  con  la  scelta  dei   candidato   requisiti  che  un  candidato  deve  avere.   Lista  di  candidati  aventi  caratteristiche  che   Seleziona  candidato   l’azienda  ha  scelto  con  possibilità  di  ordinarli,   selezionarli,  contattarli  e  salvare  tale  ricerca.   Pagina  dove  sono  elencati  tutti  i  lavori  che  un   Storico   candidato  ha  portato  a  termine.   22
  • 23. Tesi di Laurea – Anno Accademico 2011-2012 Bozza  Strutturale   SK 0: Pagina Login       SK 1.1: Pagina Registrazione             SK 1.2: Registrazione Tablet         SK 1.3: Registrazione Smartphone   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.     23
  • 24. Tesi di Laurea – Anno Accademico 2011-2012 SK 2: Home Page Utente SK 2.1: Home Page Tablet                       SK 2.2: Home Page Smartphone   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.     24
  • 25. Tesi di Laurea – Anno Accademico 2011-2012 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.   25
  • 26. Tesi di Laurea – Anno Accademico 2011-2012 SK 4: Dettaglio Offerta Admin SK 4.1: Dettaglio Offerta Admin Mobile               SK 4.2: Dettaglio Offerta Admin Smartphone   Il   back-­‐‑end   si   presenta   nella   medesima   versione   del   front-­‐‑end   sia   nella   versione  desktop  sia  in  quella  mobile.               26
  • 27. Tesi di Laurea – Anno Accademico 2011-2012 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)   27
  • 28. Tesi di Laurea – Anno Accademico 2011-2012               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)     28
  • 29. Tesi di Laurea – Anno Accademico 2011-2012                       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       29
  • 30. Tesi di Laurea – Anno Accademico 2011-2012 Architettura  Software             30
  • 31. Tesi di Laurea – Anno Accademico 2011-2012 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.   31
  • 32. Tesi di Laurea – Anno Accademico 2011-2012 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   32
  • 33. Tesi di Laurea – Anno Accademico 2011-2012 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.       33
  • 34. Tesi di Laurea – Anno Accademico 2011-2012 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   34
  • 35. Tesi di Laurea – Anno Accademico 2011-2012 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.   35
  • 36. Tesi di Laurea – Anno Accademico 2011-2012 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.     36
  • 37. Tesi di Laurea – Anno Accademico 2011-2012 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.                             37
  • 38. Tesi di Laurea – Anno Accademico 2011-2012 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/           38