Git Product home page Git Product logo

sharerasmus's People

Contributors

alucard9994 avatar cicciotecchio avatar davide-bottiglieri avatar enzo9804 avatar fonzsj avatar pcantarella7 avatar peppeprown2 avatar rosaria94 avatar s-corso-98 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

s-corso-98

sharerasmus's Issues

Rimozione index.js

Describe the bug
Rimuovere index.js con le relative dipendenze presenti in app.js. Quel file serviva solo all'inizio per farvi vedere come funzionavano i router ora non è più necessario quindi eliminatelo anche perchè fa fallire i test di Travis-CI.

Error: Timeout of 2000ms exceeded

Describe the bug
Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
Questo bug viene lanciato perchè si attende il risultato di una Promise.

To Reproduce
Steps to reproduce the behavior:

  1. lanciare npm test
  2. See error

Expected behavior
Il test non avrebbe dovuto lanciare errori

Screenshots
schermata 2018-12-15 alle 14 00 12

Desktop (please complete the following information):

  • OS: OS X 10.13
  • Node: 10.14.1
  • Npm: 6.4.1

Eliminare gli apici dal file Database.sql

Describe the bug
Quando si importa il database, vengono restituiti degli errori, per risolverli bisogna eliminare gli apici per ogni drop table if exists.
Mi spiego meglio:

  • DROP TABLE IF EXISTS 'progetto'.'votazione' ;
    deve diventare
  • DROP TABLE IF EXISTS progetto.votazione ;

Cannot read property

Describe the bug
this.targetKeyField = this.target.rawAttributes[this.targetKey].field || this.

TypeError: Cannot read property 'field' of undefined

Si sta stabilendo una relazione al contrario, penso che sia un problema di foreign-key.
È la riga commentata che vedi nello screenshot sottostante.

Screenshots
issedavidecorretta

Stesura ODD

In quseto task andrete a definire l'intero Object Design Document, fate sempre riferimento all'ODD di Libra caricato nella cartella Documenti passati di OneDrive. Ricordate sempre che dal documento di Libra dovete prendere spunto e non copiarlo palesemente altrimenti i PM si arrabbiano. Un'altra cosa fondamentale da ricordare è che Libra è stato sviluppatto utilizzando JSP e Servlet invece noi sviluppiamo in Node quindi fate gli opportuni aggiustamenti.
Struttura ODD

  1. Introduzione
  • 1.1 Obeject Design Trade-offs
  • 1.2 Linee guida per la documentazione di interfacce (Parlare di ESLint e documentation.js)
  • 1.3 Definizioni acronimi e abbreviazioni
  • 1.4 Riferimenti
  1. Design Pattern Per ogni design patter dovete descrivere come è fatto e come lo utilizziamo, ovviamente studiate i design pattern che spiegano a lezione e se ne trovate altri utili proponeteli ai PM
  • 2.1 Design pattern DAO(studiatelo e dite che è implicito in Sequelize)
  • 2.2 Design pattern Singleton
  • 2.3 Design pattern Observer
  1. Package Dovete spiegare come vengono strutturate le cartelle
  • 3.1 Package model
  • 3.2 Package routes
  • 3.3 Package docs
  1. Class interfaces fornire un class diagram completo
  2. Glossario
    Ricordate sempre di applicare gli standard e di inserire gli autori alla fine di ogni tabella o diagramma

Review

Sviluppo

  • client

Ho sviluppato

  • Chat generale in cui viene visualizzata la lista degli utenti;
  • Chat singola per utente/gruppo, con relative opzioni;
  • Form per creare chat di gruppo;
  • Form per aggiungere una persona alla chat di gruppo;
  • Mostrare le chat aperte

Devo ancora sviluppare

Problemi incontrati

Test Plan Capitoli 14 e 15

  • Test Case(Cap 14)

  • Glossario(Cap 15)

  • Per il contenuto del cap 14 fare riferimento al documento chiamato LIBRA_TP_V_2.0 presente nella cartella esempi passati su OneDrive

