Skip to content

Commit

Permalink
final
Browse files Browse the repository at this point in the history
  • Loading branch information
Giovannicampo committed Oct 3, 2023
0 parents commit 31663dc
Show file tree
Hide file tree
Showing 151 changed files with 12,463 additions and 0 deletions.
33 changes: 33 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# in&out - E-commerce for indoor and outdoor design

### Web Development course project - 2022/2023



## Introduction

*in&out* is an e-commerce developed in HTML5, CSS3, Javascript, Node.js and MongoDB for Web development course project.



### Database schema



![](pics/database_schema.png)



Database is designed in order to make the handling of the application data as easier as possible. Dividing Orders and Carts collections from Users made easier to manage API calls for administrator management and a better scalability, but increased the number of API calls needed to achieve certain tasks.



## Usage

##### Install `npm` and execute `npm i` for installing all dependencies; then execute `npm start` to start the server and go to http://localhost:3000/ for accessing the homepage or to http://localhost:3000/adminhandler for the administrator handler page.



## Author

Giovanni Campo
3 changes: 3 additions & 0 deletions backend/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
DATABASE_URL = mongodb+srv://giovannicampo144:[email protected]/7017
ACCESS_TOKEN_SECRET=<your-access-token-secret>
REFRESH_TOKEN_SECRET=<your-refresh-token-secret>
1 change: 1 addition & 0 deletions backend/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node_modules
49 changes: 49 additions & 0 deletions backend/frontend/admin.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>in&out - AdminHandler</title>
<link rel="stylesheet" href="assets/css/pages.css">
<link rel="stylesheet" href="assets/css/admin.css">
</head>
<body>
<div class="header white-text">
<div class="title">&nbsp &nbsp In&Out</div>
<div class="logo">
<a class="height-inherit" href="index.html">
<img src="assets/pics/header_logo.png" alt="logo not found">
</a>
</div>
<div class="title">AdminHandler</div>
</div>

<div class="modal margin-top-200px">
<div class="blank"></div>
<div class="box" id="signin-modal">
<br>
<div id="sign-up">Sign in</div>
<br>

<div class="input-container">
<br>
<div id="email-area">
<input id="email" placeholder="E-mail" type="email"/>
</div>
<br>
<br>
<div id="password-area">
<input id="password" placeholder="Password" type="password"/>
</div>
<br>
<br>
<button id="accedi">Accedi</button>
</div>

</div>
<div class="blank"></div>
</div>

<script src="assets/js/admin.js"></script>
</body>
</html>
53 changes: 53 additions & 0 deletions backend/frontend/adminhandler.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>in&out - AdminHandler</title>
<link rel="stylesheet" href="assets/css/pages.css">
<link rel="stylesheet" href="assets/css/adminhandler.css">
</head>
<body>
<div class="header white-text">
<div class="title">&nbsp &nbsp In&Out AdminHandler</div>
<div class="logo">
<a class="height-inherit" href="index.html">
<img src="assets/pics/header_logo.png" alt="logo not found">
</a>
</div>
<div class="contatti">
<span></span>
<span> <a class="white-text no-line" href="admin.html">Sign Out</a> </span>
</div>
</div>

<div class="cards-container margin-top-200px">
<div class="card" id="prod-card">
<p>Prodotti</p>
<div class="image border-right">
<img src="assets/pics/products/tarsele.jpg" alt="">
</div>
</div>
<div class="card" id="user-card">
<p>Utenti</p>
<div class="image border-right">
<img src="assets/pics/customers.jpg" alt="">
</div>
</div>
<div class="card" id="order-card">
<p>Ordini</p>
<div class="image border-right">
<img src="assets/pics/delivery.jpg" alt="">
</div>
</div>
<div class="card" id="stats-card">
<p>Statistiche</p>
<div class="image">
<img src="assets/pics/statistics.jpg" alt="">
</div>
</div>
</div>

<script src="assets/js/adminmenu.js"></script>
</body>
</html>
64 changes: 64 additions & 0 deletions backend/frontend/adminordini.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>in&out - AdminHandler Ordini</title>
<link rel="stylesheet" href="assets/css/pages.css">
<link rel="stylesheet" href="assets/css/adminhandler.css">
</head>
<body>
<div class="header white-text">
<div class="title">&nbsp &nbsp In&Out</div>
<div class="logo">
<a class="height-inherit" href="index.html">
<img src="assets/pics/header_logo.png" alt="logo not found">
</a>
</div>
<div class="contatti">
<span></span>
<span> <a class="white-text no-line" href="adminhandler.html">AdminHandler</a> </span>
<span> <a class="white-text no-line" href="admin.html">Sign Out</a> </span>
</div>
</div>

<span class="order-title">Ordini</span>

<div class="order-row">
<div class="all-orders">

