PHP Developer
Presentazione
Ciao e benvenut*! Questa è una coding challenge di Lascaux. Un modo per testare le proprie capacità con una sfida nel mondo della progettazione e realizzazione di un prototipo software. La prova fa parte del processo di acquisizione talenti e viene proposta a tutti i candidati nell’ambito di sviluppo software. Ma anche se non fai parte di questo gruppo, e hai trovato questo documento, non ti preoccupare. Puoi inviarci il tuo contributo e lo valuteremo! Ma in quel caso, non dimenticare di includere anche il tuo CV 🙂.
Obiettivo
Creare un’applicazione web per la gestione dei film di un multisala. L’applicazione dovrà permettere la visualizzazione della lista dei film messi in programmazione in un cinema multisala, al fine di organizzare uno storico consultabile dai gestori.
Descrizione scenario
Il committente
Il cinema multisala “CineMille” sito in via Roma a Firenze (FI).
Lo scenario
Il cinema “CineMille” è un esercizio storico dell’area fiorentina, nonché uno dei più grandi presenti in Toscana. Dispone di 12 sale di proiezione, di cui 2 in tecnologia IMAX. Le sale hanno una capienza differente, con le più grandi che dispongono di 250 posti ciascuna fino alle più piccole da circa 50 posti a sedere.
Attualmente la programmazione delle proiezioni nelle sale viene aggiornata con cadenza settimanale: tali informazioni sono gestite mediante scambio di dati contenuti in file Excel. Ciascun film può rimanere in sala per un massimo di tre settimane e per un minimo di una, a partire dalla data di uscita dello stesso. La società che gestisce il cinema vuole dotarsi di uno strumento per la programmazione e la gestione dei film di un multisala al fine di ottimizzare a pianificare la loro permanenza in sala.
L’applicazione dovrà permettere la visualizzazione della lista dei film messi in programmazione nel multisala, al fine di organizzare anche uno storico consultabile dai gestori. Tale applicativo sarà utilizzato anche come fonte dati per visualizzare i film attualmente in sala sul sito web del cinema a beneficio del pubblico.
Obiettivo
Realizzare un’applicazione web per la gestione della programmazione dei film nel cinema multisala, rispettando i vincoli tecnici e funzionali descritti nel paragrafo.
Vincoli tecnici e funzionali
ID |
Nome |
Descrizione |
---|---|---|
RF1 |
Elenco film |
L’applicativo deve consentire di visualizzare una lista dei film in programmazione, con possibilità di filtrare per data di inizio/data fine. In questo modo è possibile recuperare quali sono i film in programmazione per ciascuna settimana. |
RF2 |
Storico |
Deve essere possibile per i gestori della piattaforma accedere allo storico completo della programmazione dei film passati. |
RT1 |
Schema logico |
Ipotizzare uno schema logico dell’applicativo, preferibile in notazione UML |
RT2 |
Applicazione |
Realizzare un applicativo in Laravel (PHP) per la visualizzazione della lista dei film. In alternativa puoi realizzare due applicativi, uno di Back-End e uno di Front-End. Per il Back-End potrai utilizzare Lumen (PHP) per esporre il servizio API REST. Come riferimento potrai utilizzare questa guida: https://lumen.laravel.com/docs/ Per il Front-End potrai utilizzare Angular per la realizzazione dell’interfaccia web in cui mostrare l’elenco dei film recuperati dal servizio REST. |
Deliverables
Cosa ci aspettiamo di ricevere:
- Repository per il codice sorgente (puoi caricare il lavoro su GitHub o simili e inviarci il link; non sono accettati ZIP o TAR)
- Una breve presentazione del lavoro svolto (PowerPoint, Keynote, PDF, Web)
- Altri documenti a tua discrezione (diagrammi UML, documentazione, etc…)
Se hai domande sulla sfida o qualcosa non è chiaro, siamo aperti al confronto e a fornirti informazioni aggiuntive. Questo potrà contribuire anche al miglioramento del documento che stai leggendo.
Consegna
La consegna può avvenire inviando un’email a [email protected]. Ricordati di indicare almeno il tuo nome e cognome, dove hai trovato la sfida e perché la stai inviando.
Impegno
Sei liber* di scegliere l’effort da dedicare a questa sfida. Sappiamo però che questa attività richiede tempo ed energie. Non vogliamo che diventi un peso. Noi ti chiediamo di impegnarti per non più di 8 ore e di consegnare il materiale entro 4 giorni dall’avvio.
Uso del materiale
Questa è una sfida di fantasia, non ha alcuno sviluppo commerciale o realmente applicabile. Lascaux non userà questo materiale per altri fini se non quello della valutazione delle tue capacità. Ogni altro eventuale uso sarà da concordare insieme.
Criteri di valutazione
Per la valutazione sarà assegnato un punteggio per ciascuno dei moduli descritti negli obiettivi. Sarà eventualmente valutato anche il codice parzialmente funzionante o lo pseudocodice realizzato.
- Schema architetturale/logico dell’infrastruttura (6 pt)
- Realizzazione del prototipo software
- Opzione Laravel (14 pt)
- Opzione Lumen + Angular (8+6 pt)
That’s all!
Nel ringraziarti già per il tempo che impegnerai ti auguriamo buon lavoro. Ma soprattutto non dimenticare di divertirti!
Il Team Progetti di Lascaux, www.lascaux.it