Pulizia travis build

Describe the bug
La build di travis mostra l'output dei console.log che avete effettuato. Siete pregati di rimuovere i vostri console.log dal vostro codice sorgente, per questioni di pulizia e di efficienza.

Review

Sviluppo

  • server
  • client

Ho sviluppato

  • Invio messaggi e salvataggio su Firebase;

Devo ancora sviluppare

  • Chat di gruppo;
  • Invio e ricezione messaggi in tempo reale;

Problemi incontrati

Linee guida per il bug report

Cosa fare quando ci si trova di fronte ad un bug

  1. Cercarlo fra le nostre Issues,
  2. Cercare su Google
  3. Se l'errore non è presente fra le nostre Issues createne una nuova issue di tipo "Bug Report". Per crearla andate sulla pagina "Issue", selezionate "New Issue" e cliccate sul tasto "Bug Report", vi verrà mostrato il templete per comunicare i bug.
  4. Una volta trovate la soluzione lasciare un commento sotto la issue che avete scritto descrivendo la soluzione
  5. chiudere la issue
IMPORTANTE

I PM vanno contattati solo quando avete fatto i primi tre step, nella maggior parte dei casi quando comunicate un bug ai PM la prima cosa che fanno i PM è cercarlo su google, quindi lo potete fare anche voi. Se seguirete questa linea guida eviterete comunicazioni inutili e avrete più tempo per concentrarvi sul bug riscontrato.

Change Request DB

Effettuare i seguenti cambiamenti al db:

  • i nomi delle colonne vanno scritti in camelCase, così facendo rispetteranno i nomi descritti nei model
  • aggiungere sia allo studente che al coordinatore la colonna bio e il la colonna facolta
  • modificare il campo password definendo come VARCHAR(64)
  • nella tabella Post aggiungere il campo post che contiene il corpo della post VARCHAR(300).
  • nella tabella Post e nel relativo model rendere l'id_Post un auto-incerement

P.S Al momento ci sono dei problemi con il db remoto di AWS, quindi effettua queste modifiche in locale dopodichè importa il db che hai modificato in locale su AWS RDS

Cap3. Architettura sistema proposto

In questo capitolo vanno specificati i seguenti artefatti:

  • panoramica del sistema (3.1)

  • decomposizione in sottosistemi (cap 3.2)

  • mapping hardware/software (cap 3.3)

  • gestioni dei dati persistenti con relativo diagramma E-R(cap 3.4.1)

  • E-R ristrutturato(cap 3.4.2)

  • schema logico(cap 3.4.3)

  • struttura delle tabelle(cap 3.4.4)

  • controllo degli accessi(cap 3.4.5)

  • tavola dei volumi(cap 3.4.5.1)

  • tavola delle operazioni(cap 3.4.5.2)

  • tavola dei volumi(cap 3.4.5.1)

  • controllo della sicurezza(cap 3.5)

  • controllo del flusso globale del sistema(cap 3.6)

  • condizioni boundary(cap 3.7)

  • avvio del sistema(cap 3.7.1)

  • terminazione del sistema(cap 3.7.2)

  • fallimento del sistema(cap 3.7.3)

  • Per quanto rigurda il come devono essere scritti i contenuti nel documente attenersi agli standard definiti nel file Check List SDD v 3.0.xlsx

Bug in app.js

Per far si che la build vada a buon fine rimuovere l'istruzione:
app.use(express.static(path.join(__dirname, 'public')));

Review

Sviluppo

  • client
  • server

Ho sviluppato

  • Visualizzazione dei post

Devo ancora sviluppare

  • Pubblicazione post
  • Risposta ai post
  • Bacheca avvisi
  • Sistema di rating
  • Sistema di tag, notifiche

Problemi incontrati

Linee guida per la presentazione

Scaletta presentazione TM

