Diferència entre revisions de la pàgina «Projecte Mensakas»

De Wiket
Salta a la navegació Salta a la cerca
Línia 34: Línia 34:
 
* '''Orders''' (Comandes) emeses pels Consumers.
 
* '''Orders''' (Comandes) emeses pels Consumers.
 
*: Tenen estat (emesa, acceptada, recollida, entregada), i carret amb els productes
 
*: Tenen estat (emesa, acceptada, recollida, entregada), i carret amb els productes
 +
* '''Franquícies''': un mateix Business pot tenir diverses "delegacions". El Consumer emetrà una única Order, però el sistema decidirà quina franquícia d'aquell Business se'n fa càrrec.
  
 
=== Order lifecycle ===
 
=== Order lifecycle ===
  
# CONSUMER: Afegir productes al carretó.
+
# CONSUMER: Tria Business i afegeix productes al carretó.
# CONSUMER: Confirmar comanda (guardada a la DB)
+
# CONSUMER: Confirma comanda (guardada a la DB)
# CONSUMER: Pagar comanda.
+
# CONSUMER: Paga comanda (Order)
 +
# SISTEMA: Tria Franquícia i notifica comanda.
 
# BUSINESS: Assignar hora de recollida
 
# BUSINESS: Assignar hora de recollida
 
# SISTEMA: geoloc (Business, Consumer, Deliverer) -> notificar Deliverers
 
# SISTEMA: geoloc (Business, Consumer, Deliverer) -> notificar Deliverers

Revisió del 18:09, 29 des 2019

Mensakas és una cooperativa de repartiment a domicili fundada a partir del col·lectiu Raiders Por Derechos, extreballadors de corporacions de repartiment com Glovo o Deliveroo que han decidit no deixar-se explotar per aquestes grans corporacions.

Ens demanen que els ajudem a millorar una aplicació que estan desenvolupant de repartiment a domicili.

Riders.jpg Mensakas.jpg

Elements de la plataforma

Rol Interfície Descripció
Rols d'usuari del sistema
Administrador webapp Pot veure tots els elements del sistema.
Business (Empreses, Restaurants) webapp Visualitza les comandes emeses pels Consumers.
Deliverer (Repartidor o Mensaka) app mòbil Visualitza comandes i les pot acceptar.
Consumer (client final) app mòbil Visualitza Empreses (Restaurants) i menús i pot emetre comandes.

La plataforma ha de permetre treballar amb els següents elements:

  • Menús dels restaurants.
    Tindran Items (productes), Categories (jeràrquiques), Packs i Extres (salses, complements, etc.)
  • Orders (Comandes) emeses pels Consumers.
    Tenen estat (emesa, acceptada, recollida, entregada), i carret amb els productes
  • Franquícies: un mateix Business pot tenir diverses "delegacions". El Consumer emetrà una única Order, però el sistema decidirà quina franquícia d'aquell Business se'n fa càrrec.

Order lifecycle

  1. CONSUMER: Tria Business i afegeix productes al carretó.
  2. CONSUMER: Confirma comanda (guardada a la DB)
  3. CONSUMER: Paga comanda (Order)
  4. SISTEMA: Tria Franquícia i notifica comanda.
  5. BUSINESS: Assignar hora de recollida
  6. SISTEMA: geoloc (Business, Consumer, Deliverer) -> notificar Deliverers
  7. DELIVERER: Acceptar comanda
  8. DELIVERER: Marcar "comanda recollida"
  9. DELIVERER: Marcar "comanda entregada"

Fases del projecte

  • Fase 1: Desenvolupament de les webapps core de l'Administrador i dels Restaurants (monolit).
  • Fase 2: Desacoblament per components comunicats per APIs per compatibilitzar i unificar el funcionament de les webapps (Admin, Restaurant) i de les apps mòbils (Consumers, Deliverers).

Especificacions no funcionals

  • Desenvoluparem en PHP i el framework Laravel.
  • L'arquitectura ha de permetre escalabilitat dels servidors per poder augmentar el nombre de peticions per unitat de temps quan sigui necessari.
  • La BD serà en MySQL/MariaDB i es desplegarà mitjançant el servei RDS (Relational Database Service) de AWS ja que facilita l'escalabilitat.


Fase 1: Webapps core Administrador i Restaurants

Backlog

  1. Iniciar projecte en Laravel en un repositori públic a Github.
  2. Dissenyar models de dades i implementar-los amb la migració inicial.
  3. Construir seeder amb dades de prova amb tots els rols i
  4. Implementar autenticació nadiua de Laravel.
  5. Modificar el model d'usuari per contemplar els diversos rols considerats.
  6. Construir interfície de l'Administrador:
    1. Gestió de Comandes (Consumer): visualització, estat (emesa, recollida, repartida), afegir comentaris.
    2. Gestió de Business (Restaurants): alta, baixa, modificació, franquícies.
    3. Gestió de Menus (dels Restaurants): alta, baixa, categories, packs, extras
    4. Gestió de Deliverers: geolocalització, assignació de comandes automàtica.
  7. Construir interfície per al Business (Restaurant):
    1. Visualització de comandes entrants.
    2. Acceptació de comanda.
    3. Afegir comentaris.
    4. Assignació hora de recollida.