Il contesto
Come progetto scolastico, sto costruendo un'applicazione PHP e Android per un'azienda falsa. Chiamiamo la compagnia "Express Food", che può parlare praticamente da sola.
I "pasti giornalieri" sono tenuti da fattorini che aspettano in strada per una consegna, diciamo che questi fattorini sono inattivi. Quando un cliente ordina il pasto, viene richiesto al fattorino inattivo più vicino di consegnare il pasto al cliente in meno di 20 minuti, che è il ritardo massimo garantito per la consegna al cliente.
Ho bisogno di creare un'app Web da cui i clienti possano ordinare e gli amministratori possano amministrare il sito. Sto pensando di creare un'app Android per i fattorini per gestire le consegne.
Le specifiche problematiche
1) Il server dovrebbe essere in grado di recuperare la posizione corrente del fattorino ogni volta che ne ha bisogno (latitudine + longitudine). Ad esempio per popolare la proprietà currentPosition
dell'oggetto deliveryman
.
In questo contesto, è possibile fare in modo che il server PHP recuperi la posizione attuale del fattorino dal suo cellulare Android? Voglio dire che non sembra nemmeno naturale dato che il server sta richiedendo qualcosa dal client ?? Ma come farlo in questo modo?
2) quando un cliente ordina un pasto, status
dell'ordine è su 'pendingHandling'
, in attesa del fattorino inattivo più vicino per gestirlo.
Il server potrebbe inviare una richiesta di gestione della consegna al più vicino fattorino inattivo o piuttosto l'app mobile dovrebbe richiedere pendingHandling
ordini su una frequenza definita?
3) Una volta che il fattorino accetta di gestire la consegna, la sua posizione in tempo reale deve essere mostrata alla pagina web di tracciamento della consegna del cliente.
Che cosa suggeriresti qui? Come posso visualizzare la posizione in tempo reale del fattorino sulla pagina web?
4) Il percorso di lavoro del fattorino (come attivo e inattivo) deve essere registrato.
Esiste un altro modo per farlo se non memorizzare le posizioni effettive del fattorino ad alta frequenza per definire da esse il suo percorso di lavoro?
Il motivo delle mie domande
Perdonami per le molteplici domande. Spero anche che non siano troppo ampi. Non posso pubblicare queste 4 domande separatamente poiché il modo in cui risolviamo il problema dipende dal modo in cui ci avviciniamo all'altro. Le domande dovrebbero essere affrontate contestualmente come un problema completo.
Avrei bisogno di conoscere la strategia globale da adottare definita da quale direzione prendere, quali tecnologie, protocolli, API da utilizzare in questo contesto. Non ho ancora l'intuizione necessaria per affrontare questo problema solo da solo.
Grazie per anticipo.