.vscode | ||
config | ||
node_modules | ||
public | ||
ruscoapp/.vscode | ||
.gitignore | ||
.nvmrc | ||
dbHandler.js | ||
index.js | ||
initDb.sql | ||
package-lock.json | ||
package.json | ||
README.md | ||
ruscodb |
RuscoMap
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.
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"
ToDo per essere funzionale alla versione 0.1
- Aggiungere il marker (visivo) al clic di inserimento marker [commit f611832592]
- Al momento si possono aggiungere infiniti marker (temporanei), da fixare [commit 0fba9efe99]
- Cancellare i marker creati > di 24h (sia record db che img) [commit 78d4b6b216, in test]
- Scrivere script bash (
delete_rusco.sh
) che cancella tutti marker - Scrivere script bash (
delete_vecchio_rusco.sh
) che cancella tutti marker più vecchi di 24h - Tutorial per mettere in cron del server lo script che cancella i marker più vecchi di 24h
- Standardizzare con le varialibili del
default.json
lo scriptdelete_vecchio_rusco.sh
ToDo per essere funzionale alla versione 0.2
- 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]
- 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)
ToDo per essere funzionale alla versione 0.3
- Mostrare data/ora pubblicazione del marker per far capire al visitatore quanto tempo fa è stato avvistato il rusco
- Al momento sul marker temporaneo si vede l'immagine rotta. fixare: sul temporaneo non bisogna mostrare nulla
ToDo per essere funzionale alla versione 0.4
- Riformattare visualizzazione form inserimento marker per mobile
- Milgiorare css del form inserimento dati marker
ToDo per essere funzionale alla versione 0.5
- Creare form per ricercare tra i titoli/descrizioni dei marker esistenti (query esempio: "divano")
ToDo per essere funzionale alla versione 0.6
- 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
ToDo per essere funzionale alla versione 1.0
- 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
- 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
- Chiedere la conferma della cancellazione del marker
Possibili 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
- Logo RuscoMap
ISTRUZIONI INSTALLAZIONE
Installazione dipendenze
Installa mariadb
sudo apt update && sudo apt install mariadb
Installa node e nvm
Curl da sito ufficiale qui
trobleshooting: cerca nvm in .bashrc
Installazione ruscomap
Clona il git
# crea la cartella
mkdir /var/www/html/leaflet/; cd /var/www/html/leaflet/;
# clona il repo
git clone https://git.lattuga.net/scossa/ruscomap.git
Personalizza il file di configurazione db
nano /var/www/html/leaflet/ruscomap/config/default.json
Inizializza db
# 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/;
# inzializza Db
mysql < intDb.sql
Apri porta sul firewall
sudo iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
Crea il servzio
nano /etc/systemd/system/ruscomap.service
[Unit]
Description=Ruscomap Service
After=network.target
[Service]
User=<utente_del_config/default.json>
WorkingDirectory=/var/www/html/leaflet/ruscomap/
ExecStart=/bin/bash -c "node index.js"
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
avvialo e abilitalo a startarsi in automatico
sudo systemctl start ruscomap.service
sudo systemctl enable ruscomap.service
Crea il file conf di apache
nano /etc/apache2/site-enabled/ruscomap.conf
#PORT 80 RUSCOMAP
<VirtualHost ruscomap.myserver.it:80>
DocumentRoot /var/www/html/leaflet/ruscomap/public
ServerName ruscomap.myserver.it
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>
restarta apache
sudo systemctl restart apache2.service
ISTRUZIONI ADMIN
Script per cancellare tutti i record del db markers più vecchi di 24h
nano /var/www/html/leaflet/ruscomap/delete_rusco.sh
Imposta lo script cron per essere eseguito ogni 24h
Cancella un record del db
mariadb -u <utente_del_config/default.json> -p
show databases;
use ruscomap;
show tables;
select * from markers;
DELETE FROM markers WHERE filename = '0a9f02167f85c845db2d4b81bbeef9d5';
Script per aggiornare ruscomap
nano /var/www/html/leaflet/ruscomap/AggiornaRuscoMap.sh
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"
Script per cancellare tutti i record del db markers
nano /var/www/html/leaflet/ruscomap/delete_rusco.sh
#!/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
nano /var/www/html/leaflet/ruscomap/delete_rusco.sh
Script standardizzato per cancellare tutti i record del db markers più vecchi di 24h
nano /var/www/html/leaflet/ruscomap/pulisci_vecchio_rusco.sh