logo tate app
Home
Tariffe Trasparentiapri menu tariffe
App MobileEnergia SostenibileElettrica
Menu

Mobile Challenge

Benvenuto

Sviluppa una piccola app React Native per risolvere uno dei tipici problemi che affrontiamo ogni giorno
Al termine delle challenge inviaci il progetto tramite un archivio .zip o il link ad un repo Github/BitBucket/Gitlab
Puoi utilizzare ogni libreria o tool che reputi necessaria a raggiungere il tuo obiettivo (ti consigliamo Expo o il nostro starter kit per partire il piu' velocemente possibile)
Cerca di approcciare il progetto come se stessi realizzando una soluzione da rilasciare in produzione

Cosa dovrai realizzare:

Una nostra API ritorna delle informazioni relative a degli utenti ed i loro metodi di pagamento
Ogni utente può avere più metodi di pagamento ma solo un metodo di pagamento di default

L'url dell'API è https://mz37bp4toc.execute-api.eu-west-1.amazonaws.com/challenge/users
L'API potrebbe non essere sempre disponibile e ritornare randomicamente errori 500
I dati vengono ritornati come una collezione di oggetti, ad esempio:

{
    id: "ba8f3d2b-d1dd-788f-32e3-97719e8b7f61",
    name: "Milena",
    surname: "Nannelli",
    email: "wumtewu@mo.gs",
    username: "milena.nannelli",
    signup_date: "2017-12-24T00:01:41.159Z",
    PaymentMethods: [
        {
            id: "12868bd7-0e59-6f22-379c-1a8cec2ece51",
            type: "Banca Popolare",
            currency: "eur",
            name: "098-59-5816",
            ending_with: 9236,
            default: false
        },
        {
            id: "352872cf-db14-811b-781d-e43f7c7f8abe",
            type: "CC di nonna",
            currency: "usd",
            name: "600-17-3878",
            ending_with: 5212,
            default: true
        }
    ]
}

Questi dati devono essere presentati all’interno di un elenco di utenti che mostra l'username ed il nome del metodo di pagamento di default.
Deve essere possibile mostrare maggiori informazioni riguardo un singolo utente e tutti i suoi metodi di pagamento cliccando su un pulsante ‘Dettagli’ che apre una seconda schermata con le informazioni aggiuntive.

L’API ritorna 50 risultati alla volta per cui è necessario implementare un sistema paginazione per recuperare le altre pagine dell’elenco. Si può richiedere una specifica pagina all’API passando in query string il parametro page e l’indicazione della pagina richiesta

https://mz37bp4toc.execute-api.eu-west-1.amazonaws.com/challenge/users?page=42

Non è possibile avere informazioni riguardo al numero di utenti totali per cui la paginazione potrà essere implementata tramite dei semplice Next/Previous.

Una volta che hai correttamente implementato una lista, integra le seguenti funzionalità. :

  • E’ possibile ordinare la lista in ordine alfabetico per username, email o nome del pagamento di default.
  • L’elenco deve essere filtrabile tramite un campo di ricerca che permette di cercare per email. Cercando ci si aspetta che l’elenco mostri solo i dati che hanno un match con quanto cercato.

Nota: le operazioni di filtro/ricerca devono essere eseguite localmente, un API sarebbe meglio ma in questo modo puoi farci vedere come sai lavorare coi dati

Bonus

Se ti stai divertendo o finisci presto potresti considerare i seguenti extra, puoi implementarli in codice o scriverci un paragrafo in cui spieghi come li faresti

  • Un sistema di cache / store per ottimizzare il numero di chiamate API e prevenire gli errori 500
  • Raggruppare gli utenti della lista per data di signup_date in mesi / anni
  • La possibilità di aggiungere nuovi utenti con un form per inserire i dati (non c'e' un API di scrittura, ma puoi fare una [POST] verso l'API che ritorna la lista degli utenti)

A presto per la code review!

Scarica Tate dall'App StoreScarica Tate dal Play Store
Chi siamo
Portale Offerte
FacebookInstagramLinkedIn
Tate è una Società a Responsabilità Limitata - P.IVA 03596861207 - Capitale Sociale I.V. di 408.509,29 € | Copyright ©2022 Tate s.r.l. - Tutti i diritti riservati