Skip to content
/ daradara Public

A simple project developed for the IAW course's exam at Politecnico di Torino

Notifications You must be signed in to change notification settings

nMaax/daradara

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DaraDara

DaraDara è un'applicazione web per l'ascolto e la pubblicazione di podcast.

Il nome deriva dall'onomatopea giapponese「だらだら」che, secondo Tofugu, si usa per indicare il "rumore" che si crea quando una persona sta "parlando o spiegando qualcosa di molto poco chiaro e ci sta mettendo tantissimo tempo per farlo"

Installazione veloce 🚀

Per avviare l'applicazione è sufficente collocarsi nel percorso file opportuno e digitare i seguenti comandi sul proprio terminale

pip install -r requirements.txt
flask run

Dopodichè sarà necessario aprire una pagina web all'inidirizzo 127.0.0.1:5000 nel proprio browser preferito (Google Chrome o Firefox).

Per terminare l'applicazione basterà premere CTRL + C ripetutamente nello stesso terminale

Installazione con virtual enviroment

Eventualmente, se non si volessero installare le dipendenze pyhton contenute in requirements.txt a livello globale, prima di avviare i comandi sopra elencati, è possibile creare e attivare un python virtual enviroment con i seguenti comandi

Per macchine OSX / Linux

python3 -m venv venv
. venv/bin/activate

Per macchine Windows

python -m venv venv
. venv/Scripts/activate

per terminare il virtual enviroment è sufficiente digitate deactivate sempre nello stesso terminale

Dispositivi compatibili 📲

DaraDara è ideato per funzionare sui moderni smartphone, tablet e desktop (tutti i dispositivi con almeno 375px di larghezza e 600x di altezza)

DaraDara è responsive e si adatta alle dimensoni di vari schermi grazie all'utilizzo di bootstrap

Alcune linee guida per utilizzare DaraDara

Qui sotto potete trovare elencate una serie di linee guida per utilizzare e debuggare DaraDara

Come posso registrarmi a DaraDara?

Non esiste un tasto che dalla homepage rimandi direttamente alla registrazione, bisogna prima dirigersi nella pagina di login con il tasto accedi e poi premere sulla scritta rossa "Registrati!"

Cosa indicano le icone dell'occhio nel profilo?

Ogni icona rappresentante un occhio che indica se si vuole tenere quella data sezione del profilo pubblica o privata a gli altri utenti. Se l'icona è un normale un occhio allora la data sezione è pubblica a gli altri utenti, se c'è una barra sopra l'occhio allora la sezione è privata e solo il proprietario del profilo può vederla

Come scegli i podcast più in voga?

I 4 podcast più in voga, visualizzabili esclusivamente nella home, sono i podcast con più seguaci su DaraDara, condizione necesaria affinché un podcast possa finire in voga è di aver almeno 1 seguace e almeno 1 episodio

Note Se ci sono meno di 4 podcast con almeno 1 seguace e 1 episodio vengono visualizzati quanti se ne può

Cosa fa il tasto "sorprendimi" nella navabar?

Il tasto "sorprendimi", presente nella navabar, sceglie semplicemente a caso un podcast tra i vari disponibili su DaraDara e lo mostra all'utente

Reset dei dati di Flask

Per facilitare il debug sono state aggiunte due root "nascoste" per ripulire i dati relativi a Flask-Session e Flask-Login, da utilizzare al bisogno.

  • Route per ripulire le sessioni: /clear_session
  • Route per ripulire il login: /clear_login

Si consieri che queste route non sarebbero ovviamente pubblicate in un applicazione web aperta al pubblico, sono da utilizzare solo a scopo di debugging.

Reset del database

In aggiunta è possibile trovare dentro la cartella data una sottocartella chiamata backup dove vi risiedono alcuni file utili a riprendere un backup passato del database

Vi si possono già trovare

  • 1 copia di backup del database chiamata data.db con tutti i dati di default forniti con questo progetto senza le eventuali aggiunte che possono essere state fatte durante il debugging dell'app
  • 1 database vuoto chiamato empty.db con la stessa struttura di questo database, dov'é possibile riempirlo di dati nuovi, eventualmente con lo script dao_filler.py
  • 1 script python chiamato dao_filler.py che attraverso il DAO aggiunge i dati di base forniti con questo progetto

Si consideri che l'app è progettata per avere un minimo di serie ed episodi e non per essere completamente vuota.

Utenti e serie già presenti 🙋

DaraDara è già fornito di alcuni dati di esempio per fornire un esperienza utente basilare per testare tutte le feature messe a disposizione e richieste dal tema d'esame

Utenti

In DaraDara ci sono già 6 utenti: 2 ascoltatori e 4 creatori

Ogni utente è identificato da un indirizzo email e il suo account è protetto da una password

Note Per motivi di debugging gli utenti forniti di default non rispettano gli standard di sicurezza di DaraDara in materia di password, ovvero le loro password sono lunghe meno di 8 caratteri e contengono solo lettere minuscole. Tuttavia questo non significa che un nuovo utente non debba rispettare questi standard, infatti ogni nuovo utente, come si potrà notare nella UI, deve rispettare una serie di regole in fase di registrazione per quanto riguarda la complessità della password

Creatori

  • John Doe (email: john.doe@email.com password: john)
  • Jane Smith (email: jane.smith@email.com password: jane)
  • Robert Johnson (email: robert.johnson@email.com password: robert)
  • Michael Brown (email: michael.brown@email.com password: michael)

Ascoltatori

  • Emily Williams (email: emily.williams@email.com password: emily)
  • Massimiliano Carli (email: admin@daradara.it password: admin)

Podcast (serie)

In DaraDara ci sono già 6 serie, solo Soccer e Basketball dispongono già di alcuni episodi, le altre non hanno nessun episodio

Alcuni utenti già seguono alcune serie, altri ancora hanno già salvato degli episodi. Queste informazioni sono facilmente reperibili del database data.db dentro la cartella data, nelle tabelle saves e follows

  • Soccer (di John)
  • Baseball (di John)
  • Golf (di John)
  • Football (di Robert)
  • Basketball (di Jane)
  • Tennis (di Michael)

Risorse utilizzate 🗃️

DaraDara è stato scritto utilizzando i seguenti linguaggi:

  • HTML
  • CSS
  • JavaScript
  • Python (server-side)

DaraDara è stato inoltre creato utilizzando varie librerie e risorse esterne, tutte elencate qui sotto:

  1. Flask (Flask-Login e Flask-Session) abbinato con Jinja per servire la pagine web
  2. Bootstrap per standardizzare e rendere più intuitiva e responsive la UI
  3. SQLite per salvare i dati in maniera permanente
  4. Googlefonts e Fontawesome per font e icone utilizzate nell'applicazione
  5. La collezione di immagini TechLife di Karthik Srinivas per rendere la UI più gradevole
  6. Il sito di design Canva per sviluppare il logo visibile nella barra di navigazione e come .ico nella scheda del browser
  7. I siti Pexels e FreeMusicArchive per reperire le immagini e gli audio già presenti nell'applicazione
  8. Le librerie python Dateutil e Pillow per gestire le date e la modifica delle immagini server-side
  9. La libreria javascript Dayjs per gestire le date client-side

About

A simple project developed for the IAW course's exam at Politecnico di Torino

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published