Questa sfida di programmazione è progettata per valutare le tue capacità di ingegnere del software, in particolare nell'area dello sviluppo web con PHP e il framework Laravel. La sfida prevede la creazione di un'applicazione Web che generi un rapporto sul prodotto da un file CSV e la scrittura di test per l'applicazione utilizzando PHPUnit.
- Effettua il fork di questo repository e clonalo sul tuo computer locale.
- Crea una nuova applicazione Laravel nella directory del repository clonato.
- Scrivere il codice PHP da leggere nel file products.csv che si trova nella directory /storage/app e generare un report del prodotto in formato HTML.
- Il design della pagina HTML non è rilevante per la valutazione, sentiti libero di mostrare una semplice tabella.
- Fornire gli stessi dati, tramite api, /products, per eseguire i test PHPUnit
- Il rapporto sul prodotto deve includere le seguenti informazioni:
- Entrate totali di tutti i prodotti
- Entrate totali nella prima metà del mese
- Entrate totali nella seconda metà del mese
- Numero totale di prodotti in ciascuna categoria
- Prezzo medio dei prodotti in ogni categoria
- Verificare che i test PHPUnit vengano superati. Sentiti libero di aggiungere altro se necessario.
- Invia le tue modifiche al tuo repository biforcuto.
- Notifica al valutatore che hai completato la sfida.
- Hai 90 minuti per completare la sfida.
- Puoi utilizzare qualsiasi risorsa a tua disposizione, inclusa la documentazione e Google.
- Il tuo codice deve essere scritto in PHP utilizzando il framework Laravel.
- Il tuo codice deve essere ben organizzato e facile da capire.
- Il tuo codice dovrebbe aderire alle migliori pratiche di Laravel.
- Il codice deve essere documentato con commenti chiari e/o documentazione in linea SOLO se necessario.
- Puoi aggiungere altri test PHPUnit, se necessario.
- È possibile eseguire il refactoring di codice/test esistenti, se necessario.
- Il tuo codice dovrebbe essere impegnato in un nuovo ramo nel tuo repository biforcuto.
- Non imbrogliare o plagiare. Il valutatore si riserva il diritto di squalificare qualsiasi invio sospettato di frode.
- Il caso di test PHPUnit passa senza fallimenti o errori.
- Il file CSV viene letto ed elaborato correttamente e nella vista vengono visualizzati i risultati corretti.
La tua soluzione sarà valutata in base ai seguenti criteri di accettazione:
- Il programma dovrebbe essere in grado di leggere il file CSV di input e memorizzare i dati in una struttura dati appropriata.
- Il programma dovrebbe essere in grado di calcolare il numero totale di prodotti in ciascuna categoria.
- Il programma dovrebbe essere in grado di calcolare il prezzo medio dei prodotti in ciascuna categoria.
- Il programma dovrebbe essere in grado di calcolare le entrate totali generate da tutti i prodotti nel file CSV.
- L'output del programma dovrebbe visualizzare i risultati nel formato specificato.
- Il programma deve essere scritto in modo che sia facile da leggere, gestire e comprendere da altri sviluppatori.
- Il programma deve essere privo di errori di sintassi, errori di runtime ed errori logici.
- Il programma dovrebbe essere efficiente e scalabile, in grado di gestire file CSV più grandi senza problemi di prestazioni.
- Il programma dovrebbe seguire buone pratiche di programmazione, come l'uso di nomi di variabili appropriati, commenti sul codice e indentazione.
- Il programma dovrebbe utilizzare le librerie di supporto Laravel quando necessario
- Il programma deve essere presentato entro il tempo stabilito di 90 minuti