Passa al contenuto principale Passa al piè pagina

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