FabrizioMontanari / caterel

0 stars 0 forks source link

Gestione dati #5

Open FabrizioMontanari opened 6 years ago

FabrizioMontanari commented 6 years ago

Breve riassunto:

Ogni invitato può confermare la propria presenza, scegliere un menu e aggiungere eventuali note. In aggiunta può confermare la presenza dei propri familiari, con relativi menu.

Ho fatto qualche prova con google spreadsheet per poterlo usare come database dei poveri. È facile da compilare a mano e ci sono delle api per consultare e modificare i dati a livello programmatico. Ho preparato un foglio di calcolo con l'idea di base. È composto di due fogli: "famiglie" e "conferme". Il primo contiene le informazioni su tutte le famiglie: Ogni riga rappresenta una famiglia e contiene le celle con nome e cognome di ogni membro. Il secondo contiene le informazioni di conferma di ciascun partecipante. la lista dei partecipanti è nella prima colonna, la seconda colonna conterrà il menu scelto da ciascuna persona, la terza conterrà il testo delle note.

Per Front:

a voi toccherebbe di compilare le due pagine coi nomi corretti.

Per Turro:

Il meccanismo di funzionamento programmatico sarebbe questo:

Problemi:

  1. Questa impostazione ha qualche problema coi "+1". Li si potrebbe inserire come "+1 di [nome invitato principale]" (es "+1 di manuel casoni"), ma in questo modo non si sa che nome ha questo +1.
  2. Se percorriamo questa strada bisogna decidere dove mettere la chiave per la connessione al file. Non sono molto dell'idea di inserirla su github perché questa repo è pubblica. (questa questione è rivolta più a Turro)

@robota-x , @monkey2r Ditemi se secondo voi può andare, se avete idee migliori ecc. Ho aperto una issue, così resta tutto scritto qua e non si deve scrollare lo storico di wa per vedere tutto

FabrizioMontanari commented 6 years ago

Il foglio di calcolo è https://docs.google.com/spreadsheets/d/1QizbFvpfrfS0bHx36c9O42LnYDpIxdp0Kzh8yoKmtP4/edit#gid=150404872

il proprietario è l'account che usate per il matrimonio. turro, tu ci puoi accedere con l'indirizzo gmail che mi hai dato il 10 di giugno.

monkey2r commented 6 years ago

per quel che riguarda i "+1" per noi sarebbe necessario sapere i nomi, perché poi dobbiamo fare il tableau e sarebbe bruttino scrivere Manuel e +1 di Manuel. Vero è che sono pochi, quindi una volta saputo chi ha i +1 possiamo contattarli noi direttamente. Se si riuscisse a fare tutto da sito sarebbe più comodo, ma ripeto non impazziamo. Idea: visto che quando uno inserisce il proprio nome e se ha famiglia compare la possibilità di confermare per i familiari (già compilata) si potrebbe usare lo stesso formato e far comparire lo spazio del familiare però in questo caso che fosse compilabile dall'utente anche nella parte di "Nome e Cognome", potrebbe essere fattibile?

FabrizioMontanari commented 6 years ago

@robota-x Ho buttato giù un'implementazione del sistema, in modo che rispetti anche la questione dei +1. È una mezza maialata, però va e mi ha permesso di fare alcune valutazioni. Domande:

  1. Per effettuare il collegamento al foglio di calcolo è necessaria una autorizzazione con chiave. La chiave segreta è salvata su un file, che non dovremmo condividere su github. la mettiamo nel gitignore e poi te la passo in separata sede?
  2. ho letto un po' in giro, ma non ho ben capito come gestire il file con la chiave segreta nel contesto della lambda aws. In locale riesco a farlo funzionare, ma non so bene in remoto come sia la questione. Dopo aver aggiunto il file a build.py per farlo copiare in backend quale è il percorso file da richiamare in remoto?
robota-x commented 6 years ago

Sistemato il problema dell'autorizzazione, prende il file dal bucket (privato) di s3. Ho lasciato stare le altre possibilita' aws (config store, dynamodb, secret storage) visto che hai gia' implementato tutto presupponendo l'esistenza di un file ed e' inutile ricostruire tutto, specialmente visto il livello di sicurezza necessario.

robota-x commented 6 years ago

la performance non e' il massimo (few seconds per richiesta) ma penso accettabile per ora