Durante la presentazione dovrete mostrare i documenti e il progetto che avete sviluppato.
La presentazione verrà divisa in due parti

  1. presentazione dei documenti sviluppati(RAD, SDD, ecc...),
  2. una live demo del sistema

Consigli utili

Le slide devono contenere poco testo e molte immagini, ricordatevi, le slide servono ad introdurre un discorso quindi mostrate la slide e la commentate se durante la presentazione leggete quello che c'è scritto sulle slide state dimostrando di non aver capito niente di ciò che avete fatto.

Per presentare il lavoro svolto avrete a disposizione 5 minuti ciascuno, sfuttateli al meglio e andate direttamente al contenuto senza fare troppi giri di parole.

Rileggere i documenti:

Una volta che avete preparato le slide ripetete le vostra parte e cercate di rientrare nei tempi.

Come si svolgerà la presentazione

Il progetto verrà introdotto da noi PM e in seguito lasceremo la parola a voi.
La presentazione verrà fatta seguendo la seguente scaletta

RAD Giuseppe Cavaliere, Davide Bottiglieri

Dovete presentare

  • attori,
  • scenari,
  • casi d'uso,
  • sequence,
  • activity
  • mockup
    Ovviamente i mockup, gli scenari i casi d'uso ecc... non li dovete mostrare tutti bastano solo i più importanti per far capire cosa fa il sistema

SDD Silvio Corso

Devi presentare i design goal(fai molta attenzione a questi), la architettura del sistema e la gestione dei dati persistenti partendo dall'E-R fino ad arrivare allo schema logico, puoi fare anche riferimento ai cambiamenti che ha subito nel tempo il db.

ODD Rosaria Iorio

Devi indiare la struttura in package del sistema ed illustrare i design patter utilizzati e il class diagram, Ros rivediti un pò il codice perchè è probabile che ti chiedano di aprire l'IDE e di mostrare dove sono stati implementati i pattern.

Testign & tool utilizzati Alfonso Ruggiero

Devi illustrare i documenti di testing, le metodologie e le tecniche utilizzate per la generazione dei casi di test, infine fai una breve panoramica di tutte le tecnologie che abbiamo utilizzato spiagendo anche il perchè abbiamo scelto di usare queste tecnologie per tecnologie intendo(Git, le pull request, Node, Mocha, Travis, ESLint, AWS).
P.S. Il video di gource lo lancerai tu penso, ti aggiornerò quanto prima

Live demo Francesco Breve, Paolo Cantarella, Vincenzo Sabato

Durante la live dovrete mostrare il funzionameto del sistema, la vostra scaletta sarà questa:

  1. Vincenzo Sabato Profilo Utente,
  2. Francesco Breve Forum & Coordinatori,
  3. Paolo Cantarella Chat.

Gradirei che il primo a presentare quindi Vincenzo Sabato avvi il server remoto come introduzione per far vedere che abbiamo un server e il db remoto(non ci arrivano tutti a fare questo quindi è bene farlo vedere) e infine Paolo Cantarella concluda mostrando il report della branch coverage lanciando il comando npm test e che faccia anche vedere una esecuzione di ESLint con npm run lint in modo tale da far vedere che il codice rispetta i requisiti di qualità che ci siamo prefissati.

Una volta finita questa parte ringraziate per l'attenzione e cominiciate a pregare.

Linee guida per l'implementazione

Organizzazione

Le gestioni sono quattro per ogni gestione va implementato il codice:

  • lato server (Node.js);
  • lato client (JQuery, Boostrap);
  • test di unità (Node.js Mocha e Chai);
  • test di sistema (Selenium).
    Chi si occupa di sviluppare il server dovrà anche sviluppare le classi di test per il test di unità,mentre chi si occupa del client dovrà definire i test da far lanciare a Selenium. Il test richiederà poco tempo perchè se definite bene le classi di test queste resteranno invariate per tutta la durata dell'implementazione.

Quando fare la npm i

