Giter Site home page Giter Site logo

iorestoacasa-work / iorestoacasa.work Goto Github PK

View Code? Open in Web Editor NEW
35.0 9.0 9.0 7.48 MB

Frontend of the video calling platform iorestoacasa.work

Home Page: https://iorestoacasa.work

License: GNU Affero General Public License v3.0

HTML 10.71% CSS 2.81% JavaScript 85.28% Shell 0.01% Less 1.20%
covid-19 covid19 coronavirus iorestoacasa jitsi jitsi-meet videocall

iorestoacasa.work's People

Contributors

azzeccagarbugli avatar coffeestraw avatar dambrosiom avatar feroda avatar mepy2 avatar pharmak0n avatar radeox avatar tapionx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

iorestoacasa.work's Issues

tradurre Multiparty Meeting in italiano

questo è un compito adatto anche a non tecnici.
Sarebbe bello tradurre l'interfaccia del software Multiparty Meeting in italiano.
Sono 139 stringhe, nemmeno troppe 😄
Basta andare qua:
https://github.com/havfo/multiparty-meeting/blob/develop/app/src/translations/en.json
scaricare il file, rinominarlo in it.json e tradurre le frasi.

le parole tra parentesi graffe vanno lasciate come sono.

Ad esempio:
"room.peerChangedDisplayName": "{oldDisplayName} is now {displayName}",

"room.peerChangedDisplayName": "{oldDisplayName} ora si chiama {displayName}",

Aggiungere icona per cluster Jitsi

Il numero dei core delle singole istanze perdono di significato quando dietro ad un unico Front end ci sono più videobrigde. Si dovrebbe aggiungere un'icona per indicarne l'esistenza

Forse potrebbe essere modificato lo script per le metriche per:

  • rilevare automaticamente il numero di core
  • accorpare eventuali metriche da altri nodi.

correggere percorsi nella guida di installazione di MM

Errati:
cp config/app/config.example.js config/app/config.js
cp config/server/config.example.js config/server/config.js

Corretti:
cp configs/app/config.example.js configs/app/config.js
cp configs/server/config.example.js configs/server/config.js

sito web, minimale e comunicativo

Sezioni:

  • tabella dei server, in primo piano nella landing page
  • a cosa serve, come lo uso
  • come posso aiutare
  • FAQ
  • footer con link al canale telegram di supporto, a GitHub e credits

Supporto per caratteri speciali nel nome della stanza

A quanto pare se si usano caratteri speciali nel nome della stanza il server restituisce un 404.

Esempio: https://befair1.iorestoacasa.work/una-conferenza
oppure https://befair1.iorestoacasa.work/una%20conferenza

Leggendo le risposte a questo thread su meet.jit.si dicono che c'è da impostare una regex lato webserver.

Si può implementare la stessa cosa?

Integrare in chat un bot di accoglienza

Sarebbe utile in chat un bot che risponda ai primi messaggi dei nuovi arrivati. Che offra le opzioni per andare alla pagina "voglio contribuire" o alle "issues"(lavori in corso) o alla checklist personale (cosa manca da fare per il mio server?)

le singole FAQ devono essere "linkabili"

accanto al nome della FAQ deve esserci il simbolino della catena che posso copiare ed incollare.
Incollando l'URL della singola FAQ l'utente può essere indirizzato (tramite fragment) alla risposta che cerca

Non riesco ad aggiungere partecipanti

Mi collego a
"Io Resto A Casa.work"
scelgo
"open.meet.garr.it"

Dopo aver dato un nome ad una nuova conferenza, schiaccio VAI ed entro.

A questo punto schiaccio il pulsante con il segno “+”, in basso a destra e compare la finestra “Invita persone a questo meeting”.
Aggiungo un numero di telefono e schiaccio “Invita” e mi compare il carattere “!” In un rombo quadrato rosso, con a fianco la scritta “Failed to add participants”.
Ho inserito il numero di telefono in tutti i formati possibili:
+123 456 7890123
+1234567890123
00123 456 7890123
001234567890123
456 7890123
4567890123
cioè con e senza il prefisso internazionale con il “+” e con “00”, con e senza gli spazi (“blank”), ma il risultato non cambia.

Cosa devo fare?

Grazie ed un saluto

Integrare Jekyll per le news?

Sarebbe carino poter mettere una sezione news in cui scrivere "Oggi Open Solutions si è aggiunta al progetto", oppure "Oggi SEEWEB si è aggiunto al progetto", oppure... rendere come blogpost direttamente i commit al branch master :-D

Ridurre il carico sui client

come noto a tutti, il carico su banda e risorse dei client, con le impostazioni di default, diventa insostenibile dopo un certo numero di partecipanti.

Noi del Jitsi Club stiamo testando alcune configurazioni che permettano di ridurre il carico sui client e, conseguentemente, consentano di tenere videoconferenze con un alto numero di partecipanti con webcam attiva.

La guida è in costante aggiornamento (sul punto v. sez. "tuning"), ma cerco di condividere anche qui i miei test in modo tale che sia più facile collaborare nella ricerca della configurazione ottimale.