</div>
<div class="info">
<p class="tit-text"> ID dell'ordine </p>
<p class="text" id="infoID"></p>
<p class="tit-text"> Data dell'ordine </p>
<p class="text" id="infoDate"></p>
<p class="tit-text"> Utente </p>
<p class="text" id="infoUser"></p>
<p class="tit-text"> Stato </p>
<div class="state">
<div class="annullato" id="infoAnnullato">
<img src="assets/pics/ordine_annullato.png" alt="">
<span>Annullato</span>
</div>
<div class="in-corso" id="infoInCorso">
<img src="assets/pics/ordine_in_corso.png" alt="">
<span>In corso</span>
</div>
<div class="spedito" id="infoSpedito">
<img src="assets/pics/ordine_spedito.png" alt="">
<span>Spedito</span>
</div>
</div>
<p class="tit-text"> Importo totale </p>
<p class="text" id="infoTotalCost"></p>
<p class="tit-text"> Prodotti </p>
<div class="products" id="products-container">

</div>
</div>
</div>

<script src="assets/js/adminorders.js"></script>
</body>
</html>
51 changes: 51 additions & 0 deletions backend/frontend/adminprodotti.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>in&out - AdminHandler Prodotti</title>
<link rel="stylesheet" href="assets/css/pages.css">
<link rel="stylesheet" href="assets/css/adminhandler.css">
</head>
<body>

<div class="header white-text">
<div class="title">&nbsp &nbsp In&Out</div>
<div class="logo">
<a class="height-inherit" href="index.html">
<img src="assets/pics/header_logo.png" alt="logo not found">
</a>
</div>
<div class="contatti">
<span></span>
<span> <a class="white-text no-line" href="adminhandler.html">AdminHandler</a> </span>
<span> <a class="white-text no-line" href="admin.html">Sign Out</a> </span>
</div>
</div>

<span class="prod-title">Prodotti</span>

<div class="product-row margin-top-100px" id="main-container">
<div class="all-products">

</div>
<div class="product">
<div class="name" id="prodname">Nome prodotto</div>
<div class="image">
<img src="assets/pics/notfound.jpg" alt="immagine prodotto" id="prodimage">
</div>
<div class="maincategory" id="prodmaincat">categoria principale</div>
<div class="category" id="prodcat">categoria secondaria</div>
<div class="quantity" id="prodqty">quantità</div>
<div class="price" id="prodprc">prezzo</div>
<div class="description" id="proddescr">descrizione</div>
</div>
<div class="menu">
<p><span id="addProduct">Aggiungi prodotto</span></p>
<p><span id="patchProduct">Modifica prodotto</span></p>
</div>
</div>

<script src="assets/js/adminprodotti.js"></script>
</body>
</html>
90 changes: 90 additions & 0 deletions backend/frontend/adminstats.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>in&out - AdminHandler Statistiche</title>
<link rel="stylesheet" href="assets/css/pages.css">
<link rel="stylesheet" href="assets/css/adminhandler.css">
</head>
<body>
<div class="header white-text">
<div class="title">&nbsp &nbsp In&Out</div>
<div class="logo">
<a class="height-inherit" href="index.html">
<img src="assets/pics/header_logo.png" alt="logo not found">
</a>
</div>
<div class="contatti">
<span></span>
<span> <a class="white-text no-line" href="adminhandler.html">AdminHandler</a> </span>
<span> <a class="white-text no-line" href="admin.html">Sign Out</a> </span>
</div>
</div>

<span class="stats-title">Statistiche</span>

<div class="main-container margin-top-100px">
<div class="row-1">
<div class="col">
<p>Totale prodotti</p>
<img src="assets/pics/furnitures.png" alt="">
<p id="tot-prodotti"></p>
</div>
<div class="col">
<p>Totale utenti</p>
<img src="assets/pics/user.png" alt="">
<p id="tot-utenti"></p>
</div>
<div class="col">
<p>Totale ordini</p>
<img src="assets/pics/ordine_spedito.png" alt="">
<p id="tot-ordini"></p>
</div>
<div class="col">
<p>Totale Incassi</p>
<img src="assets/pics/money-bag.png" alt="">
<p id="tot-incassi"></p>
</div>
</div>

<div class="row-1 margin-top-50px">
<div class="col">
<p class="smaller">Spesa media per utente</p>
<img src="assets/pics/generous.png" alt="">
<p id="spesa-media"></p>
</div>
<div class="col">
<p class="smaller">Media di prodotti per ordine</p>
<img src="assets/pics/package-box.png" alt="">
<p id="prodotti-ordine">5</p>
</div>
<div class="col">
<p class="smaller">Media prezzi prodotti indoor</p>
<img src="assets/pics/indoor-logo.png" alt="">
<p id="prezzi-indoor">235.50</p>
</div>
<div class="col">
<p class="smaller">Media prezzi prodotti outdoor</p>
<img src="assets/pics/chairs.png" alt="">
<p id="prezzi-outdoor">450.20</p>
</div>
</div>

<div class="col-1 margin-top-100px">
<div class="row">
<div id="plot-prezzi-prodotti"></div>
</div>
<div class="row margin-top-50px">
<div id="plot-incassi"></div>
</div>
<div class="row margin-top-50px">
<div id="plot-prodotti-venduti"></div>
</div>
</div>
</div>

<script src="assets/js/plotly-2.26.0.min.js" charset="utf-8"></script>
<script src="assets/js/adminstats.js"></script>
</body>
</html>
Loading

0 comments on commit 31663dc

Please sign in to comment.