ruscomap/README.md

275 lines
10 KiB
Markdown
Raw Normal View History

2024-08-18 17:03:41 +02:00
# RuscoMap
2024-08-17 01:19:31 +02:00
2024-08-19 00:05:39 +02:00
_Una mappa della propria città dove utenti in anonimo possono inserire dei marker con nome, descrizione e foto del'oggetto abbandonato, segnalandolo a tutti i visitatori della mappa._
<br> Sulla falsa riga del "_te lo regalo se vieni a prenderlo_", questo è più il "_segnalo che c'è sta roba lì, è tua se te la vai a prendere_"
2024-08-18 16:53:56 +02:00
2024-08-19 02:25:51 +02:00
### ToDo per essere funzionale alla versione 0.1
2024-06-30 23:01:33 +02:00
2024-08-19 00:36:19 +02:00
- [x] Aggiungere il marker (visivo) al clic di inserimento marker [[commit f611832592](https://git.lattuga.net/scossa/ruscomap/commit/f6118325925ba91173cf5bcc0a206b85fa3ef1a3)]
2024-08-19 01:12:10 +02:00
- [x] Al momento si possono aggiungere infiniti marker (temporanei), da fixare [[commit 0fba9efe99](https://git.lattuga.net/scossa/ruscomap/commit/0fba9efe99057119ef5eedec078987482a193fea)]
2024-08-19 13:23:44 +02:00
#### Ora comincia ad essere utilizzabile ma con davvero molti problemi
2024-08-19 13:22:05 +02:00
2024-08-19 02:25:51 +02:00
### ToDo per essere funzionale alla versione 0.2
2024-08-19 02:21:17 +02:00
- [ ] ~~Cancellare i marker creati > di 24h (sia record db che img)~~ [[commit 78d4b6b216](https://git.lattuga.net/scossa/ruscomap/commit/78d4b6b2169d43550aa3af800ac2f946ebeb9743)]
2024-08-19 13:12:20 +02:00
- [ ] Rimuovere pezzi di codice js per cancellare marker creati > di 24h. La funzione verrà implementata con degli script bash stile plugin, dato che non tutte le mappe saranno per il rusco, nel senso che potrebbero essere maker permanenti (es fontanelle d'acqua). Il codice da pulire dovrebbe essere solo quello del [commit 78d4b6b216](https://git.lattuga.net/scossa/ruscomap/commit/78d4b6b2169d43550aa3af800ac2f946ebeb9743), ma non ne sono sicuro.
2024-08-19 02:25:51 +02:00
- [x] Scrivere script bash (<code>delete_rusco.sh</code>) che cancella tutti marker [[commit c0c4ee99e9](https://git.lattuga.net/scossa/ruscomap/commit/c0c4ee99e9262624ca86a1501429a85890452478)]
- [x] Scrivere script bash (<code>pulisci_vecchio_rusco.sh</code>) che cancella tutti marker più vecchi di 24h (automatico) [[commit c0c4ee99e9](https://git.lattuga.net/scossa/ruscomap/commit/c0c4ee99e9262624ca86a1501429a85890452478)]
2024-08-19 02:56:34 +02:00
- [ ] Come mettere nel cron del server lo script che cancella i marker più vecchi di 24h
2024-08-19 02:25:51 +02:00
- [x] Scrivere script bash (<code>pulisci_manualmente_vecchio_rusco.sh</code>) che cancella tutti marker più vecchi di 24h (manuale) [[commit c0c4ee99e9](https://git.lattuga.net/scossa/ruscomap/commit/c0c4ee99e9262624ca86a1501429a85890452478)]
2024-08-19 02:21:17 +02:00
- [ ] pushare e spostare script in cartella <code>/script</code>
2024-08-19 13:23:44 +02:00
#### Con davvero molti problemi ma con anche il plugin che cancella in automatico
2024-08-19 13:22:05 +02:00
2024-08-19 01:11:08 +02:00
2024-08-19 02:25:51 +02:00
### ToDo per essere funzionale alla versione 0.3
2024-08-17 14:09:47 +02:00
2024-08-19 01:11:08 +02:00
- [x] Implementare il bottone in alto a dx: quando premuto per passare alla modalità inserimento diventa una _X rossa_ che se premuta annulla l'inserimento marker [[commit fa82dc221e](https://git.lattuga.net/scossa/ruscomap/commit/fa82dc221e2e8d1648c78534c0320bd099f897f0)]
- [ ] A marker aggiunto con successo come icona del bottone in alto a dx rimane la X rossa (in modalità inserimento marker) invece di ritornare l'icona del marker (ovvero passare in modalità normale/visualizzazione)
2024-08-19 13:12:20 +02:00
- [ ] Eliminare visualizzazione di eventuali marker temporanei aggiunti se viene cliccata la X rossa
2024-08-19 00:34:58 +02:00
2024-08-19 02:25:51 +02:00
### ToDo per essere funzionale alla versione 0.4
2024-08-19 00:34:58 +02:00
2024-08-19 00:53:52 +02:00
- [ ] Mostrare data/ora pubblicazione del marker per far capire al visitatore quanto tempo fa è stato avvistato il rusco
2024-08-19 00:36:19 +02:00
- [ ] Al momento sul marker temporaneo si vede l'immagine rotta. fixare: sul temporaneo non bisogna mostrare nulla
2024-08-19 00:34:58 +02:00
2024-08-19 02:25:51 +02:00
### ToDo per essere funzionale alla versione 0.5
2024-08-19 00:34:58 +02:00
2024-08-19 00:53:52 +02:00
- [ ] Riformattare visualizzazione form inserimento marker per mobile
2024-08-19 00:36:19 +02:00
- [ ] Milgiorare css del form inserimento dati marker
2024-08-19 00:34:58 +02:00
2024-08-19 02:25:51 +02:00
### ToDo per essere funzionale alla versione 0.6
2024-08-19 00:34:58 +02:00
2024-08-19 00:53:52 +02:00
- [ ] Creare form per ricercare tra i titoli/descrizioni dei marker esistenti (query esempio: "divano")
2024-08-19 00:34:58 +02:00
2024-08-19 02:25:51 +02:00
### ToDo per essere funzionale alla versione 0.7
2024-08-19 00:34:58 +02:00
2024-08-19 01:11:08 +02:00
- [ ] Pop-Up all'apertura di ruscomap con descrizione breve
- [ ] Scrivere il tutorial utente di ruscomap
- [ ] Creare pagina tutorial
- [ ] Link alla pagina del tutorial nel PopUp iniziale
2024-08-19 13:23:44 +02:00
#### Comincia ad avere un senso anche se con solo accesso anonimo può succedere un macello da un momento all'altro
2024-08-19 01:11:08 +02:00
2024-08-19 02:56:34 +02:00
### ToDo per essere funzionale alla versione 0.8
2024-08-19 03:39:48 +02:00
- [ ] Creare form login per admin
2024-08-19 02:56:34 +02:00
- [ ] Creare bottone per form/pagina "area riservata"/"accedi"
2024-08-19 03:39:48 +02:00
- [ ] Creare Pannello Admin
2024-08-19 13:31:11 +02:00
### ToDo per essere funzionale alla versione 0.9
2024-08-19 13:27:53 +02:00
- [ ] Implementare il pannelo per permettere all'admin di poter creare utenti (nomeutente/password, no mail o altro)
- [ ] Permessi Admin: Visita mappa, Aggiungi marker, Accesso a pannello admin
2024-08-19 13:31:11 +02:00
- [ ] Gestione autenticazione utente admin con password
2024-08-19 13:27:53 +02:00
---
2024-08-19 01:31:57 +02:00
2024-08-19 03:39:48 +02:00
## ToDo per essere funzionale alla versione 1.0
2024-08-19 02:56:34 +02:00
2024-08-19 13:27:53 +02:00
- [ ] Creare ruolo Admin: Visita mappa, Aggiungi marker, Accesso a pannello admin
2024-08-19 03:39:48 +02:00
- [ ] Creare Ruolo Utente. Permessi: Visita mappa, Aggiungi marker
2024-08-19 13:27:53 +02:00
- [ ] Creare (?) Ruolo Ospite. Permessi: Visita mappa
2024-08-19 00:53:52 +02:00
- [ ] Gestione autenticazione utenti con password
2024-08-19 03:39:48 +02:00
- [ ] Implemtare nel pannello lo switch per on/off inserimento solo utenti e admin o anche ospiti.
2024-08-19 00:53:52 +02:00
2024-08-19 03:39:48 +02:00
oppure
2024-08-19 02:56:34 +02:00
2024-08-19 03:39:48 +02:00
- [ ] Implemtare review per moderazione rusco inserito
- [ ] Implemtare nel pannello lo switch per on/off moderazione
2024-08-19 02:56:34 +02:00
2024-08-19 13:23:44 +02:00
#### Qui le funzioni di base per utilizzo di massa ci sono tutte
2024-08-19 13:22:05 +02:00
2024-08-19 03:39:48 +02:00
---
2024-08-17 17:06:44 +02:00
2024-08-19 02:56:34 +02:00
### ToDo per essere funzionale alla versione 1.1
2024-08-19 03:39:48 +02:00
- [ ] Feature da pannello admin: poter cancellare un utente
2024-08-19 02:56:34 +02:00
### ToDo per essere funzionale alla versione 1.2
2024-08-19 03:39:48 +02:00
- [ ] Feature da pannello admin: poter disabilitare un utente
2024-08-19 02:56:34 +02:00
### ToDo per essere funzionale alla versione 1.3
2024-08-19 03:39:48 +02:00
- [ ] Cancella Marker
- [ ] Quando autenticati come admin mostrare un pulsante affianco/sopra/dentro al form dei dati del marker che ha la funzione di cancellare il marker corrispondente
- [ ] Popup che chiede la conferma della cancellazione del marker
### ToDo per essere funzionale alla versione 1.4
- [ ] Implemtare review per moderazione rusco inserito
- [ ] Implemtare nel pannello lo switch per on/off moderazione
### ToDo per essere funzionale alla versione 1.5
- [ ] Creare Ruolo Moderatore. Permessi : Visita mappa, Aggiungi marker
### ToDo per essere funzionale alla versione 1.6
- [ ] Feature da pannello admin: poter cambiare ruolo o un utente
### ToDo per essere funzionale alla versione 1.7
- [ ] Feature da pannello admin: poter settare permessi personalizzati ai vari Ruoli (magari si vuole dare l'inserimento anche agli ospiti e/o la cancellazione dei marker agli user)
2024-08-19 13:23:44 +02:00
#### Ok, ora si comincia a chiamare webapp
2024-08-19 03:39:48 +02:00
### ToDo per essere funzionale alla versione 1.8
2024-08-19 02:56:34 +02:00
- [ ] Creare form registrazione con mail
- [ ] Richiedere conferma mail via link spedito a l'indirizzo
2024-08-19 13:23:44 +02:00
2024-08-19 13:31:11 +02:00
### ToDo per essere funzionale alla versione 2.0
2024-08-19 13:23:44 +02:00
2024-08-19 13:31:11 +02:00
- [ ] Implementare ActivityPub
2024-08-19 02:56:34 +02:00
2024-08-19 03:39:48 +02:00
### Possibili altre implementazioni
- [ ] Scatta la foto del marker da uploadare direttamente in app (su alcuni smartphone gia lo fa)
- [ ] Inserire la posizione del marker tramite il gps dello smartphone
- [ ] Possibilità di aggiungere piu di una foto per un marker
- [ ] Script di installazione ruscomap
- [x] Standardizzare gli script con controllo "myusername"
- [ ] Standardizzare con le varialibili del <code>default.json</code> gli script
- [ ] File config per popolare default.json e gli script
- [ ] Creare logo RuscoMap
2024-08-19 02:56:34 +02:00
2024-08-18 16:53:56 +02:00
<br>
---
2024-08-18 00:44:43 +02:00
<br><br>
2024-08-17 17:06:44 +02:00
2024-08-18 16:47:06 +02:00
# ISTRUZIONI INSTALLAZIONE
2024-08-18 00:44:43 +02:00
2024-08-18 16:47:06 +02:00
## Installazione dipendenze
2024-08-18 01:16:05 +02:00
#### Installa mariadb
<code>sudo apt update && sudo apt install mariadb</code>
#### Installa node e nvm
2024-08-18 00:44:43 +02:00
Curl da sito ufficiale [qui](https://github.com/nvm-sh/nvm?tab=readme-ov-file#install--update-script) <br>
_trobleshooting: cerca nvm in .bashrc_
2024-08-18 01:16:05 +02:00
## Installazione ruscomap
2024-08-18 17:03:41 +02:00
#### Clona il git
2024-08-18 00:44:43 +02:00
```
# crea la cartella
mkdir /var/www/html/leaflet/; cd /var/www/html/leaflet/;
# clona il repo
2024-08-18 17:33:30 +02:00
git clone https://git.lattuga.net/scossa/ruscomap.git
2024-08-18 00:44:43 +02:00
```
2024-08-18 17:03:41 +02:00
#### Personalizza il file di configurazione db
2024-08-18 00:44:43 +02:00
<code>nano /var/www/html/leaflet/ruscomap/config/default.json</code>
2024-08-18 17:03:41 +02:00
#### Inizializza db
2024-08-18 00:44:43 +02:00
```
# usa la versione node spcificata nel file .nvmrc
cd /var/www/html/leaflet/ruscomap/; nvm use
# sempre da cartella git
cd /var/www/html/leaflet/ruscomap/;
2024-08-18 17:35:11 +02:00
# inzializza Db
mysql < intDb.sql
2024-08-18 00:44:43 +02:00
```
2024-08-18 17:03:41 +02:00
#### Apri porta sul firewall
2024-08-18 16:47:06 +02:00
<code>sudo iptables -A INPUT -p tcp --dport 3000 -j ACCEPT</code>
2024-08-18 00:44:43 +02:00
2024-08-18 17:03:41 +02:00
#### Crea il servzio
2024-08-18 00:46:25 +02:00
<code>nano /etc/systemd/system/ruscomap.service</code>
2024-08-18 00:44:43 +02:00
```
[Unit]
Description=Ruscomap Service
After=network.target
[Service]
2024-08-18 17:32:32 +02:00
User=<utente_del_config/default.json>
2024-08-18 00:44:43 +02:00
WorkingDirectory=/var/www/html/leaflet/ruscomap/
ExecStart=/bin/bash -c "node index.js"
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
```
2024-08-18 17:09:34 +02:00
##### avvialo e abilitalo a startarsi in automatico
```
sudo systemctl start ruscomap.service
sudo systemctl enable ruscomap.service
```
2024-08-18 00:44:43 +02:00
2024-08-18 17:03:41 +02:00
#### Crea il file conf di apache
2024-08-18 00:44:43 +02:00
<code>nano /etc/apache2/site-enabled/ruscomap.conf</code>
```
#PORT 80 RUSCOMAP
2024-08-18 16:47:06 +02:00
<VirtualHost ruscomap.myserver.it:80>
2024-08-18 00:44:43 +02:00
DocumentRoot /var/www/html/leaflet/ruscomap/public
2024-08-18 16:47:06 +02:00
ServerName ruscomap.myserver.it
2024-08-18 00:44:43 +02:00
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
RewriteEngine on
RewriteCond %{HTTP:Upgrade} =websocket
RewriteRule /(.*) ws://localhost:3000/$1 [P,L]
ErrorLog ${APACHE_LOG_DIR}/ruscomap.log
CustomLog ${APACHE_LOG_DIR}/ruscomap-access.log combined
</VirtualHost>
```
2024-08-18 17:09:34 +02:00
##### restarta apache
```
sudo systemctl restart apache2.service
```
2024-08-18 00:44:43 +02:00
<br>
2024-08-18 16:47:06 +02:00
# ISTRUZIONI ADMIN
2024-08-19 02:21:17 +02:00
## Script per cancellare tutti i record della table "markers" più vecchi di 24h (automatico)
2024-08-19 01:31:57 +02:00
2024-08-19 16:56:29 +02:00
Si trova in <code>/var/www/html/leaflet/ruscomap/script/pulisci_vecchio_rusco.sh</code>
2024-08-19 01:31:57 +02:00
2024-08-19 02:21:17 +02:00
#### Imposta lo script su cron per essere eseguito ogni 24h
2024-08-19 01:31:57 +02:00
```
```
2024-08-19 02:21:17 +02:00
## Script per cancellare tutti i record della table "markers" più vecchi di 24h (manuale)
2024-08-19 16:56:29 +02:00
Si trova in <code>/var/www/html/leaflet/ruscomap/script/pulisci_manualmente_vecchio_rusco.sh</code>
2024-08-19 02:21:17 +02:00
2024-08-19 16:56:29 +02:00
## Script per aggiornare ruscomap
Si trova in <code>/var/www/html/leaflet/ruscomap/script/AggiornaRuscoMap.sh</code>
## Script per cancellare tutti i record della table "markers"
Si trova in <code>/var/www/html/leaflet/ruscomap/script/delete_rusco.sh</code>
2024-08-19 02:21:17 +02:00
2024-08-19 16:56:29 +02:00
## Cancella un singolo record del db
2024-08-18 16:47:06 +02:00
```
2024-08-18 17:32:32 +02:00
mariadb -u <utente_del_config/default.json> -p
2024-08-18 16:47:06 +02:00
show databases;
use ruscomap;
show tables;
select * from markers;
DELETE FROM markers WHERE filename = '0a9f02167f85c845db2d4b81bbeef9d5';
2024-08-18 00:44:43 +02:00
```