Le modifiche al file /etc/jitsi/meet/*-config.js che ho provato ieri sono le seguenti:

→ Selezione Codec H264

di default Jitsi sembra usare VP8: impostare la preferenza per H264 dovrebbe ridurre il carico per i client senza accelerazione hardware per VP8.

    // If set to true, prefer to use the H.264 video codec (if supported).
    // Note that it's not recommended to do this because simulcast is not
    // supported when  using H.264. For 1-to-1 calls this setting is enabled by
    // default and can be toggled in the p2p section.
    preferH264: true,

→ Riduzione della risoluzione

il parametro resolution pare funzionare solo sui browser più vecchi, quindi bisogna agire anche sulla sezione constraints. (Ok, 480 normalmente non è 16:9. Da valutare 360 e 540).

    // Sets the preferred resolution (height) for local video. Defaults to 720.
    resolution: 480,

    // w3c spec-compliant video constraints to use for video capture. Currently
    // used by browsers that return true from lib-jitsi-meet's
    // util#browser#usesNewGumFlow. The constraints are independency from
    // this config's resolution value. Defaults to requesting an ideal aspect
    // ratio of 16:9 with an ideal resolution of 720.
    constraints: {
        video: {
             aspectRatio: 16 / 9,
             height: {
                 ideal: 480,
                 max: 480,
                 min: 240
             }
         }
     },

→ Sospensione dei layer inutilizzati

Il funzionamento è spiegato qui.

    // Enable / disable layer suspension.  If enabled, endpoints whose HD
    // layers are not in use will be suspended (no longer sent) until they
    // are requested again.
    enableLayerSuspension: true,

→ Riduzione del numero di stream ricevuti

Ispirandomi al funzionamento di Teams (che visualizza solo gli ultimi 4 ad aver parlato), ho trovato questo studio e queste istruzioni ufficiali. L'ideale forse è 4 (unico "problema" è che la schermata visualizza comunque tutti i parecipanti, anche quelli "spenti" - bisognerebbe vedere se si riesce a modificare l'interfaccia).

    // Default value for the channel "last N" attribute. -1 for unlimited.
    channelLastN: 6,

con queste impostazioni ieri ho tenuto una conferenza con 14 partecipanti (12 con video attivo) senza alcun problema né per il server (2 core 4gb ram 4gb swap) né per i client (la maggior parte smartphone, 1 tablet, 1 mac e qualche PC).

la cosa migliore sarebbe poterle testare in scenari diversi e con server più potenti e, per questo, chiedo il vostro aiuto (non è semplice mettere assieme 15/20 persone per un test).

un ulteriore parametro da testare è disableSimulcast, nel caso in cui non non si attivi preferH264.

downside: impostando una risoluzione massima lato server anche le conference con 2-3-4 partecipanti saranno in low-res


edit 28/03 h. 9.39: precisazioni sul codec H264

scrivere la documentazione in italiano a prova di "utonto" per installare MM tramite docker

replicare quanto già fatto per Jitsi:
https://github.com/iorestoacasa-work/docker-jitsi-meet/blob/master/README.md

Una guida di installazione in italiano, semplice, con procedure da seguire passo passo, ben testate e documentate.

Descrivo qua brevemente i passaggi da documentare per l'installazione.

cd /opt/
git clone https://github.com/iorestoacasa-work/mm/
cd mm

ottenere dei certificati SSL per il dominio su cui si vuole pubblicare MM
certbot certonly -d miodominio.it --standalone

assicurarsi che il dominio risolva correttamente all'IP della macchina

copiare i certificati (chiave pubblica e privata) nella cartella certs/

creare i file di configurazione di MM partendo dai template di esempio:
cp conturn.example.conf coturn.conf
ed modificare opportunamente i CHANGEME

cp configs/app/config.example.js configs/app/config.js
e modificare opportunamente i CHANGEME

cp configs/server/config.example.js configs/server/config.js
e modificare opportunamente i CHANGEME

ora lanciare docker
docker-compose up -d

verificare che MM stia funzionando collegandosi con il browser all'hostname scelto e facendo una videochiamata

verificare che le metriche siano esposte:
curl http://hostname.scelto.it:8081/metrics

raccogliere metriche

la tabella deve mostrare il numero di utenti collegati su ogni server.

Per ottenere questo scopo c'è bisogno di:

  • fare un fork del repository https://github.com/jitsi/docker-jitsi-meet
  • modificare il docker-compose.yml aggiungendo un container che espone le metriche interne su una porta alta, con autenticazione HTTP basic
  • realizzare un semplice scraper nell'host www che ogni 30 secondi legge le metriche (e/o prometheus + grafana) e scrive un file hosts.json
  • il sito web caricherà in JavaScript /hosts.json e renderizzerà la tabella

trovare nuovi server

volontari e attivisti devono capire al volo:

  • che possono aggiungere un loro server, gestito da loro, alla tabella

  • dove devono contattarci (chat telegram di supporto con link pubblico)

  • requisiti minimi?

  • esporre le metriche obbligatorio o no?

  • è opportuno contattare tutti i provider che hanno datacenter in Italia (e dintorni) per chiedere se mettono a disposizione una macchina per la durata dell'emergenza.
    I datacenter italiani sono da preferire, per avere minore latenza e congestionamento.

Realizzare snippet di embed della nostra lista in altre pagine

Il nostro progetto può essere utile a chiunque voglia mostrare una lista di server Jitsi e il corrispondente carico di lavoro. Quindi direi di produrre ed inserire nella pagina "voglio contribuire" gli snippet che possono servire allo scopo. Mettiamoci dalla parte del Comune di Fabriano o di altra istituzione che volesse embeddare la nostra lista nel proprio sito, come può farlo velocemente ed ottenere un contenuto adattabile alla dimensione che gli occorre?

L'idea mi è venuta pensando che lo stesso codice si potrebbe inserire in: https://it.wikibooks.org/wiki/Software_libero_a_scuola/Jitsi#Scegliere_il_server_Jitsi che altrimenti rimane una lista agnostica.

Rivisitazione della homepage

Rendere la homepage più user-friendly e spostare di conseguenza la tabella dei server in una pagina dedicata.

Questo dovrebbe rendere il sito web più facile da comprendere per gli utenti visitatori.

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.