ruscomap/README.md

241 lines
7.2 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-17 16:28:29 +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 00:36:19 +02:00
- [ ] Cancellare i marker creati > di 24h (sia record db che img) [[commit 78d4b6b216](https://git.lattuga.net/scossa/ruscomap/commit/78d4b6b2169d43550aa3af800ac2f946ebeb9743), in test]
2024-08-19 01:31:57 +02:00
- [x] Scrivere script bash (<code>delete_rusco.sh</code>) che cancella tutti marker
2024-08-19 01:11:08 +02:00
- [ ] Scrivere script bash (<code>delete_vecchio_rusco.sh</code>) che cancella tutti marker più vecchi di 24h
2024-08-19 01:31:57 +02:00
- [ ] Tutorial per mettere in cron del server lo script che cancella i marker più vecchi di 24h
- [ ] Standardizzare con le varialibili del <code>default.json</code> lo script <code>delete_vecchio_rusco.sh</code>
2024-08-19 01:11:08 +02:00
2024-08-19 00:34:58 +02:00
## ToDo per essere funzionale alla versione 0.2
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 00:34:58 +02:00
## ToDo per essere funzionale alla versione 0.3
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
## ToDo per essere funzionale alla versione 0.4
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
## ToDo per essere funzionale alla versione 0.5
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 01:31:57 +02:00
## ToDo per essere funzionale alla versione 0.6
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 01:31:57 +02:00
## ToDo per essere funzionale alla versione 1.0
2024-08-19 00:53:52 +02:00
- [ ] Creare form login/registrazione
- [ ] Abilitare (solo lato admin) creazione di nomeutente/password (no mail/altro)
- [ ] Gestione autenticazione utenti con password
- [ ] Ruolo Ospite. Permessi: Visita mappa
- [ ] Ruolo Utente. Permessi: Visita mappa, Aggiungi marker
- [ ] Ruolo Admin. Permessi: Visita mappa, Aggiungi marker, Cancella Marker
2024-08-19 01:11:08 +02:00
- [ ] Mostrare un pulsante affianco/sopra/dentro al form dei dati del marker quando autenticati come admin che ha la funzione di cancellare il marker corrispondente
2024-08-19 00:53:52 +02:00
- [ ] Chiedere la conferma della cancellazione del marker
2024-08-19 01:31:57 +02:00
## Possibili implementazioni
2024-08-19 00:53:52 +02:00
- [ ] 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
2024-08-19 00:36:19 +02:00
- [ ] Possibilità di aggiungere piu di una foto per un marker
2024-08-19 01:11:08 +02:00
- [ ] Logo RuscoMap
2024-08-17 17:06:44 +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 01:31:57 +02:00
## Script per cancellare tutti i record del db markers più vecchi di 24h
<code>nano /var/www/html/leaflet/ruscomap/delete_rusco.sh</code>
```
```
#### Imposta lo script cron per essere eseguito ogni 24h
```
```
2024-08-18 16:47:06 +02:00
## Cancella un record del db
```
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';
```
## Script per aggiornare ruscomap
2024-08-18 00:44:43 +02:00
<code>nano /var/www/html/leaflet/ruscomap/AggiornaRuscoMap.sh</code>
```
echo -e "Stoppo ruscomap..."
systemctl stop ruscomap.service
sleep 1
cd /var/www/html/leaflet/ruscomap
echo -e "\nEseguo git pull..."
git pull
sleep 1
echo -e "Do permessi www-data..."
chown -R www-data:www-data /var/www/html/leaflet/ruscomap/public
echo -e "restarto apache e ruscmap"...
systemctl restart apache2.service
systemctl start ruscomap.service
echo -e "Aggiornamento completato!\n"
2024-08-19 01:31:57 +02:00
```
## Script per cancellare tutti i record del db markers
<code>nano /var/www/html/leaflet/ruscomap/delete_rusco.sh</code>
```
#!/bin/bash
# Define database credentials
DB_USER="myuser"
DB_PASS="password"
# Connect to MariaDB and execute commands
mariadb -u "$DB_USER" -p"$DB_PASS" <<EOF
USE ruscomap;
TRUNCATE TABLE markers;
EOF
```
## Script per cancellare tutti i record del db markers più vecchi di 24h
<code>nano /var/www/html/leaflet/ruscomap/delete_rusco.sh</code>
```
```
## Script standardizzato per cancellare tutti i record del db markers più vecchi di 24h
<code>nano /var/www/html/leaflet/ruscomap/pulisci_vecchio_rusco.sh</code>
```
2024-08-18 00:44:43 +02:00
```