# RuscoMap _Una mappa della propria città dove utenti in anonimo possono inserire dei marker con nome, descrizione e foto dell'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 versione 0.1 - [x] Aggiungere il marker (visivo) al clic di inserimento marker [[commit f611832592](https://git.lattuga.net/scossa/ruscomap/commit/f6118325925ba91173cf5bcc0a206b85fa3ef1a3)] - [x] Al momento si possono aggiungere infiniti marker (temporanei), da fixare [[commit 0fba9efe99](https://git.lattuga.net/scossa/ruscomap/commit/0fba9efe99057119ef5eedec078987482a193fea)] ### ToDo per versione 0.2 - [x] ~~Cancellare i marker creati > di 24h (sia record db che img)~~ [[commit 78d4b6b216](https://git.lattuga.net/scossa/ruscomap/commit/78d4b6b2169d43550aa3af800ac2f946ebeb9743)] - [x] Rimuovere pezzi di codice js per cancellare marker creati > di 24h. [[commit 971f1a0672](https://git.lattuga.net/scossa/ruscomap/commit/971f1a06725cd633da7904ae412a2e53f2afeab4)] - [x] Scrivere script bash (delete_rusco.sh) che cancella tutti marker [[commit 8a5260d62f](https://git.lattuga.net/scossa/ruscomap/commit/8a5260d62f4333f4ae9c6cd1489f41481f5635f6)] - [x] Scrivere script bash (pulisci_vecchio_rusco.sh) che cancella tutti marker più vecchi di 24h (automatico) [[commit 8a5260d62f](https://git.lattuga.net/scossa/ruscomap/commit/8a5260d62f4333f4ae9c6cd1489f41481f5635f6)] - [x] Come mettere nel cron del server lo script che cancella i marker più vecchi di 24h [[commit 5dc0c22eae](https://git.lattuga.net/scossa/ruscomap/commit/5dc0c22eae2a4222f3ce8dc35a1d89df02ac836a)] - [x] Scrivere script bash (pulisci_manualmente_vecchio_rusco.sh) che cancella tutti marker più vecchi di 24h (manuale) [[commit 8a5260d62f](https://git.lattuga.net/scossa/ruscomap/commit/8a5260d62f4333f4ae9c6cd1489f41481f5635f6)] - [x] pushare e spostare script in cartella /script [[commit 8a5260d62f](https://git.lattuga.net/scossa/ruscomap/commit/8a5260d62f4333f4ae9c6cd1489f41481f5635f6)] ### ToDo per versione 0.3 - [x] Riformattare visualizzazione form inserimento marker per mobile [[commit 9d5a7f8b71 & parents](https://git.lattuga.net/scossa/ruscomap/commit/9d5a7f8b71e0e2dd39f0addfa4a8117f62e23170)] - [x] Milgiorare css del form inserimento dati marker [[commit 9d5a7f8b71 & parents](https://git.lattuga.net/scossa/ruscomap/commit/9d5a7f8b71e0e2dd39f0addfa4a8117f62e23170)] ### ToDo per versione 0.4 - [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)] - [x] 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) [[commit f9868974c6](https://git.lattuga.net/scossa/ruscomap/commit/f9868974c6b6fd5b92d8684bf5dad7687524a92d)] - [x] Eliminare visualizzazione del marker temporaneo se viene cliccata la X rossa o aggiunto un nuovo marker (non temp) [[commit f9868974c6](https://git.lattuga.net/scossa/ruscomap/commit/f9868974c6b6fd5b92d8684bf5dad7687524a92d)] ### ToDo per versione 0.5 - [x] Mostrare data/ora pubblicazione del marker per far capire al visitatore quanto tempo fa è stato avvistato il rusco [[commit c811b4eb4e](https://git.lattuga.net/scossa/ruscomap/commit/c811b4eb4e5d774eb5ccd5bceb237419105bd5d3)] - [x] Eliminare dati e immagine da marker temporaneo (lasciare solo descrizione) [[commit 76032e6329](https://git.lattuga.net/scossa/ruscomap/commit/76032e6329936804d2dac03c3eb573b233b56f33)] ### ToDo per versione 0.6 - [x] Cancellare dati file picker del form[[commit 9b8c376c53](https://git.lattuga.net/scossa/ruscomap/commit/9b8c376c53f9f52a0ae2cbfb186769a4ca1cd1e0)] - [x] Pop-Up all'apertura di ruscomap con descrizione breve [[commit 4dac8709ca](https://git.lattuga.net/scossa/ruscomap/commit/4dac8709ca1cc8d580236ba81109a376147f749c)] ### ToDo per versione 0.7 - [x] Scrivere query per funzione di ricerca [[commit 08b550ed89](https://git.lattuga.net/scossa/ruscomap/commit/08b550ed896309994f5e4a2aed762ecf5d81cfcf)] - [x] Inserire la posizione del marker tramite il gps [[commit a57738eddc](https://git.lattuga.net/scossa/ruscomap/commit/a57738eddce46fe858c6ee88e57713ef18cf84fe)] ### ToDo per versione 0.8 - [ ] Fixare il refresh automatico da markertemp a marker quando si clicca Aggiungi Marker (a volte lo fa già) - [ ] Creare form per ricercare tra i titoli/descrizioni dei marker esistenti (query esempio: "divano", scompaiono tutti i marker e rimangono solo quelli che nel nome o descrizione hanno "divano") ### ToDo per versione 0.9 - [ ] Creare form login per admin - [ ] Creare bottone per form/pagina "area riservata"/"accedi" - [ ] Creare Pannello Admin - [ ] Creare ruolo Admin: Visita mappa, Aggiungi marker, Accesso a pannello admin - [ ] Gestione autenticazione utente admin con password per accesso al pannello --- ## ToDo per versione 1.0 - [ ] Implementare il pannelo per permettere all'admin di poter creare utenti (nomeutente/password, no mail o altro) - [ ] Creare ruolo Utente. Permessi: Visita mappa, Aggiungi marker - [ ] Ruolo Ospite. Permessi: Visita mappa - [ ] Gestione autenticazione utenti con password - [ ] Implemtare nel pannello lo switch per on/off inserimento solo utenti e admin o anche ospiti. --- ### ToDo per versione 1.1 - [ ] Feature da pannello admin: poter cancellare un utente ### ToDo per versione 1.2 - [ ] Feature da pannello admin: poter disabilitare un utente ### ToDo per versione 1.3 - [ ] 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 - [ ] Dare permessi di cancellazione marker all'admin ### ToDo per versione 1.4 - [ ] Creare Ruolo Moderatore. Permessi : Visita mappa, Aggiungi marker, Cancella marker ### ToDo per versione 1.5 - [ ] Feature da pannello admin: poter cambiare ruolo a un utente (utente <---> moderatore) ### ToDo per versione 1.6 - [ ] 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) ### ToDo per versione 1.7 - [ ] Creare form registrazione con mail - [ ] Richiedere conferma mail via link spedito a l'indirizzo ## ToDo per versione 2.0 - [ ] Implementare ActivityPub ## Possibili altre implementazioni possibili in qualsiasi momento - [ ] Marker freschezza rusco (esempio: piu è datato il marker inserito e piu è scuro il colore del marker) - [ ] Script di installazione ruscomap - [ ] Fare il modo che lo scrit di Aggiornamento non pialli le var settate negli script di pulizia rusco - [x] Standardizzare con le varialibili del default.json gli script [[commit a57738eddc](https://git.lattuga.net/scossa/ruscomap/commit/a57738eddce46fe858c6ee88e57713ef18cf84fe)] - [ ] Creare logo RuscoMap - [ ] Scatta la foto del marker da uploadare direttamente in app (su alcuni smartphone gia lo fa) - [ ] Possibilità di aggiungere piu di una foto per un marker - [ ] Implemtare review per moderazione rusco inserito. switch per on/off moderazione da annello
---

