Ale Store (Unicam School project)
Questo è un semplice sito di e-commerce per il corso di programmazione web.
Alessandro Silveri
n.matricola: 087395
username/email: ale@alestore.com
pw: 12345
Github Repo: https://github.com/silveridev/ale-ecommerce
Youtube: https://www.youtube.com/watch?v=mg337KZZQng
WebSite hosted at Heroku: https://ale-store.herokuapp.com
Project Document: https://drive.google.com/open?id=1ZivZQYWmkMTFiEupR2QfdDaruAmSrAct
- L'amministratore è in grado di accedere ad un'area privata con un indirizzo email e una password (primo admin già registrato);
- L'amministratore può gestire gli inventari;
- Il server invia un'email all'amministratore quando sta per terminare un prodotto;
- L’amministratore è in grado di creare e inserire un nuovo prodotto;
- Il prodotto può essere visualizzato per categorie;
- L'utente è in grado di cercare oggetti all'istante;
- È stata aggiunta l'API di Stripe per effettuare il pagamento di prova;
- L'utente può modificare il proprio profilo;
- Ogni utente ha un carrello dedicato;
- L'utente è in grado di aggiungere e rimuovere elementi dal suo carrello
- L'utente ha una password crittografata;
- L'utente è in grado di visualizzare la cronologia degli acquisti;
Il backend è composto da NodeJS, ExpressJS e MongoDB. MongoDB è stato ospitato su mlab.com perché fornisce un servizio di hosting gratuito per MongoDB. Ho usato Mongoose per la modellazione dei dati e l'esecuzione di query per il database.
Gli utenti normali (clienti) possono registrarsi al sistema. La password degli utenti è stata memorizzata in modo sicuro nel database utilizzando il modulo Bcrypt. Ogni utente ha la sua sezione dedicata al carrello. Lui / lei possono aggiungere / rimuovere articoli al carrello e eseguire il checkout. La sezione di pagamento viene eseguita da Stripe, una piattaforma di pagamento sicura che facilita i pagamenti. Gli utenti possono modificare le loro informazioni personali. Inoltre, possono visualizzare la cronologia degli acquisti, tra cui nome del prodotto, prezzo e ora del pagamento.
L'amministratore può accedere a un'area privata con indirizzo email e password dell'amministratore. Può aggiungere / modificare un prodotto. Quando un prodotto sta per finire, il sistema invia automaticamente un'email all'amministratore per ricordarglielo.
Queste istruzioni forniranno una copia del progetto e sarà possibile eseguirlo in locale per scopi di sviluppo e test. Vedi la distribuzione per le note su come implementare il progetto su una piattaforma live. In questo documento uso Mac e il suo terminale per spiegare il progetto.
Per prima cosa è necessario installare node per preparare il proprio run-time environment. É possibile scaricare node da qui. Dopo aver installato node L'installazione di node viene fornita con il gestore di pacchetti NPM. Ora, è diventato il più grande open source libraries ecosystem al mondo. Ma in questo progetto ho usato yarn. Yarn è un’alternativa a NPM. Ho preferito yarn a NPM principalmente perché è veloce, affidabile e sicuro.
Per prima cosa clonare la repo e eseguire il comando sotto riportato
Usando npm:
npm install
Usando yarn:
yarn install
Questo comando farà partire l’esecuzione de progetto.
yarn dev
Il progetto è già stato deployato su heroku. https://ale-store.herokuapp.com.
- Node - A JavaScript runtime built on Chrome's V8 JavaScript engine.
- Express - Fast, unopinionated, minimalist web framework for Node.js.
- NPM - The largest ecosystem of open source libraries in the world.
- YARN - Fast, reliable, and secure dependency management.
- MongoDB - A free and open-source cross-platform document-oriented database program.
- Mongoose - Elegant mongodb object modeling for node.js.
- EJS - Embedded JavaScript templating.
- Jquery - Query is a fast, small, and feature-rich JavaScript library.
- Stripe - The new standard in online payments.
- Bootstarp - Build responsive, mobile-first projects on the web with the world's most popular front-end component library.
- Alessandro Silveri - Initial work - Github
This project is licensed under the MIT License - see the LICENSE.md file for details