.vscode | ||
config | ||
node_modules | ||
public | ||
ruscoapp/.vscode | ||
script | ||
.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 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
- Aggiungere il marker (visivo) al clic di inserimento marker [commit f611832592]
- Al momento si possono aggiungere infiniti marker (temporanei), da fixare [commit 0fba9efe99]
ToDo per versione 0.2
Cancellare i marker creati > di 24h (sia record db che img)[commit 78d4b6b216]- 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, ma non ne sono sicuro.
- Scrivere script bash (
delete_rusco.sh
) che cancella tutti marker [commit 8a5260d62f] - Scrivere script bash (
pulisci_vecchio_rusco.sh
) che cancella tutti marker più vecchi di 24h (automatico) [commit 8a5260d62f] - Come mettere nel cron del server lo script che cancella i marker più vecchi di 24h [commit 5dc0c22eae]
- Scrivere script bash (
pulisci_manualmente_vecchio_rusco.sh
) che cancella tutti marker più vecchi di 24h (manuale) [commit 8a5260d62f] - pushare e spostare script in cartella
/script
[commit 8a5260d62f]
ToDo per versione 0.3
- 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)
- Eliminare visualizzazione di eventuali marker temporanei aggiunti se viene cliccata la X rossa
ToDo per versione 0.4
- 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 versione 0.5
- Riformattare visualizzazione form inserimento marker per mobile
- Milgiorare css del form inserimento dati marker
ToDo per versione 0.6
- Creare form per ricercare tra i titoli/descrizioni dei marker esistenti (query esempio: "divano")
ToDo per versione 0.7
- 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 versione 0.8
- Creare form login per admin
- Creare bottone per form/pagina "area riservata"/"accedi"
- Creare Pannello Admin
ToDo per versione 0.9
- 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
- Gestione autenticazione utente admin con password
ToDo per versione 1.0
- Creare ruolo Admin: Visita mappa, Aggiungi marker, Accesso a pannello admin
- Creare Ruolo Utente. Permessi: Visita mappa, Aggiungi marker
- Creare (?) 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.
oppure
- Implemtare review per moderazione rusco inserito
- Implemtare nel pannello lo switch per on/off moderazione
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
- Implemtare review per moderazione rusco inserito
- Implemtare nel pannello lo switch per on/off moderazione
ToDo per versione 1.5
- Creare Ruolo Moderatore. Permessi : Visita mappa, Aggiungi marker, Cancella marker
ToDo per versione 1.6
- Feature da pannello admin: poter cambiare ruolo a un utente (utente <---> moderatore)
ToDo per 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)
ToDo per versione 1.8
- Creare form registrazione con mail
- Richiedere conferma mail via link spedito a l'indirizzo
ToDo per versione 2.0
- Implementare ActivityPub
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
- Standardizzare gli script con controllo "myusername"
- Standardizzare con le varialibili del
default.json
gli script - File config per popolare default.json e gli script
- Standardizzare con le varialibili del
- Creare 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 della table "markers" più vecchi di 24h (automatico)
Si trova in /var/www/html/leaflet/ruscomap/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 per aggiornare ruscomap
Si trova in /var/www/html/leaflet/ruscomap/script/AggiornaRuscoMap.sh
Script per cancellare tutti i record della table "markers"
Si trova in /var/www/html/leaflet/ruscomap/script/delete_rusco.sh
Cancella un singolo 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';