Il comando npm iva lanciato in due casi:

  1. Avete appena clonato il repository quindi dovete installare le dipendenze descritte nel package.json;
  2. Fate una pull e vi accorgete che qualcuno ha modificato il package.json;

Come avviare il server

Il server può essere avviato utilizzando uno di questi due comandi(pre-condizione: aver lanciato la npm i, trovarsi sulla cartella server)

  1. lanciate il comando node app.js, lo svantaggio di questo metodo è il fatto che ogni qualvolta viene effettuata una modifica sul server, il server deve essere riavviato;
  2. lanciare il comando nodemon app.js, lanciado il server con questo comando il server effettuarà da solo il riavvio(pre-condizione installare nodemon con il comando npm i -g nodemon).

Cos'è un JSON

Un JSON è un oggetto JavaScript infatti JSON sta per JavaScriptObjectNotation. Esso viene dichiarato fra parentesi graffe ed è composto da una chiave(che identifica l'attributo) e un valore(che identifica il valore di quell'attributo) ad esempio l'oggetto Studente è:
{"nome": "Francesco", "cognome": "Vicidomini", "matricola": "051210533"}

Come effettuare la validazione dell’input

I dati inseriti dall’ugente vanno validati due volte la prima lato client usando l’attributo pattern di HTML5 al pattern va assegnata la regexp(descritta nel CS) utile per validare il campo. Gli input vanno validati anche lato server quindi prima di effettuare operazioni che accedono al DB usate gli if else e le regexp per validare i dato che vi sono arrivati.

Quali codici HTTP usare per segnalare un errore

Per sapere quali codici HTTP usare consulare il seguente link HTTP Code

Come funziona il console.log()

La funzione console.log(args) è una funzione molto potente però va usata con parsimonia! Essa infatti ci consente di stampare il contenuto di una variabile. Ricordate se usate il console.log() in una pagina html allora la stampa verrà mostrata sulla console da sviluppatore del vostro browser, invece, se usate il console.log in un file .js presente nella cartella server allora la stampa avverrà sulla console di VSCode.

Struttura di controllo

Con il termine struttura di controllo mi riferisco al costrutto

if(condizione){
istruzioni
          }else{
istruzioni
}

Al fine di mantenere una branch coverage alta è importante usare questa struttura come è stata descritta sopra è creare dei casi di test che vaglino si il caso in cui la condizione ci permette di entrare nell if sia il caso in cui la condizione ci permette di entrare nell'else.

Strutture cicliche

Le strutture cicliche devono avere una condizione di entrate e una condizione di uscita è severamente vietato l'uso delle istruzioni break e continue, è severamente anche l'uso del while(true).

Usate Postman

Nel caso in cui dovete provare una richiesta HTTP non perdete tempo a creare una pagina html solo per provare la richiesta, piuttosto usate Postman che con pochi click vi consente di effettuare una richiesta HTTP

Nel caso in cui ci siano ulteriori dubbi lasciate un commento sotto questa Issue.

Spostare la cartella upload

Describe the bug
La cartella upload si trova nella root del progetto questo non va bene, upload deve stare sotto la cartella server.

Review

Sviluppo

  • client
  • server

Ho sviluppato

  • Registrazione alla piattaforma
  • Login alla piattaforma
  • Cancella account
  • Inserimento Bio
  • Visualizzazione dati di accesso
  • Modifica dati di accesso

Devo ancora sviluppare

  • Recupero della password

Problemi incontrati

Sto avendo dei problemi ad implementare la funzionalità di recupero password, ma penso di essere sulla buona strada.
Vorrei ridurre il numero di 'if' dove possibile.

Linee guida per l'utilizzo di git

Quando effettuare una pull

La prima cosa da fare prima di cominciare a lavorare è fare la pull da gitKraken, così facendo scaricherete le ultime modifiche effettuate sul progetto e lavorere sulla versione più aggiornata.

Differenza fra commit e push