# ISTRUZIONI INSTALLAZIONE ## Installazione dipendenze #### Installa mariadb sudo apt update && sudo apt install mariadb #### Installa node e nvm Curl da sito ufficiale [qui](https://github.com/nvm-sh/nvm?tab=readme-ov-file#install--update-script)
_trobleshooting: cerca nvm in .bashrc_ ##### gps location https://github.com/domoritz/leaflet-locatecontrol
npm i leaflet.locatecontrol ## 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= 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 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 ``` ##### restarta apache ``` sudo systemctl restart apache2.service ```
# ISTRUZIONI ADMIN #### Script per cancellare tutti i record della table "markers" più vecchi di 24h (automatico) Si trova in [/var/www/html/leaflet/ruscomap/script/pulisci_vecchio_rusco.sh](script/pulisci_vecchio_rusco.sh) ##### Imposta lo script su cron per essere eseguito ogni 24h ``` # Per eseguire tutti i giorni a mezzanotte lo script che elimina tutti i marker più vecchi di 24h: # Entra in modalità edit su cron: crontab -e # Edita il file aggiungendo la riga: 0 0 * * * /var/www/html/leaflet/ruscomap/script/pulisci_vecchio_rusco.sh # Assicurati che lo script abbia i permessi di esecuzione: ls -l /var/www/html/leaflet/ruscomap/script/pulisci_vecchio_rusco.sh # Se mancano, impostali: chmod +x /var/www/html/leaflet/ruscomap/script/pulisci_vecchio_rusco.sh ``` #### Script per cancellare tutti i record della table "markers" più vecchi di 24h (manuale) Si trova in [/var/www/html/leaflet/ruscomap/script/pulisci_manualmente_vecchio_rusco.sh](script/pulisci_manualmente_vecchio_rusco.sh) #### Script per aggiornare ruscomap Si trova in [/var/www/html/leaflet/ruscomap/script/AggiornaRuscoMap.sh](script/AggiornaRuscoMap.sh) #### Script per cancellare tutti i record della table "markers" Si trova in [/var/www/html/leaflet/ruscomap/script/delete_rusco.sh](script/delete_rusco.sh) #### Cancella un singolo record del db ``` mariadb -u -p show databases; use ruscomap; show tables; select * from markers; DELETE FROM markers WHERE filename = '0a9f02167f85c845db2d4b81bbeef9d5'; ```