ruscomap/README.md
2024-08-19 00:14:36 +02:00

4.6 KiB

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
  • Check periodico marker (aggiunge nuovi e rimuove > 24h)
  • Cancellare i marker creati > di 24h (sia record db che img)

Possibili Implementazioni

Feature/fix scritte in ordine di priorità:

  • Bottone "aggiungi marker" quando premuto diventa una "X" che se premuta annulla l'inserimento marker
  • A marker aggiunto con successo come del bottone icona in alto a dx rimane la X rossa (modalità inserimento marker) invece di ritornare l'icona del marker (modalità normale/visualizzazione)
  • Mostrare data/ora pubblicazione del marker per far capire al visitatore quanto tempo fa è stato avvistato il rusco
  • Al momento si possono aggiungere infiniti marker (temporanei), da fixare
  • Riformattare visualizzazione form inserimento marker per mobile
  • Al momento sul marker temporaneo si vede l'immagine rotta. fixare: sul temporaneo non bisogna mostrare nulla
  • Creare form per ricercare tra i titoli/descrizioni dei marker esistenti (query esempio: "divano")
  • Milgiorare css del form inserimento dati marker
  • Inserire la posizione del marker tramite il gps dello smartphone
  • Scatta la foto del marker da uploadare direttamente in app (su alcuni smartphone gia lo fa)
  • Creare form login/registrazione e gestire utenti
  • Possibilità di aggiungere piu di una foto per un marker




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

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"