Il commit viene effettuato in locale, quando fate una commit gli altri non vedono ancora i cambiamenti che avete effettuato. La push carica i cambiamenti che avete fatto sul repository remoto quindi quando qualcun altro effettuerà la pull scaricherà i vostri cambiamenti.

Come fare un commit

Il commit deve contenere sempre un breve titolo(possibilmente in inglese) e eventualmente una descrizione(potete farla anche in italiano).
La push deve essere fatta soltanta se le funzionalità implementate sono state testate, se la funzionalità non risulta testata la push verrà cancellata!. Ricordate che i PM non hanno bisogno di vedere studiare tutto il vostro codice per scoprire questi errori, perchè vedremo il resoconto di Travis.

Cosa fare prima di effettuare la commit

Prima di effettuare la commit dovete eseguire i test, questi si eseguono tramite il comando npm test.
Una volta che accertati del successo dei test dovete lanciare il comando npm run lint questo comando formatterà il codice secondo gli standard definiti e segnalerà errori nel caso in cui esso non sia in grado di correggerli da solo. Una volta che avete risolto gli errori del comando npm run lint potete committare.

I branch

I branch sono le diramazioni che avrà il repository, nel nostro caso i branch saranno 5 ovvero il master e un branch per ogni gestione(PRU, FRM, CRD, CHT). Con gitKraken dovete fare il check-out sul branch alla quale siete stati assegnati, il check-out indica che da questo momenti i vostri commit e le vostre push verranno effettuate sul branch che avete selezionato. Alla fine della settimana verrà effettuato il merge ovvero tutti i branch esistenti verranno ricongiunti al branch master. Il merge dei vari branch verrà effettuato tramite una pull-request.

Nel caso in cui ci siano ulteriori dubbi lasciate un commento sotto questa Issue.

Error in npm test


name: Bug report
about: Create a report to help us improve
title: '' Error in npm test"
labels: '' Bug", "help wanted"
assignees: ''Silvio Corso"


Describe the bug
Lanciando npm test viene generato:
TypeError(): Router.use() requires a middleware function but got a Object

To Reproduce
Steps to reproduce the behavior:

  1. cd server
  2. npm test

Expected behavior
Mi aspettavo che i test andassero tutti a buon fine.

Desktop (please complete the following information):

  • OS: Windows 10

How to upload an image in a img tag

Describe the bug
Ottenere un'immagine dal database e caricarla nell'attributo src può risultare complicato tramite gli screen illustrerò come fare.

How to

Fare la richiesta ajax al route dove si ottengono le informazioni dal database richieste
help1

A seconda delle proprie esigenze adattare il seguente codice. Help3 conterrà l'immagine ottenuta dal database tuttavia non è in un formato adatto da poter essere inserito direttamente in src.
n.b. La mia gestione conteneva diversi tag img e diverse immagini ottenute dal database(array json) per cui ho dovuto utilizzare l'indice i per prendere l'i-esima immagine dal database (data[i]) e caricarla nell'i-esimo tag img (output[i]).
help2

Per qualsiasi dubbio contattatemi.

System Test Case Specification: Cap2. Assunzioni/Vincoli/RischiCap3. Test Case Specification

  • Assunzioni (cap2.1)
  • Vincoli (cap2.2)
  • Rischi (cap2.3)
  • Gestione profilo utente (cap3.1)
  • Gestione forum (cap3.2)
  • Gestione coordinatori (cap3.3)
  • Gestione chat (cap3.4)
  • Per quanto riguarda il template da usare per la scrittura del documento fare riferimento a
    SE_ACRONIMODOCUMENTO_Vers.x.yz_TEMPLATE (1).docx
  • Per provare le espressioni regolari regex101
  • Per quanto riguarda i contenuti fare riferimento al documento LIBRA_TCS_V_2.0 presente un esempi passati su OneDrive

Review

Sviluppo

  • client
  • server

