ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015
Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js
-
Upload
flavio-bonta -
Category
Documents
-
view
1.022 -
download
1
Transcript of Una webapp per il servizio di e-receuitment: progettazione e sviluppo con database nosql e node.js
UNIVERSITÀ DEGLI STUDI DELL’AQUILA
Facoltà di Scienze MM.FF.NN
TESI DI LAUREA
“UNA WEBAPP PER IL SERVIZIO DI
E-‐‑RECRUITMENT: PROGETTAZIONE E SVILUPPO
CON DATABASE NOSQL E NODE.JS”
Corso di Laurea di I Livello in Informatica
Candidato Relatore
FLAVIO BONTA’ Dott. Ivano Malavolta
Anno Accademico 2011/2012
Tesi di Laurea – Anno Accademico 2011-2012
2
Indice Generale INTRODUZIONE ......................................................................................................... 3
ANALISI STRATEGICA .............................................................................................. 3 PANORAMICA DEL PRODOTTO .......................................................................................... 3 ANALISI DELLA CONCORRENZA ........................................................................................ 4
Erecruitment Software .................................................................................................... 4 HR-‐Manager .................................................................................................................... 4 Taleo ................................................................................................................................ 5 Jobvite ............................................................................................................................. 6
RICERCA SUGLI UTENTI ...................................................................................................... 7 PERSONA ............................................................................................................................. 9
INFORMAZIONI DI CONTESTO ............................................................................ 11 FUNZIONALITÀ ................................................................................................................. 11 REQUISITI .......................................................................................................................... 12
Requisiti Funzionali ........................................................................................................ 12 Requisiti non Funzionali ................................................................................................. 14
CONTENUTI ....................................................................................................................... 16 SCENARI ............................................................................................................................ 17
Topofone S.p.A. ............................................................................................................. 17 Arimani .......................................................................................................................... 18 Pranzo di Natale ............................................................................................................ 18
STRUTTURA DELL’APPLICAZIONE ...................................................................... 19 MAPPA .............................................................................................................................. 19 VOCABOLARIO .................................................................................................................. 21
BOZZA STRUTTURALE ............................................................................................ 23
INTERFACCIA UTENTE ........................................................................................... 27
ARCHITETTURA SOFTWARE ................................................................................. 30
SORGENTI DEI DATI ............................................................................................... 32
TECNOLOGIE USATE ............................................................................................... 34
RIFLESSIONI .............................................................................................................. 36 SOLUZIONI SMART ............................................................................................................ 36 DIFFICOLTÀ INCONTRATE ................................................................................................ 36
Basse ............................................................................................................................. 36 Medie ............................................................................................................................ 36 Alte ................................................................................................................................ 36
CONCLUSIONI .......................................................................................................... 37
BIBLIOGRAFIA .......................................................................................................... 38
Tesi di Laurea – Anno Accademico 2011-2012
3
Introduzione Progettazione e sviluppo in modalità AGILE di un’applicazione web per la
gestione e la ricerca di profili professionali (curriculum).
Il progetto e stato svolto mediante l'ʹutilizzo di tecnologie client/server
javascript (node.js), database NoSql (MongoDB) finalizzate alla realizzazione
di un backend REST based e di un rich client in HTML5 compatibile con
browser desktop e mobile.
Analisi Strategica Panoramica del Prodotto NetCasting è una webapp che semplifica sensibilmente la selezione di
candidati, finalizzati all’assunzione temporanea e/o permanente.
Un’azienda in cerca di personale, può selezionare il suo candidato
attraverso molteplici informazioni. Scelti i parametri di ricerca, saranno
elencati i candidati aventi tali requisiti che possono essere riordinati secondo
un ordine desiderato: alfabetico, in base al suo feedback medio di
gradimento ricevuto in precedenti lavori, in base alla sua età, in base alla
distanza che intercorre tra il luogo di lavoro e la residenza del candidato.
Scelti i candidati, l’azienda può inviargli una notifica. Raggiunto il numero
necessario di candidati che hanno confermato la loro disponibilità, la
selezione sarà chiusa.
Un utente privato che s’iscrive ha molte probabilità di trovare un
lavoro grazie a questo canale di comunicazione diretto azienda-‐‑lavoratore.
Una volta effettuato il login, l’utente visualizza immediatamente la sua
panoramica del profilo, dove sono in risalto i lavori che ha in programma o
per cui deve ancora confermare la propria presenza. Quando un utente
Tesi di Laurea – Anno Accademico 2011-2012
4
riceve una richiesta di un lavoro, può confermare o declinare l’invito. Al
termine di una prestazione lavorativa, l’utente riceve un feedback di
valutazione che farà media con i precedenti ricevuti.
Analisi della Concorrenza
Effettuando una ricerca sul e-‐‑recruitment su google vengono fuori molti
risultati. In campo internazionale i prodotti meglio piazzati nei risultati sono
i seguenti:
Erecruitment Software
E’ un applicazione web online che integra un centro di carriera
interattiva al sito dell’azienda. E’ costruito su una piattaforma
PHP/MYSQL/Linux che consente facilmente di distribuire un sito di carriera
completamente funzionale e personalizzato in base ai requisiti dell’utente.
Consente di automatizzare l'ʹintero processo di assunzione, dalla creazione di
offerte di lavoro al pubblicare i requisiti di lavoro, attirando i candidati,
qualificando chi è in cerca di lavoro; riprendere l'ʹelaborazione , e la selezione
finale.
Il pacchetto completo costa US $ 2500 e fornisce i seguenti servizi:
● Cinque campioni di home page personalizzata
● Integrazione con sito web esistente
● Enterprise ATS software
● Manutenzione annuale
● Setup e installazione
● Hosting annuale
HR-‐‑Manager
HR manager Talent Solutions è un’azienda norvegese la quale offre
dei servizi di recruiting sotto forma di SaaS (Software as a Service).
Tesi di Laurea – Anno Accademico 2011-2012
5
Ovviamente trattandosi di un SaaS il cliente interessato ad usufruire di tale
servizio dovrà pagare una quota mensile (non specificata sul sito).
Il sito non entra nei dettagli del software, si limita solo a mostrare alcuni
screenshot. L’unica informazione a riguardo è che il software è “fully hosted”
senza che l’azienda utilizzatrice del servizio debba scaricare nulla sui propri
computer.
Tra le aziende utilizzatrici di tale servizio ve ne sono alcuni di molto
iportanti quali Mercedes Benz, Bayer e BNP Paribas.
A differenza dei precedenti servizi questo sito è stato notato perchè
usufruiva degli annunci sponsorizzati di Google (parola di ricerca utilizzata
“e recruitment” oppure “e-‐‑recruitment”).
Taleo
Taleo ha costruito un completo cloud verticale di Talent
Management, ottimizzato per le esigenze di gestione dei talenti. Questo
include un'ʹinfrastruttura scalabile, elastica, e sicura, una piattaforma
software che è aperta, mobile e flessibile, e una suite completa di applicazioni
di gestione dei talenti. E tutto questo è supportato da un grande ecosistema
di clienti, partner e candidati.
Le prime applicazioni di gestione dei talenti di Taleo hanno sostenuto gli
sforzi di reclutamento di alcune delle aziende più grandi ed esigenti del
mondo. Questo obiettivo iniziale ha aiutato Taleo a costruire la più completa
piattaforma di cloud verticale del settore. Dal primo giorno, hanno
progettato l’architettura per gestire grandi volumi di utenti e transazioni,
sostenendo i più alti livelli di sicurezza. Come un sistema pubblico di facciata
usato da milioni di candidati al giorno, Taleo ha dovuto offrire facilità d'ʹuso,
scalabilità e uptime dall'ʹinizio. Infine, con un diverso ecosistema di servizi di
terzi come background checks, le valutazioni di screening e di credito
d'ʹimposta, la piattaforma software di Taleo richiede un integrazione aperta e
Tesi di Laurea – Anno Accademico 2011-2012
6
flessibile.
Tra i clienti di maggior prestigio della piattaforma Taleo abbiamo:
● H3G
● Banque National du Canada
● BIC
● La città di Chicago
● HP
● IBM
● Rolls-‐‑Royce
● Tetra Pak
● United Airlines
● Whirlpool
e molti altri per un totale di 87 clienti di alto livello.
Il prodotto si divide in base alle esigenze delle aziende (numero di
dipendenti). Si hanno quindi 3 tipologie differenti:
● Business edition < 5.000 impiegati
● Enterprise 5.000 -‐‑ 13.000 impiegati
● Large Enterprise > 13.000 impiegati
Il modello di business che propone la Taleo è quello del SaaS (Software as a
Service). Di conseguenza il guadagno dell’azienda avviene facendo pagare ai
clienti una quota d’iscrizione ad un servizio.
Jobvite
Jobvite è un servizio di recruiting fondato sull’utilizzo dei social
network. La filosofia di fondo alla base del progetto è quella del “passaparola
digitale”.
Jobvite offre la possibilità alle aziende di mandare inviti di lavoro tramite i
vari social network, facebook, twitter, linkedin etc. dando poi la possibilità
agli utenti o di accettare il lavoro, oppure di inoltrarlo ai propri contatti,
Tesi di Laurea – Anno Accademico 2011-2012
7
magari un amico esperto proprio nel ruolo richiesto dall’azienda ed in cerca
di lavoro.
Jobvite offre anche un sistema per la ricerca del candidato ideale mediante
l’analisi dei profili dei social network. Fornisce anche un servizio di
creazione di un app personalizzata sulla pagina facebook dalla quale è
possibile vedere le offerte di lavoro dell’azienda, rispondere ad essa oppure
inviarla a qualcuno che noi sappiamo possa essere interessato. Permette
inoltre di poter creare un career site della compagnia.
Oltre all’aspetto social Jobvite fornisce anche un software di tracking
management, un sistema in grado di fornire statistiche in tempo reale, un
integrazione con il calendario di outlook, un sistema per gestire in maniera
autonoma l’invio di email e l’archiviazione in base al candidato scelto.
N.B. I loghi delle applicazioni concorrenti sono stati da me rielaborati per avere una presentazione omogenea.
Ricerca sugli Utenti
ID NEED
N1 Eseguire ricerche sui profili.
N2 Ricevere notifiche.
N3 Aggiornare/visualizzare il proprio profilo.
N4 Valutare una prestazione lavorativa.
N5 Esportare curriculum/profilo in PDF.
N6 Esportare una ricerca effettuata in PDF, Excel.
N7 Modificare/archiviare/clonare un’offerta di lavoro.
N8 Confermare/rifiutare una proposta di lavoro.
N9 Bloccare un utente.
N10 Creare un nuovo profilo “azienda”.
Tesi di Laurea – Anno Accademico 2011-2012
8
N11 Aggiungere nuovi campi nel profilo utente.
N12 Contattare un candidato.
N13 Creare una nuova offerta di lavoro.
SUPERADMIN AZIENDA PRIVATO
Età -‐‑ -‐‑ >18
Lavoro -‐‑ Qualsiasi tipo di azienda in cerca di personale
Disoccupato, studente in cerca di part-‐‑time, lavoro extra
Tecnologia Computer fisso/portatile aziendale
Computer fisso/portatile aziendale
Computer fisso/portatile, smartphone
Educazione -‐‑ -‐‑
Licenza media, licenza media superiore, laurea, Ph.D, master
Need
N10 N11
N1 N2 N4 N5 N6 N7 N9 N12 N13
N2 N3 N5 N8
Tesi di Laurea – Anno Accademico 2011-2012
9
Persona
Tesi di Laurea – Anno Accademico 2011-2012
10
Tesi di Laurea – Anno Accademico 2011-2012
11
Informazioni di Contesto Funzionalità
ID Funzionalità Descrizione Maps to
F1 Ricerca candidati Una lista di candidati è visualizzata. N1
F2 Visualizza il profilo È visualizzato in dettaglio il profilo di un candidato.
N1, N3
F3 Visualizza il curriculum
È visualizzato il curriculum di un candidato.
N5, N6
F4 Visualizza i lavori in programma
Una lista di lavori è visualizzata, con possibilità di entrare in dettaglio.
N3
F5 Visualizza offerte in precedenza create
Sono visualizzate tutte le offerte di lavoro che un’azienda ha creato con possibilità di modificarle, clonarle o archiviarle.
N7
F6 Ricevi comunicazioni
Una notifica è visualizzata in caso di una richiesta di lavoro o di altra comunicazione da parte dell’azienda o del sistema.
N2, N4, N11
F7 Invia comunicazioni Una notifica sarà inviata al candidato scelto o a tutti gli iscritti N11, N12
F8 Rispondi a una richiesta di lavoro
Una notifica sarà inviata all’azienda con risposta affermativa o negativa N8
F9 Valuta una prestazione lavorativa
È visualizzata una semplice valutazione a cinque stelle per valutare un lavoro svolto da un candidato
N4
F10 Crea un nuovo lavoro
È visualizzata una scheda con tutti i dettagli per la creazione di un nuovo lavoro
N7, N13
Tesi di Laurea – Anno Accademico 2011-2012
12
Requisiti Requisiti Funzionali
R1. Registrazione. Un utente deve avere la possibilità di registrarsi al sistema
per avere accesso a tutte le funzionalità del sito.
§ L’utente si registra tramite il sign-‐‑in dei social più conosciuti oppure
riempie i campi del modulo della pagina registrazione con i valori di:
nome, cognome, email, password, sesso, data di nascita.
§ Un amministratore del sistema riceve richieste d’iscrizione da parte
dell’azienda ed ha il compito di assegnargli un account con i privilegi
dedicati.
R2. Login e Password. Un utente ha la possibilità di fare login nel sito se si è
già registrato con metodo classico (R1) e successivamente se andata a buon
fine può navigare all’interno di tutto il sito. E’ altresì possibile cambiare la
password in caso di smarrimento ottenendone una nuova automaticamente
tramite email.
R3. Gestione candidati. L’applicazione permette all’azienda di cercare un
candidato che abbia degli specifici requisiti.
§ L'ʹapplicazione mostra una lista di Candidati all’azienda (F1).
§ L’azienda può selezionare un candidato dalla lista di cui sopra (F2).
§ L’applicazione visualizza i dettagli del candidato scelto (F2).
§ L’applicazione visualizza il curriculum del candidato (F3).
R4. Gestione profilo. L’applicazione permette all’utente di visualizzare il
proprio profilo.
§ L’applicazione mostra i dettagli del proprio profilo (F2).
§ L’utente può apportare modifiche al proprio profilo (F2) modificando
i form che sono mostrati dall’applicazione.
Tesi di Laurea – Anno Accademico 2011-2012
13
§ L’utente può visualizzare/salvare il proprio curriculum (F3).
R5. Gestione lavori. L’applicazione permette all’azienda di gestire le proprie
offerte di lavoro.
§ L’applicazione visualizza la lista di lavori che l’azienda ha creato (F4).
§ L’azienda ha la possibilità di modificare i dettagli di un lavoro non
ancora iniziato.
§ L’applicazione visualizza una lista di lavori archiviati e ne permette la
clonazione e la successiva modifica (F5) modificando i dati che
saranno visualizzati all’interno di un form.
§ L’applicazione visualizza un form per la creazione di un nuovo lavoro
(F10).
R6. Informazioni lavori. L’utente può visualizzare i lavori per cui è stato
selezionato e per il quale ha già dato conferma.
§ L’applicazione mostra all’utente la lista di lavori (F4) che l’utente può
selezionare.
§ L’applicazione mostra in dettaglio (F4) una richiesta di lavoro che
l’utente ha selezionato.
§ L’utente può decidere se accettare o rifiutare una proposta di lavoro
(F8), o annullarne uno in precedenza accettato (F8).
R7. Comunicazioni. L’applicazione visualizza una notifica per segnalare un
evento all’utente.
§ Una notifica, inviata dall’azienda (F7), è visualizzata dal candidato
(F6) nel caso in cui quest’ultimo è stato selezionato per un lavoro.
§ L’applicazione invia una notifica (F7) generata automaticamente dal
sistema nel caso siano stati aggiunti dei nuovi campi nel profilo.
§ L’applicazione invia una notifica all’azienda (F6) quando un
Tesi di Laurea – Anno Accademico 2011-2012
14
candidato risponde sia positivamente sia negativamente a un’offerta
di lavoro (F8).
R8. Valutazione. L’azienda al termine della prestazione lavorativa può
valutare il lavoro dal candidato.
§ L’applicazione visualizza le classiche cinque stelle (F9) per permettere
all’azienda la valutazione della prestazione offerta dal candidato.
§ L’utente visualizza la media voto delle sue valutazioni nella pagina
principale del suo profilo (F2).
Requisiti non Funzionali
RN1. Usability.
§ L'ʹapplicazione deve essere usabile per ogni tipologia di attore definito.
§ L'ʹinterfaccia utente deve essere intuitiva e user-‐‑friendly in stile social.
§ L’applicazione deve essere sufficientemente veloce e leggera per ogni
tipo di dispositivo.
§ L’interfaccia deve avere colori non aggressivi e ben bilanciati tra loro.
RN2. Performance.
§ La webapp deve essere veloce e scaricare meno dati possibili da
internet facilitando il caching dei dati sul dispositivo.
§ Il database NoSql deve essere in grado di sopportare la mole dei dati
passati e ricevuti da ogni dispositivo mobile e desktop ed eseguire
query in un tempo impercettibile per l’utente.
RN3. Data requirements.
§ Il database deve essere NoSql in modo tale da non utilizzare più
spazio del necessario, e ridurre sensibilmente i tempi di accesso non
dovendo effettuare innumerevoli JOIN.
§ La webapp deve richiedere le informazioni tramite chiamate API Rest.
Tesi di Laurea – Anno Accademico 2011-2012
15
RN4. Security.
§ Tutti i campi d’inserimento dati devono gestire l’input in modo da
prevenire eventuali attacchi di SQL injection nei confronti del
database.
§ La connessione verso il database deve essere sicura e criptata.
§ Le password non devono essere memorizzate in chiaro sul database,
ma deve essere usato un meccanismo di hash in modo che non sia
possibile in alcun modo recuperarle.
§ Il sistema di registrazione/login deve prevedere un sistema per
circoscrivere il fenomeno di troll e bot automatici.
§ La webapp deve evitare attacchi di tipo XSS (cross site scripting).
RN5. Privacy.
§ Ogni utente deve poter scegliere per quali lavori può essere
selezionato e quindi visibile da un’azienda.
§ Un utente completando il suo profilo, regola automaticamente la sua
privacy.
o Se una ditta cerca personale per un lavoro all’estero e un
candidato nel suo profilo ha scelto di lavorare solo in Italia,
nella lista di candidati che saranno visualizzati all’azienda tale
utente non apparirà.
o Un utente che lascia vuoti tutti i campi non sarà mai visibile
nelle ricerche.
RN6. Development Process.
§ I contenuti della webapp saranno sviluppati in HTML5 con
l’utilizzo del template engine JADE.
§ La presentazione sarà realizzata attraverso fogli di stile CSS3
servendosi principamente del framework di rapid prototype
Tesi di Laurea – Anno Accademico 2011-2012
16
FOUNDATION.
§ Le funzionalità dell’applicazione saranno realizzate in JavaScript
con l’ausilio del framework per nodejs EXPRESS e jQuery.
§ Come wrapper nativo per l’applicazione verrà utilizzato il
framework open source PhoneGap.
Contenuti
NetCasting ha una serie di contenuti informativi necessari al raggiungimento
degli obiettivi per la quale è stata creata. Le categorie di contenuti vanno
dalle più leggere informazioni in formato testuale, a contenuti leggermente
più impegnativi quali sono la creazione di curriculum in formato PDF.
La raffigurazione di tutto il layout si adatta a ogni tipologia di dispositivo,
che sia un desktop con risoluzione 1920 x 1200 pixel fino ad arrivare al
dispositivo mobile con risoluzione 320 x 480 pixel.
Essendo NetCasting un’applicazione di comunicazione tra due utenze, la
maggior parte dei contenuti è in formato testuale. Le pagine hanno tutte un
layout simile con un menu laterale a sinistra per la versione desktop e a
scomparsa in quella mobile, e un corpo centrale, dove saranno visualizzate
tutte le informazioni che l’utente richiede. Si parte dalla panoramica del
proprio profilo, dove sono visualizzate le proprie informazioni base e gli
eventuali lavori in programma per poi proseguire con i dettagli di ogni
singola proposta di lavoro tuta in formato testuale. La pagina del profilo
personale è formata da campi testuali che, al click dell’utente, diventano
campi form dove modificare le proprie informazioni.
Tesi di Laurea – Anno Accademico 2011-2012
17
Per quanto riguarda la manutenzione dei contenuti informativi, sono le tre
tipologie di utenti che hanno il compito di arricchire il contenuto
informativo:
§ Il superadmin ha il compito di ricevere richieste d’iscrizione da parte
di nuove aziende e procede all’inserimento di eventuali nuovi campi
nel form.
§ L’azienda è la fonte principale di arricchimento d’informazioni
all’interno del sito, ha il compito di creare nuove offerte di lavoro,
inviarle ai candidati scelti e valutare questi ultimi.
§ Il candidato procede solo ed esclusivamente all’inserimento dei propri
dati personali visibili dall’azienda che lo cerca.
Scenari
Topofone S.p.A.
La Topofone S.p.A., nota compagnia telefonica, deve promuovere in tutta
Italia la sua nuova promozione “NGPensa” che permette all’utente di
chiamare illimitatamente tutti a un prezzo eccezionale. La Topofone ha
deciso di compiere una politica pubblicitaria molto aggressiva, oltre alle
solite pubblicità televisive ha deciso di fare un contatto diretto con il cliente,
il piano è di mandare una promoter in ogni centro commerciale d’Italia. Nel
magazzino centrale, la Topofone dispone di 1000 divise da donna (500 di
taglia 36 e 500 di taglia 38), 1000 paia di scarpe (500 scarpe di numero 36 e
500 di numero 38). Effettuare una ricerca di promoter aventi queste
caratteristiche sarebbe una missione a dir poco ardua se non ci fosse stato
NetCasting a risolvere il tutto. In pochi semplici passi l’incaricato della
Topofone esegue una ricerca inserendo le caratteristiche che una candidata
deve avere e invia una notifica a tutti i selezionati.
Tesi di Laurea – Anno Accademico 2011-2012
18
Arimani
Arimani, stilista di fama provinciale, è riuscito nel sogno di mostrare le sue
creazioni nella settimana della moda di Milano. Un’occasione unica! Per fare
bella figura, Arimani ha deciso di cercare modelle tutte alte 180 cm e per
mettere in risalto i colori dei suoi abiti le vuole tutte bionde con occhi azzurri.
Siccome Arimani è controcorrente, vuole modelle in carne, quindi i suoi
vestiti saranno di taglia 42. I provini si svolgeranno nella sua città, L’aquila.
Si mette subito alla ricerca di trenta candidate da ammettere al provino per
poi sceglierne cinque. Arimani s’iscrive subito a NetCasting e in un attimo
contatta le trenta ragazze da provinare.
Pranzo di Natale
Sandro, noto ristoratore di Giulianova (TE), vuole tenere aperto il suo
ristorante anche per il pranzo di Natale. Ha dato piena facoltà ai suoi
camerieri di decidere se lavorare o rimanere a casa con i parenti per il pranzo
in famiglia. Su otto camerieri solo due hanno deciso di voler restare a casa
per il giorno di Natale, mentre gli altri sei hanno deciso di lavorare visto
anche l’extra di 150€ che sarà loro dato. Sandro adesso deve rapidamente
rimpiazzare i due camerieri e in più ne vuole altri due perché prevede il
pienone. Ricorda di aver utilizzato NetCasting anche in un’altra occasione e
immediatamente effettua il login e si mette alla ricerca dei quattro camerieri
con le seguenti caratteristiche: diploma di scuola alberghiero e collo camicia
38 cm, poiché ha comprato camicie create appositamente per la giornata. In
un click ha selezionato i quattro camerieri che avevano il massimo feedback
di valutazione.
Tesi di Laurea – Anno Accademico 2011-2012
19
Struttura dell’Applicazione In questa sezione è mostrata la mappa concettuale della webapp. La sitemap
è uno strumento di rappresentazione grafica che consente di identificare i
rapporti, le relazioni, le dipendenze e le appartenenze di diversi elementi. Le
mappe concettuali si rivelano molto utili non solo per l’analisi e il card-‐‑
sorting dei singoli contenuti, ma anche per rappresentare e guidare
l’architettura profonda di un portale.
Mappa
Tesi di Laurea – Anno Accademico 2011-2012
20
Tesi di Laurea – Anno Accademico 2011-2012
21
Vocabolario
Termini vocabolario Descrizione
Account setting Sezione dove l’utente modifica le impostazioni di ricezione notifica.
Anagrafica Pagina dove l’utente può modificare i propri dati anagrafici.
Archivio Visualizza tutti i lavori che la ditta ha creato con possibilità di clonarli o visualizzare i candidati selezionati per quel lavoro.
Cerca candidato L’azienda può scegliere se cercare un candidato in una ricerca precedentemente salvata o effettuare una nuova ricerca.
Clona lavoro Viene visualizzata la stessa view di “Crea lavoro” con i campi già riempiti, con possibilità di modificarli.
Crea lavoro Pagina di creazione di un nuovo lavoro.
Tesi di Laurea – Anno Accademico 2011-2012
22
Curriculum
Operazione con cui un candidato visualizza il proprio curriculum o un’azienda visualizza quello di un candidato selezionato con possibilità di scaricarlo.
Dettaglio offerte Visualizza l’offerta di lavoro in dettaglio.
Esperienze e disponibilità
Pagina dove l’utente può modificare le proprie esperienze e disponibilità.
Modifica info azienda Pagina dove l’azienda può modificare la propria ragione sociale.
Modifica offerta Viene visualizzata la stessa view di “Crea lavoro” con i campi già riempiti, con possibilità di modificarli.
Modifica requisiti candidato
Stessa view di “Scelta caratteristiche candidato” con i campi dei requisiti, che un candidato deve avere, già riempiti e la possibilità di modificarli.
Notifiche Pagina dove l’utente o l’azienda visualizza le notifiche.
Offerte attive Lista di lavori attivi che l’azienda sceglie di clonare o modificare.
Offerte di lavoro Lista delle offerte di lavoro per cui un candidato è stato selezionato.
Pagina azienda Pagina di accesso con cui si apre la webapp per un’azienda.
Pagina login Pagina iniziale dove l'ʹutente registrato si logga al sistema.
Pagina personale Pagina di accesso con cui si apre la webapp per un utente privato.
Personali Pagina dove l’utente può modificare i propri dati personali.
Registra azienda Pagina con cui l’azienda chiede all’admin la registrazione.
Registrazione Pagina di registrazione dove l’utente si registra.
Ricerche salvate Lista delle ricerche salvate in precedenza.
Scelta caratteristiche candidato
L’azienda visualizza la pagina con la scelta dei requisiti che un candidato deve avere.
Seleziona candidato Lista di candidati aventi caratteristiche che l’azienda ha scelto con possibilità di ordinarli, selezionarli, contattarli e salvare tale ricerca.
Storico Pagina dove sono elencati tutti i lavori che un candidato ha portato a termine.
Tesi di Laurea – Anno Accademico 2011-2012
23
Bozza Strutturale
L’accesso alla Webapp risulta essere molto rapido, il login avviene tramite i
social sign-‐‑in o tramite l’inserimento di username e password. La
registrazione, anch’essa molto semplice, chiede all’utente solo le
informazioni base. La versione mobile ha esattamente tutti i campi della
versione mobile, progettata per essere molto leggera e minimale.
SK 0: Pagina Login
SK 1.1: Pagina Registrazione
SK 1.2: Registrazione Tablet
SK 1.3: Registrazione Smartphone
Tesi di Laurea – Anno Accademico 2011-2012
24
SK 2: Home Page Utente
La pagina personale di un candidato si presenta molto in stile social,
progettata per essere familiare già al primo utilizzo. La versione desktop e la
versione tablet in landascape, presentano un menu laterale fisso, un header
dove sono messe in risalto la completezza del profilo e le notifiche. Il corpo
centrale contiene le informazioni della pagina scelta. La versione mobile e la
versione tablet in portrait, si presentano con il corpo centrale a pieno
schermo, l’header che mette in risalto le notifiche e il menu nascosto.
SK 2.1: Home Page Tablet
SK 2.2: Home Page Smartphone
Tesi di Laurea – Anno Accademico 2011-2012
25
SK 3: Modifica Anagrafica
SK 3.1: Modifica Anagrafica Mobile
SK 3.2: Anagrafica Smartphone
La modifica dei dati, sia per la versione desktop sia in quella mobile, avviene
semplicemente cliccando sul dato da modificare. Nella versione mobile il
menu compare e scompare cliccando sull’apposito pulsante.
Tutte le pagine si presentano con il medesimo menu e header, solo il
contenuto informativo del corpo centrale differisce per ogni pagina.
Tesi di Laurea – Anno Accademico 2011-2012
26
SK 4: Dettaglio Offerta Admin
Il back-‐‑end si presenta nella medesima versione del front-‐‑end sia nella
versione desktop sia in quella mobile.
SK 4.1: Dettaglio Offerta Admin Mobile
SK 4.2: Dettaglio Offerta Admin Smartphone
Tesi di Laurea – Anno Accademico 2011-2012
27
Interfaccia Utente L’interfaccia grafica di NetCasting è stata disegnata per essere semplice e allo
stesso tempo piacevole da utilizzare. Lo stile social fa si che l’utente anche al
primo accesso avrà subito confidenza con il sistema.
L’intuitività è garantita anche grazie all’utilizzo delle gesture più abituali
come il tap, lo swipe e il pinch to zoom.
Il colore predominante è il bianco, che conferisce all’utente un tono pulito, un
header nero, che con il suo alto contrasto coglie l’attenzione dell’utente,
infatti lì si possono trovare le notifiche e il grado di completezza del proprio
profilo. Il corpo centrale alterna profili di grigio e blu. Per questioni di spazio
di seguito vengono mostrati solo alcuni screenshot della webapp sia in
versione desktop che in quella mobile.
Il mockup sovrastante corrisponde al Lo-‐‑Fi Wireframe descritto nella sezione
Skeleton:
§ Home page utente (SK 1)
Tesi di Laurea – Anno Accademico 2011-2012
28
Partendo da sinistra i mockup corrispondono ai seguenti Lo-‐‑Fi Wireframe:
§ Login (versione mobile di SK 0)
§ Home page utente mobile (SK 2.2 con menu a discesa aperto)
§ Home page utente mobile (SK 2.2 con menu laterale a scomparsa
aperto)
§ Modifica anagrafica mobile (SK 3.2)
Il mockup in alto si riferisce al dettaglio offerta descritto nello skeleton (SK 4)
Tesi di Laurea – Anno Accademico 2011-2012
29
I mockup precedenti, dall’alto verso il basso, non sono descritti nei Lo-‐‑Fi
wireframe, mostrano:
§ Ricerca avanzata, da parte dell’admin dell’azienda
§ Ricerca avanzata mobile
§ Dettaglio di un utente ricercato
Tesi di Laurea – Anno Accademico 2011-2012
30
Architettura Software
Tesi di Laurea – Anno Accademico 2011-2012
31
La webapp sarà suddivisa in file js, che gestiranno la logica, e in file jade, che
saranno i file di template. Nel bootstrap saranno caricate tutte le
configurazioni e le dipendenze dei moduli node.js. Sarà compito
dell’access.js stabilire quale view visualizzare a seconda dei permessi che
l’utente possiede. Una volta caricate le view, il controllo passa in mano ad
angular; website.js avrà il compito di caricare un partial specifico per ogni
rotta che l’utente percorre mentre gestire la grafica sarà compito
dall’application style. Ogni path specifico sarà gestito dal controller di
angular che effettuerà chiamate REST di tipo GET, POST, PUT e DELETE.
Tesi di Laurea – Anno Accademico 2011-2012
32
Sorgenti dei Dati
La struttura dell'ʹapplicazione è volutamente molto semplice e si appoggia
principalmente su di un database documentale MongoDB. Il database
gestisce tutti i dati relativi agli utenti ed ai loro profili così come le offerte e le
notifiche ed è stato strutturato per garantire delle ottime performance sia in
termini di storage che in termini di velocità ricerca su di un numero elevato e
variabile di campi. Il fatto che MongoDB sia un database schemaless
consentirà inoltre di aggiornare i campi deputati al censimento solo
attraverso una modifica lato Application, senza dover provvedere a
migrazioni lunghe e spesso complicate (soprattutto quando il numero di
record diventa elevato).
L'ʹutilizzo di un database non relazionale comporta la necessità di
implementare algoritmi di "ʺintegrità"ʺ a livello application, e a tal fine è stato
utilizzato l'ʹODM (Object Document Mapper) Mongoose, che funge da
Tesi di Laurea – Anno Accademico 2011-2012
33
interfaccia con il database attraverso la definizione di Schemi Virtuali e offre
funzionalità di validazione.
Per la gestione dei dati "ʺvolatili"ʺ, principalmente le sessioni utente, si è deciso
di utilizzare un database Redis (key-‐‑value store), che verrà utilizzato
attraverso le interfacce messe a disposizione dal framework ExpressJS, ed in
particolare il modulo Session.
Lato Client, dopo le analisi dei casi d'ʹuso più rappresentativi, si è deciso di
sfruttare le potenzialità di Angular js nella gestione e manipolazione dei dati
per ridurre ulteriormente il carico a db. Attraverso infatti l'ʹutilizzo di "ʺfilters"ʺ
sarà possibile effettuare operazioni di sorting e di ricerca sui dati ritornati da
DB dirattamente da interfaccia client.
Tesi di Laurea – Anno Accademico 2011-2012
34
Tecnologie Usate
NodeJS: È un framework per realizzare applicazioni Web in JavaScript,
permettendoci di utilizzare questo linguaggio, che tipicamente viene
utilizzato nel lato client, anche per la scrittura di applicazioni “server-‐‑side”.
La piattaforma è basata sul JavaScript Engine V8, che è il runtime di Google
utilizzato anche da Chrome.
La caratteristica principale di Node.js
risiede nella possibilità che offre di
accedere alle risorse del sistema
operativo in modalità event-‐‑driven
(programmazione ad eventi), si lancia
una azione quando accade qualcosa.
Ogni azione quindi risulta asincrona a
differenza dei pattern di programmazione più comuni in cui un’azione
succede ad un’altra solo dopo che essa è stata completata.
Ciò dovrebbe garantire una certa efficienza delle applicazioni grazie ad un
sistema di callback gestito a basso livello dal runtime (Bottarini 2012).
ExpressJS: È un framework leggero e flessibile per applicativi node.js,
fornisce un robusto set di funzioni per la creazione di applicazioni web a
singola pagina, multi-‐‑pagina e ibridi.
jQuery: È una libreria JavaScript veloce e concisa che semplifica la
manipolazione del documento HTML, la gestione degli eventi, l’animazione
e le interazioni Ajax per lo sviluppo web rapido.
PhoneGap: È un framework che permette di convertire in applicazioni native
per iOS, Android, Blackberry, Windows Phone, Palm WebOS e Symbian da
Tesi di Laurea – Anno Accademico 2011-2012
35
linguaggio HTML, CSS e JavaScript.
Foundation Zurb: È un framework responsive basato su HTML5 e CSS3
pensato per lo sviluppo di siti e applicazioni Web. Foundation è stato
concepito con un approccio ancora più orientato ad una prospettiva mobile-‐‑
first. In questo modo, Foundation spinge i designer a concentrarsi prima
sull’esperienza mobile e successivamente a quella desktop (Fogliata 2013).
AngularJS: È un framework JavaScript, patrocinato da Google, utile a
semplificare la realizzazione di applicazioni Web single page. AngularJS si
ispira al pattern MVC, come altri framework analoghi quali Knockout o
Ember.js. Ma rispetto ai diretti concorrenti, questo framework è in grado di
ridurre in maniera considerevole il codice necessario a realizzare
applicazioni HTML/JavaScript. (Chiarelli 2012)
MongooseJS: Questo framework offre un’legante modellazione degli oggetti
mongodb per node.js, prende come primo parametro la query mongodb e
come secondo parametro una funzione di callback che restituisce un array di
oggetti JSON pronti per l’utilizzo.
PassportJS: Passport è middleware di autenticazione per Node.js.
Estremamente flessibile e modulare, Passport può essere utilizzato in
qualsiasi applicazione web basata su Express.js. Ha un set completo di
strategie di supporto per l'ʹautenticazione utilizzando un nome utente e una
password, Facebook, Twitter e altro ancora.
Tesi di Laurea – Anno Accademico 2011-2012
36
Riflessioni Soluzioni Smart
Sicuramente la soluzione che ha fatto la differenza nello sviluppo di questa
webapp è stata l’utilizzo di un database noSql che ha ridotto sensibilmente i
tempi delle query effettuate. Avendo i dati dell’utente, admin, aziende e
offerte tutte in una riga e scalabili orizzontalmente, abbiamo evitato di
effettuare moltissimi JOIN per tantissime tabelle con l’utilizzo di database
tradizionali con un costo in tempo davvero elevato.
Difficoltà incontrate
Basse
Le prime difficoltà incontrate sono state quelle di capire bene cosa il
committente cercava per la sua webapp e quindi come strutturare il progetto,
a quali problematiche si andava incontro e alle tecnologie da usare in
previsione di un grande bacino d’utenza e quindi ad una grande mole di
dati.
Medie
Discreta difficoltà è stata quella del passaggio da un database relazionale
classico ad un noSql di tipo “documents databases”. Alla fine è risultato
molto veloce, intuitivo e semplice da utilizzare.
Alte
Le maggiori difficoltà le ho incontrate nell’utilizzo di nuove tecnologie quali
Node.js, Express.js, Angular.js ed una metodologia di sviluppo di tipo MVC
che ha permesso una separazione strutturata fra la logica applicativa, a carico
del controller e del model, e l'ʹinterfaccia utente a carico del view.
Tesi di Laurea – Anno Accademico 2011-2012
37
Conclusioni
Lo sviluppo di quest’applicazione web ha lo scopo di facilitare la ricerca di
candidati, da parte di un’azienda, al fine di instaurare una collaborazione
lavorativa tra le due parti. Al giorno d’oggi, viste le problematiche che
affliggono il paese ed una disoccupazione sempre crescente, l’utilizzo di
questa webapp può aiutare un utente a cercare un’occupazione temporanea
o permanente, ma pur sempre un’occupazione. Un piccolo aiuto per uscire
da questa profonda crisi.
Attraverso questa tesi ho appreso nuove metodologie di sviluppo e scoperto
tecnologie che facilitano davvero il compito dello sviluppatore il quale non
deve creare sempre tutto da zero, ma ha a disposizione framework e librerie
che permettono il write-‐‑less, do more.
Tesi di Laurea – Anno Accademico 2011-2012
38
Bibliografia AngularJS — Superheroic JavaScript MVW Framework, http://angularjs.org/
Bottarini, A. (2012, 04 17). Introduzione a Node.js. Tratto da HTML.it: http://www.html.it/pag/32814/introduzione-‐‑a-‐‑nodejs/
Chiarelli, A. (2012, 12 4). AngularJS, il supereroe dei framework JavaScript …di Google. Tratto da HTML.it: http://www.html.it/articoli/angularjs-‐‑il-‐‑supereroe-‐‑dei-‐‑framework-‐‑javascript-‐‑di-‐‑google/
Chosen -‐‑ a JavaScript plugin for jQuery and Prototype -‐‑ makes select boxes better, http://harvesthq.github.com/chosen/
Express -‐‑ node.js web application framework, http://expressjs.com/
Fogliata, T. (2013, 03 1). ZURB Foundation 4: nuova versione del framework responsive. Tratto da Tiziano Fogliata -‐‑ web design, web marketing e ottimizzazione dei siti web: http://www.fogliata.net/zurb-‐‑foundation/
Foundation: The most advanced responsive front-‐‑end framework by ZURB, http://foundation.zurb.com/
jQuery, http://jquery.com/
Mongoose, http://mongoosejs.com/
Passport -‐‑ Simple, unobtrusive authentication for Node.js, http://passportjs.org/
PhoneGap, http://phonegap.com/