Skip to content

alem1105/wasa-text

Repository files navigation

Wasa - Text

Questa repository contiene il progetto realizzato per l'esame Programmazione per Il Web (WASA) per l'anno accademico 25/26 all'Universitá Sapienza.

Wasa - Text é un'app di messaggistica che permette a piú utenti di parlare fra loro, nello specifico le funzionalitá disponibili sono:

  • Creazione e modifica profilo utente
  • Invio / ricezione / risposta / inoltro / reazione di messaggi
  • Crezione Chat e Gruppi
  • Spunte blu per invio, ricezione e lettura messaggi

🛠️ Installazione

Per prima cosa va clonata la repo:

# Tramite SSH:
git clone [email protected]:alem1105/wasa-text.git

Esecuzione con Docker

Per eseguire il backend:

# Buildare l'immagine
docker build -t wasa-backend . -f Dockerfile.backend

# Eseguire l'immagine
docker run -it --rm -p 3000:3000 wasa-backend

Per eseguire il frontend:

# Buildare l'immagine
docker build -t wasa-frontend . -f Dockerfile.frontend

# Eseguire l'immagine
docker run -it --rm -p 8080:80 wasa-frontend

Oppure lanciarli entrambi tramite docker compose:

# Con build
docker-compose up --build

# Solo esecuzione
docker-compose up

Compilare il progetto senza Docker

Per eseguire il backend:

  1. Posizionarsi alla radice della cartella wasa-text

  2. Compilare l'eseguile tramite Go:

    user@desktop:~/wasa-text$ go build ./cmd/webapi
  3. Eseguire il file appena compilato:

    user@desktop:~/wasa-text$ ./webapi
  4. Adesso é possibile fare chiamate HTTP verso localhost:3000

Per eseguire il frontend:

  1. Entrare nel container con node eseguendo open-node.sh
  2. Una volta all'interno del container:
    • Si puó eseguire il frontend e vedere modifiche live con
    yarn run dev
    • Compilare il frontend ed eseguirlo con:
    yarn run build-prod
  3. Ci si puó collegare al frontend tramite localhost:5173

🏗️ Struttura del progetto

Il progetto si basa sul template Fantastic Coffee Decaffeinated messo a disposizione dal docente durante il corso.

É organizzato in questo modo (mostrati solo i file piú importanti per apportare modifiche):

├── 📁 cmd
│   ├── 📁 healthcheck
│   └── 📁 webapi # Contiene il main e impostazioni come il percorso per il Database
├── 📁 demo
├── 📁 doc
│   └── ⚙️ api.yaml # Documentazione delle API
├── 📁 service
│   ├── 📁 api # Contiene tutti i file per gestire le chiamate API
│   │   ├── 📁 reqcontext # Wrapper per l'autenticazione nelle chiamate
│   ├── 📁 database # File che effettuano le Query sul DB
│   │   ├── 📁 db_errors
│   ├── 📁 globaltime
│   └── 📁 structures # Structs utilizzate nel codice
├── 📁 static # Immagini di default e caricamenti effettuati dagli utenti
│   ├── 📁 images
│   └── 📁 uploads
├── 📁 vendor
├── 📁 webui
│   ├── 📁 .yarn
│   │   ├── 📁 releases
│   ├── 📁 public
│   │   ├── 📁 bootstrap
│   │   │   ├── 📁 css
│   │   │   └── 📁 js
│   │   ├── 🖼️ defaultUserPic.jpg
│   │   ├── 📄 favicon.ico
│   │   └── 🖼️ feather-sprite-v4.29.0.svg
│   ├── 📁 src
│   │   ├── 📁 assets
│   │   ├── 📁 components
│   │   ├── 📁 router
│   │   │   └── 📄 index.js
│   │   ├── 📁 services
│   │   │   ├── 📄 axios.js
│   │   │   └── 📄 imageCache.js
│   │   ├── 📁 views # Componenti Vue.js
│   │   ├── 📄 App.vue
└── └── └── 📄 main.js

ℹ️ Note

Vorrei reimplementare alcune funzionalitá che, soprattutto per via delle consegne, ho implementato in modo frettoloso ma non so se rimetteró mai mano al progetto.

Spero torni comunque utile ai futuri studenti come a me sono tornati utili i progetti degli altri per capire il template 🙏🏻

📃 License

Il codice, come il template utilizzato, é sotto la licenza MIT.

About

Progetto WASA-Text per il corso Programmazione per il Web 25/26

Resources

License

Stars

Watchers

Forks

Contributors