Pagina Appunti #2

Open
opened 3 years ago by aziis98 · 4 comments
Owner

Pagina con la lista delle dispense degli utenti, gli utenti possono inoltre aggiungere delle proprie dispense e i macchinisti possono "pinnare" delle dispense importanti.

Altre idee/discussioni sono ben accette

Edit.

  • /appunti

    Pagina di appunti, anche qui come per la pagina utenti con fuzzy search e ricerca per tags.

    Inoltre bisogna aggiungere finalmente un DB e l'autenticazione per utente in modo che ciascuno abbia una propria pagina per aggiungere link a delle dispense con un sistema di approvazione da parte dei macchinisti per approvare i link alle dispense e/o controllare che non si siano rotti dei link (?)

    • Lista appunti di tutti gli utenti

    • Tags

    • Ricerca fuzzy nella lista e per tag

  • /appunti/condivisi

    Pagina di ogni utente per aggiungere e modificare link ad appunti, ci si può anche arrivare /profilo, se l'utente è un admin allora questa è anche la pagina per approvare dispense.

    • Possibilità di aggiungere dispense per ogni utente

      Intanto serve caricare un PDF contenente la dispensa, varie proprietà di una dispensa sono

      • titolo
      • descrizione
      • insieme di tag
      • data di creazione della dispensa
      • nome del file (eg. quando l'utente scarica il PDF non vedrà il nome con l'hash ma solo {nomeFile}.pdf)
      • hash del pdf corrente

      Inoltre se la dispensa è nella forma di appunti di un corso tra i tag si possono aggiungere anche

      • nome del corso (eg. Geometria 2)
      • codice del corso (eg. 511AA)
      • anno accademico del corso (eg. 2017/2018)
      • professore lo ha tenuto

      Cose da fare:

      • Upload di PDF, aggiungere una variabile d'ambiente per indicare dove upload-are i file. Probabilmente i file finiranno in {hash}.{nomeFile}.pdf anche se la parte {nomeFile} verrà ignorata per quanto riguarda il content-store.

        Per ora i file saranno sulla stessa macchina del server del sito, poi magari aggiungeremo un collegheremo ad un servizio di storage come phc/storage o un bucket S3.

    • Sistema di approvazione delle nuove dispense

      I PDF delle dispense saranno identificati dal proprio hash (probabilmente sha256), e ci sarà una lista di hash approvati che indicherà quali dispense sono scaricabili.

Pagina con la lista delle dispense degli utenti, gli utenti possono inoltre aggiungere delle proprie dispense e i macchinisti possono "pinnare" delle dispense importanti. Altre idee/discussioni sono ben accette **Edit.** - [ ] `/appunti` Pagina di appunti, anche qui come per la pagina utenti con fuzzy search e ricerca per tags. Inoltre bisogna aggiungere finalmente un DB e l'autenticazione per utente in modo che ciascuno abbia una propria pagina per aggiungere link a delle dispense con un sistema di approvazione da parte dei macchinisti per approvare i link alle dispense e/o controllare che non si siano rotti dei link (?) - [ ] Lista appunti di tutti gli utenti - [ ] Tags - [ ] Ricerca fuzzy nella lista e per tag - [ ] `/appunti/condivisi` Pagina di ogni utente per aggiungere e modificare link ad appunti, ci si può anche arrivare `/profilo`, se l'utente è un admin allora questa è anche la pagina per approvare dispense. - [ ] Possibilità di aggiungere dispense per ogni utente Intanto serve caricare un PDF contenente la dispensa, varie proprietà di una dispensa sono - titolo - descrizione - insieme di tag - data di creazione della dispensa - nome del file (eg. quando l'utente scarica il PDF non vedrà il nome con l'hash ma solo `{nomeFile}.pdf`) - hash del pdf corrente Inoltre se la dispensa è nella forma di appunti di un corso tra i **tag** si possono aggiungere anche - nome del corso (eg. `Geometria 2`) - codice del corso (eg. `511AA`) - anno accademico del corso (eg. `2017/2018`) - professore lo ha tenuto **Cose da fare:** - [ ] Upload di PDF, aggiungere una variabile d'ambiente per indicare dove upload-are i file. Probabilmente i file finiranno in `{hash}.{nomeFile}.pdf` anche se la parte `{nomeFile}` verrà ignorata per quanto riguarda il _content-store_. Per ora i file saranno sulla stessa macchina del server del sito, poi magari aggiungeremo un collegheremo ad un servizio di storage come `phc/storage` o un bucket S3. - [ ] Sistema di approvazione delle nuove dispense I PDF delle dispense saranno identificati dal proprio hash (probabilmente sha256), e ci sarà una lista di hash approvati che indicherà quali dispense sono scaricabili.
aziis98 added this to the Roadmap project 3 years ago
Owner

