GithubHelp home page GithubHelp logo

doceo / plant Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 7.0 2.01 MB

Plant nasce con scopo didattico, con lo scopo di introdurre tecnologie di programmazione javascript lato server attraverso nodejs. La sua implementazione continua durante un progetto pomeridiano finanziato dal FIS di istituto dell'IS Morano di Caivano (NA).

JavaScript 13.26% HTML 59.49% C++ 22.15% Python 5.10%
node-js nodemcu socket

plant's People

Contributors

caviale avatar djickar avatar doceo avatar docgrimaldipedata avatar fabioztessitore avatar ivdplant avatar thamesis avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

plant's Issues

avanza il master

prova a fare un avanzamento del master, facendo finta che sia il contributo di qualche altro sviluppatore

Struttura delle pagine

le pagine devono essere costruite con approccio modulare. l'intestazione ed il footer deve essere condiviso così le pagine si differenziano solo per il body.

sarebbe interessante quindi strutturare le pagine secondo i template EJS.

Inserimento ed estrapolazione dati dal DB

bisogna predisporre l'estrapolazione dei dati dal DB mongo.
In particolare:

  1. estrapolare un numero N di dati dalla collezione delle rilevazioni. il valore N è una variabile estratta dalla collezione dei parametri di default.
  2. estrapolare dalla collezione dei parametri un vettore che li contenga tutti.

bisogna cura di concordare con il gruppo che lavora all'interfaccia il criterio con cui si compilano

note:
non bisogna dimenticare di:

  1. fare una pull del repository doceo/plant sul branch master
  2. creare il branch "dati_mongo"
  3. testare e validare le modifiche
  4. pubblicare sul proprio account il branch appena concluso
  5. fare una pull request del branch in oggetto avengo cura di inserire nel commento un riferimento a questa issue (#29)
  6. fare il merge del branch in oggetto con il proprio master
  7. cancellare il branch

riferimenti:
qui c'è anche qualche esempio di query tramite nodeJS.
https://docs.mongodb.com/manual/tutorial/query-documents/

aggiornamento grafici e socket

quando ricevo un dato devo fare due cose:

  • aggiornare il grafico con il nuovo dato
  • eliminare dal grafico il primo dato

è uno shift del vettore dei dati che compongono il grafico

organizzazione delle pagine

il gruppo di lavoro sulla grafica ha due sotto gruppi su due branch: struttura e grafico
bisogna svolgere le seguenti operazioni:

  1. entrambi i gruppi devono caricare le proprie modifiche aggiornando il proprio branch nel proprio account.
  2. aggiornare il branch master rispetto alle modifiche avvenute sul branch upstream master (doceo/plant)
  3. quando il lavoro dei sottogruppi è concluso bisogna portare i due branch sul master
  4. riportare le modifiche portando i grafici nella struttura delle pagine che li inglobano
  5. fare la pull request del branch master al branch master di doceo/plant (nel commento metti il riferimento a questa issue #26)

manuale di riferimento:
http://rogerdudler.github.io/git-guide/index.it.html
https://git-scm.com/book/it/v1/Diramazioni-in-Git-Basi-di-Diramazione-e-Fusione

errore su aggiornamento grafici

quando un client si collega riceve il vettore con tutti i dati.
se però rimane connesso e nel frattempo l'applicazione si chiude, al riavvio invia nuovamente lo stresso vettore e nel client si accumulano il doppio dei dati. va azzerato il vettore creato nel client.

socket

Bisogna individuare il metodo per comunicare dati dal core all'interfaccia grafica e viceversa.
il riferimento è al modulo socket, quindi:

  1. creare il branch socket_core
  2. testare il passaggio di una variabile statica alla richiesta di una singola pagina. creare quindi un percorso aggiuntivo che richiede una pagina test.html
  3. testare il passaggio di parametri, quando la pagina è già stata caricata dal client
  4. aggiornare il branch sul proprio account e fare una pull request (nel commento metti il riferimento a questa issue #27)
  5. fare il merge del branch in questione con il branch master del proprio account
  6. chiudere il branch aperto e fare una pull dal branch upstream doceo/plant

guide di riferimento:
https://git-scm.com/book/it/v1/Diramazioni-in-Git-Basi-di-Diramazione-e-Fusione
http://rogerdudler.github.io/git-guide/index.it.html

gestione parametri

vano individuati e gestiti i parametri di default per la visualizzazione di report e grafici.

esempio:

  • numero di campioni da estrarre per i singoli grafici

  • periodo temporale per i report

  • "fine tuning", ovvero: se ho 100 campioni, posso decidere di visualizzare una rilevazione ogni tre.

#8

Logging

#8
bisogna permettere il log degli eventi che accadono.
quindi bisogna introdurre il modulo MORGAN come indicato nel manuale di Fabio Tessitore

gateway - generazione data

il gateway deve inviare tramite mqtt una sequenza di valori comprensibile a nodeJS.
in particolare la stringa passata avrà questa forma:

String msg= puntoAcq + ',' + temp + ',' + terUm + ',' + AriaUm + ',' + timeAcq;

dove per timeAcq si intende a sua volta una stringa del tipo:

//anno-mese-giorno-ora-minuto
2018-00-6-10-34
è importante notare come il mese parta da 0, quindi gennaio è 0 febbraio 1 ecc...

Documentazione GIT

bisogna creare un piccolo manualetto, anche in txt, per i comandi base di git.
in particolare:

  1. fare la pull del branch doceo/plant
    https://help.github.com/articles/merging-an-upstream-repository-into-your-fork/
  2. creare un branch a partire dal proprio master
  3. fare un commit delle modifiche e relativo push sul branch del proprio account
  4. fare una pull request mettendo nel commento il tag relativo all'issue che si è risolta
  5. aggiornare il proprio master facendo il merge del branch concluso
  6. chiudere un branch

gestione dei percorsi

bisogna ottimizzare il codice utilizzando il modulo path per accedere alle pagine senza vincoli di sistema operativo.

#8

generazione dei grafici (grafica)

bisogna convertire la variabile vettore statico in dinamico:

  1. aggiornare il branch master da doceo/plant e creare il branch vettore_dati
  2. utilizzando librerie jquery per la generazione di un vettore casuale che genera il grafico.
  3. generando un vettore casuale che ingloba i dati relativi ai 4 grafici e sempre con la stessa libreria distribuire i dati nei relativi grafici.
  4. aggiornare il gruppo che lavora al core sul tipo di vettore che occorre per la generazione del grafico.
  5. aggiornare il proprio account con il branch appena creato.
  6. fare una pull request verso doceo/plant (nel commento metti il riferimento a questa issue #28)
  7. chiudere il branch appena creato.

#27

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.