Ho sviluppato

  • Inserimento post
  • Visualizzazione post
  • Inserimento risposta
  • Visualizzazione risposta

Devo ancora sviluppare

  • Fissare post
  • Certificazione profilo
  • Visualizzazione post tramite tag
  • Visualizzazione avvisi (bacheca a.)
  • Inserimento avvisi (bacheca a.)
  • Modifica voto (rating)

Problemi incontrati

Sto avendo qualche problema con il fissaggio del post, per ridurre il numero di costrutti "if" avevo deciso di farlo tramite una query ma penso di dover cambiare approccio dato che non mi sta portando a nulla di concreto, inoltre vorrei avere alcune delucidazioni sull'upload dei file.

Consegna RAD

I questa data va fatta la consegna del RAD alla prof.ssa.

I PM dovranno ricevere il RAD in data 24/11/18 entro le 18:00.
Il RAD dovrà contenere gli artefatti presenti nel RAD Draft con l'aggiunta della sezione dell'Object Modelling che conterrà:

  • Class Diagram;
  • Sequence Diagram;
  • Statechart Diagram

Alla sezione di Object Modelling dovrà seguire la sezione User inteface che conterrà:

  • Path navigazionali;
  • Mockup

Ricordate che vanno apportate anche modifiche agli artefatti prodotti in passato e che oltre al RAD va anche consegnato il Manuale utente

Test Plan Capitoli dall' 1 al 14

  • Introduzione(Cap1)
  • Definizioni e acronimi(Cap 1.1)
  • Riferimenti(Cap 1.2)
  • Documenti correlati(Cap 2)
  • Panoramica del sistema(Cap 3)
  • Possibili rischi(Cap 4)
  • Funzionalità da testare(Cap 5)
  • Funzionalità da non testare (Cap 6)
  • Approccio(Cap 7)
  • Criteri di pass/fail(Cap 8)
  • Criteri di sospensione e ripresa(Cap 9)
  • Test deliverables(Cap 10)
  • Materiale per il testing(Cap 11)
  • Necessità di training per lo staff(Cap 12)
  • Responsabilità(Cap 13)
  • Pianificazione dei rischi e contigenza(Cap 14)

Review

Sviluppo

  • client
  • server

Ho sviluppato

  • Il sistema dovrà mostrare una lista con tutti gli studenti che sono in procinto di partire e gli studenti già partiti, con relativi dati anagrafici e nome del coordinatore esterno (e/o eventuale link al profilo). (RF_CRD_1)
  • Il sistema dovrà permettere di visualizzare una mappa che mostrerà dove si trovano tutti gli studenti Erasmus. (RF_CRD_3)

Devo ancora sviluppare

  • Il sistema dovrà permettere ai coordinatori di aggiungere uno studente non ancora coordinato alla propria lista. (RF_CRD_2)
  • Il sistema dovrà permettere di visualizzare una “Timeline” che mostrerà i progressi e i documenti caricati relativi ad ogni studente coordinato. (RF_CRD_8)

Problemi incontrati

  • Visualizzazione immagine del profilo
  • Creazione dinamica di pagine html
  • Reindirizzamento ad altre pagine
  • Implementazione geocoding di mapbox

Review

Sviluppo

  • client
  • server

Ho sviluppato

  • Il login e la registrazione dell'utente
  • Recupero password

Devo ancora sviluppare

  • Inserimento dati personali
  • Modifica dati personali
  • Eliminazione account
  • Modifica dati account

Problemi incontrati

Unhandled rejection TypeError: res.send(...).statusCode is not a function

Describe the bug
Usando res.statusCode(<codice HTTP>) viene generato l'errore: Unhandled rejection TypeError: res.send(...).statusCode is not a function

To Reproduce

  1. Eseguire una query (sequelize) dove la bisogna settare lo statusHTTP.

Expected behavior
Mi aspettavo lo statusCode impostato, invece il codice HTTP restituito era 200.

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.