In aggiunta le dispense dovrebbero poter essere taggabili in modo da favorirne la ricerca tramite argomento/materia

In aggiunta le dispense dovrebbero poter essere taggabili in modo da favorirne la ricerca tramite argomento/materia
Poster
Owner

Pagine mancanti

  • /appunti

    Pagina di appunti, anche qui come per la pagina utenti con fuzzy search e ricerca per tags.

    Inoltre bisogna aggiungere finalmente un DB e l'autenticazione per utente in modo che ciascuno abbia una propria pagina per aggiungere link a delle dispense con un sistema di approvazione da parte dei macchinisti per approvare i link alle dispense e/o controllare che non si siano rotti dei link (?)

  • /u/:poisson_uid

    Pagina personale di ogni utenti con la possibilità di mettere like e cose del genere. Se l'utente è loggato sulla propria pagina compare anche il campo per aggiungere dispense (?) (oppure si può fare una pagina a parte per utente tipo /dashboard-dispense)

  • /appunti/condivisi

    Pagina di ogni utente per aggiungere e modificare link ad appunti, se l'utente è un admin questa è la pagina per approvare dispense e vedere se ci sono broken links.

### Pagine mancanti - `/appunti` Pagina di appunti, anche qui come per la pagina utenti con fuzzy search e ricerca per tags. Inoltre bisogna aggiungere finalmente un DB e l'autenticazione per utente in modo che ciascuno abbia una propria pagina per aggiungere link a delle dispense con un sistema di approvazione da parte dei macchinisti per approvare i link alle dispense e/o controllare che non si siano rotti dei link (?) - `/u/:poisson_uid` Pagina personale di ogni utenti con la possibilità di mettere like e cose del genere. ~~Se l'utente è loggato sulla propria pagina compare anche il campo per aggiungere dispense (?) (oppure si può fare una pagina a parte per utente tipo `/dashboard-dispense`)~~ - `/appunti/condivisi` Pagina di ogni utente per aggiungere e modificare link ad appunti, se l'utente è un admin questa è la pagina per approvare dispense e vedere se ci sono _broken links_.
Poster
Owner

Come permettere agli utenti di aggiungere dispense?

