eShoppalo è un marketplace di giochi usati per Nintendo Switch.
Ogni utente registrato al sito sarà in grado di:
- Consultare il catalogo di giochi in versione fisica per Nintendo Switch
- Inserire un annuncio di vendita per uno o più giochi
- Ricevere una valutazione sul prezzo inserito
- Ricevere un suggerimento di prezzo calcolato in base al prezzo del nuovo, anno di uscita, condizioni, edizione speciale, prezzo medio dell'usato
- Contattare un venditore tramite la chat
- Cambiare le informazioni sul proprio account (nome, cognome, e-mail, password)
Il lato frontend del sito è stato realizzato tramite i seguenti componenti:
- HTML per lo scheletro della pagina statica e importazioni varie
- CSS per la gestione degli stili, delle animazioni e delle media query (responsiveness)
- Bootstrap per la gestione di alcuni elementi stilistici
- OwlCarousel2 per la realizzazione di un carosello di responsive cards
- JavaScript per la gestione di funzioni ed algoritmi, per la manipolazione del DOM e per alcune responsabilità relative allo scrolling
- JQuery per una facilitata gestione delle chiamate asincrone AJAX al server (GET e POST) e per alcune funzioni (insertAfter, insertBefore)
- Gauge.js per la creazione di misuratori utili a capire la "convenienza" del prezzo inserito dall'utente
- Chart.js per la disposizione statica/dinamica di dati in forma di istogramma
- Anime.js per la gestione delle soft shapes in formato SVG
- NodeJS per supportare express e per usufruire di componenti aggiuntive (elencate sotto)
- Handlebars per la gestione di pagine template, in particolare la pagina del gioco
- Worker Threads per avviare lo scraping dei prezzi su un thread a parte (e non appesantire il sito)
- ExpressJS per la gestione dell'applicazione, delle chiamate AJAX (GET e POST) e del routing
- MongoDB per conservare i dati relativi ai giochi, agli utenti e agli annunci
- Puppeteer per eseguire lo scraping da PriceCharting.com, tramite il quale è possibile fare delle statistiche
- Un package manager (ad esempio npm)
- NodeJS per avviare il programma
- (Opzionale) Nodemon per riavviare il server automaticamente al momento del salvataggio
- Un database MongoDB, che sarà riempito automaticamente con il catalogo di giochi Switch grazie a delle API non ufficiali
- Installare sul proprio terminale linux il pacchetto chromium tramite il comando
sudo apt-get install chromium
- Per utilizzare eShoppalo, per prima cosa si dovrà clonare la repository.
- Tramite un Package Manager (ad esempio
npm
), è possibile installare tutte le dipendenze necessarie con il comandonpm i
. - Fatto ciò, sarà necessario creare un file di configurazione chiamato
config.json
all'interno della root del progetto. Questo file dovrà contenere un oggetto JSON nel seguente formato:
{
"database":{
"host": "<NOME_HOST>"
"username": "<NOME_UTENTE>",
"password": "<PASSWORD>",
"options": "<OPZIONI>"
},
"port": 5000
}
Le informazioni tra doppi apici si recuperano con dalla propria piattaforma MongoDB, nella sezione Connect > Connect with the MongoDB Shell
. Il sito fornirà un url con le informazioni necessarie: l'utente dovrà recuperare le singole informazioni e inserirle nel file config.json
.
La porta 5000 è solo un esempio.
Avviare l'applicazione tramite il comando node ./server.js
oppure nodemon ./server.js
.
A questo punto il sito sarà hostato in locale, ed è possibile raggiungerlo tramite l'url localhost:<PORTA>
.