Per ora abbiamo esplorato varie idee

  • La lista di appunti e dispense è semplicemente una lista di link a dei file presenti su Poisson.

    I link devono per forza puntare ad un contenuto statico altrimenti un utente malvagio potrebbe modificare le cose servite alla fine del link ed aggiungere cose a piacere. (tipo da questo punto di vista permettere link a GoogleDrive sarebbe molto pericoloso)

  • Il problema dei link è che possono rompersi oppure peggio un utente malvagio potrebbe rimpiazzare il contenuto alla fine del link con contenuti malvagi. Un'idea per contrastare ciò oltre all'approvazione da parte di un admin o moderatore potrebbe essere di salvare l'hash del contenuto puntato dal link ed ogni tanto verificare che non siano cambiati (difficile e richiede dei cronjob in qualche forma).

  • Usare solo i link magnet di Torrent per gli appunti, per come funziona Torrent una volta approvati i file non possono essere modificati, questo risolverebbe ogni problema di approvazione (in quanto una volta approvato un link rimane valido per sempre) e si può anche fare in modo che si possano scaricare i file direttamente dal sito con cose tipo WebTorrent.

  • Far direttamente upload-are i contenuti sul sito del PHC, a quel punto i file non possono essere modificati ed il problema scompare (solo che scrivere il codice per fare upload di cose è brutto e serve avere molto spazio libero sulla macchina a meno di non offloadare i file a qualche altro servizio, e.g. https://github.com/minio/minio).

  • Upload-are direttamente dal sito nelle public_html/ delle persone, si potrebbe fare però ad un certo punto serve un qualche script che copia cose con permessi di root e non mi sembra troppo saggio.

  • Un sistema ibrido in cui gli utenti possono sia mettere link a file sulle loro pagine Poisson ed anche caricare file hostati dal sito.

Osservazioni

  • Nel caso dell'upload di cose i file potrebbero essere serviti come /appunti/{documentHash}.pdf oppure visto che alla fine sarebbero caricati da un utente singolo /u/{username}/appunti/{documentHash}.pdf
## Come permettere agli utenti di aggiungere dispense? Per ora abbiamo esplorato varie idee - La lista di appunti e dispense è semplicemente una lista di link a dei file presenti su Poisson. I link devono per forza puntare ad un contenuto statico altrimenti un utente malvagio potrebbe modificare le cose servite alla fine del link ed aggiungere cose a piacere. (tipo da questo punto di vista permettere link a GoogleDrive sarebbe molto pericoloso) - Il problema dei link è che possono rompersi oppure peggio un utente malvagio potrebbe rimpiazzare il contenuto alla fine del link con contenuti malvagi. Un'idea per contrastare ciò oltre all'approvazione da parte di un admin o moderatore potrebbe essere di salvare l'hash del contenuto puntato dal link ed ogni tanto verificare che non siano cambiati (difficile e richiede dei cronjob in qualche forma). - Usare solo i link magnet di Torrent per gli appunti, per come funziona Torrent una volta approvati i file non possono essere modificati, questo risolverebbe ogni problema di approvazione (in quanto una volta approvato un link rimane valido per sempre) e si può anche fare in modo che si possano scaricare i file direttamente dal sito con cose tipo [WebTorrent](https://webtorrent.io/). - Far direttamente upload-are i contenuti sul sito del PHC, a quel punto i file non possono essere modificati ed il problema scompare (solo che scrivere il codice per fare upload di cose è brutto e serve avere molto spazio libero sulla macchina a meno di non offloadare i file a qualche altro servizio, e.g. <https://github.com/minio/minio>). - Upload-are direttamente dal sito nelle `public_html/` delle persone, si potrebbe fare però ad un certo punto serve un qualche script che copia cose con permessi di `root` e non mi sembra troppo saggio. - Un sistema ibrido in cui gli utenti possono sia mettere link a file sulle loro pagine Poisson ed anche caricare file hostati dal sito. ### Osservazioni - Nel caso dell'upload di cose i file potrebbero essere serviti come `/appunti/{documentHash}.pdf` oppure visto che alla fine sarebbero caricati da un utente singolo `/u/{username}/appunti/{documentHash}.pdf`
Poster
Owner

Alla fine è stato deciso per far upload-are i file a mano alle persone e ci sarà un mini sistema di moderazione per accettare i PDF caricati dagli utenti.

Alla fine è stato deciso per far upload-are i file a mano alle persone e ci sarà un mini sistema di moderazione per accettare i PDF caricati dagli utenti.
BachoSeven added this to the Rilascio Iniziale milestone 2 years ago
BachoSeven modified the project from Roadmap to website-ng 9 months ago
BachoSeven added reference dev 9 months ago
BachoSeven changed reference from dev to website-ng 9 months ago
BachoSeven removed reference website-ng 9 months ago
aziis98 changed title from Pagina Dispense to Pagina Appunti 4 days ago
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: phc/website#2
Loading…
There is no content yet.