Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
137 commits
Select commit Hold shift + click to select a range
066665e
[feature] develop branch
Easybuoy Oct 9, 2018
d0bd96d
[feature] created ui feature, added login markup, admin, attendant ma…
Easybuoy Oct 9, 2018
e582bfa
Merge pull request #1 from Easybuoy/ui-feature
Easybuoy Oct 9, 2018
b1e32c7
[feature] added more cards to the index page
Easybuoy Oct 9, 2018
6d237e6
Merge pull request #2 from Easybuoy/ui-feature
Easybuoy Oct 9, 2018
0f0d1fa
[feature] optimized images and added favicon
Easybuoy Oct 9, 2018
7326481
Merge pull request #3 from Easybuoy/ui-feature
Easybuoy Oct 9, 2018
d662182
[feature] gh-pages
Easybuoy Oct 9, 2018
31f3629
[feature] gh-pages
Easybuoy Oct 9, 2018
6f33748
[feature] gh-pages
Easybuoy Oct 10, 2018
3652d41
[feature] gh-pages
Easybuoy Oct 10, 2018
84c3af0
[feature] improved responsiveness by using media query
Easybuoy Oct 10, 2018
09a8c7e
[feature] improved responsiveness by using media query
Easybuoy Oct 10, 2018
01f780f
[feature] improved responsiveness by using media query
Easybuoy Oct 10, 2018
ea308e8
[feature] improved responsiveness by using media query
Easybuoy Oct 10, 2018
45637a5
[feature] improved responsiveness by using media query
Easybuoy Oct 10, 2018
1417d18
[feature] added add to cart functionality
Easybuoy Oct 11, 2018
05af92b
[feature] added add to cart functionality
Easybuoy Oct 11, 2018
ebd6869
Merge pull request #4 from Easybuoy/ui-feature
Easybuoy Oct 11, 2018
6e9b4b2
Merge branch 'ui-feature' of github.com:Easybuoy/storemanager into gh…
Easybuoy Oct 11, 2018
2ab90da
[feature] added store attendant profile page and added page for admin…
Easybuoy Oct 11, 2018
a6a3ce4
[feature] updated readme to include more details about repository
Easybuoy Oct 11, 2018
72c19b6
Merge branch 'ui-feature' of github.com:Easybuoy/storemanager into gh…
Easybuoy Oct 11, 2018
f8430c7
Merge pull request #5 from Easybuoy/ui-feature
Easybuoy Oct 11, 2018
ae1fabb
[feature] changed title for store attendant profile page and admin as…
Easybuoy Oct 11, 2018
7e879ac
Merge branch 'ft-setup-basic-node-express-api' of github.com:Easybuoy…
Easybuoy Oct 11, 2018
83e62fa
[feature] set up basic api with node/express
Easybuoy Oct 11, 2018
778b908
Merge pull request #6 from Easybuoy/ui-feature
Easybuoy Oct 11, 2018
28b7667
Merge pull request #7 from Easybuoy/ft-setup-basic-node-express-api
Easybuoy Oct 11, 2018
864daa6
[feature] configured api routes for product and sales and also versio…
Easybuoy Oct 11, 2018
267c9f7
Merge branch 'ft-configure-api-routes-and-versioning' of github.com:E…
Easybuoy Oct 11, 2018
f486192
[feature] configured api routes for product and sales and also versio…
Easybuoy Oct 11, 2018
f8e5fa0
Merge pull request #8 from Easybuoy/ft-configure-api-routes-and-versi…
Easybuoy Oct 11, 2018
11e8053
[feature] added configured/added eslint to follow airbnb style guide
Easybuoy Oct 11, 2018
dfcde3f
[feature] added configured/added eslint to follow airbnb style guide
Easybuoy Oct 11, 2018
aabc364
Merge pull request #9 from Easybuoy/ft-setup-eslint-airbnb-style
Easybuoy Oct 11, 2018
80c6813
[feature] added/setup basic test framework using mocha and chai
Easybuoy Oct 11, 2018
730a4c7
Merge pull request #10 from Easybuoy/ft-set-up-test-framework
Easybuoy Oct 11, 2018
826d5fe
Merge branch 'develop' of github.com:Easybuoy/storemanager into gh-pages
Easybuoy Oct 11, 2018
29979d3
[feature] added endpoints for getting all products, getting single pr…
Easybuoy Oct 12, 2018
b469107
[feature] added endpoints for getting all sales, getting single sale …
Easybuoy Oct 12, 2018
4aa27d8
Merge pull request #12 from Easybuoy/ft-product-api-functionality
Easybuoy Oct 12, 2018
88af508
Merge pull request #13 from Easybuoy/ft-sale-api-functionality
Easybuoy Oct 12, 2018
49d4fc8
[feature] added validations to api routes
Easybuoy Oct 12, 2018
bf402d4
Merge branch 'ft-implement-babel' of github.com:Easybuoy/storemanager…
Easybuoy Oct 13, 2018
853c888
[feature] implemented babel to transpile code down to es5
Easybuoy Oct 13, 2018
4b6fcbc
[feature] implemented babel to transpile code down to es5
Easybuoy Oct 13, 2018
b123cd5
[feature] implemented babel to transpile code down to es5
Easybuoy Oct 13, 2018
f66e6b8
[feature] implemented babel to transpile code down to es5
Easybuoy Oct 13, 2018
9a934e8
[feature] wrote tests for product and sales endpoints
Easybuoy Oct 13, 2018
f0f19e5
[feature] added .travis.yml file for CI
Easybuoy Oct 13, 2018
d1335ef
[feature] added build badge to readme and fixed mocha exiting after t…
Easybuoy Oct 13, 2018
7eeaeaf
[feature] added build badge to readme and fixed mocha exiting after t…
Easybuoy Oct 13, 2018
5038949
[feature] added build badge to readme
Easybuoy Oct 13, 2018
862f17a
[feature] added build badge to readme
Easybuoy Oct 13, 2018
c6d8b13
[feature] added build badge to readme
Easybuoy Oct 13, 2018
999e961
[feature] added build badge to readme
Easybuoy Oct 13, 2018
c983ccb
[feature] added build badge to readme
Easybuoy Oct 13, 2018
b884a2f
[feature] added build badge to readme
Easybuoy Oct 13, 2018
e18f10d
[feature] fixed preset2015 deprecation issue by using babel env preset
Easybuoy Oct 13, 2018
bc54d45
[feature] fixed preset2015 deprecation issue by using babel env preset
Easybuoy Oct 13, 2018
db3a8c1
Merge pull request #15 from Easybuoy/ft-added-validation-to-api
Easybuoy Oct 13, 2018
299cf05
Merge pull request #16 from Easybuoy/ft-implement-babel
Easybuoy Oct 13, 2018
9416ac1
Merge pull request #17 from Easybuoy/ft-write-more-tests
Easybuoy Oct 13, 2018
8619727
Merge pull request #19 from Easybuoy/add-badge-to-readme
Easybuoy Oct 13, 2018
79004a4
Merge pull request #20 from Easybuoy/bug-fix-deprecation-issue-babel
Easybuoy Oct 13, 2018
d8a09c8
[feature] added coverage reporting
Easybuoy Oct 14, 2018
9b4a715
[feature] added coverage reporting
Easybuoy Oct 14, 2018
fb31148
Merge pull request #21 from Easybuoy/ft-add-coverage-reporting
Easybuoy Oct 14, 2018
6891a59
[feature] added mantainability badge to readme
Easybuoy Oct 14, 2018
20c2788
Merge pull request #22 from Easybuoy/ft-add-coverage-reporting
Easybuoy Oct 14, 2018
a04c681
[feature] fixed issue(s) stated by codeclimate
Easybuoy Oct 14, 2018
a16575f
Merge branch 'bug-fix-issues-stated-codeclimate' of github.com:Easybu…
Easybuoy Oct 14, 2018
f58499a
[feature] fixed issue(s) stated by codeclimate
Easybuoy Oct 14, 2018
3e7fee8
Merge pull request #23 from Easybuoy/bug-fix-issues-stated-codeclimate
Easybuoy Oct 14, 2018
b777d20
[feature] changed use of require to imports
Easybuoy Oct 14, 2018
6828f57
Merge pull request #24 from Easybuoy/change-require-to-import
Easybuoy Oct 15, 2018
e8eff22
[feature] created auth routes and validation for auth routes
Easybuoy Oct 15, 2018
89a13dc
[feature] created auth routes and validation for auth routes and wrot…
Easybuoy Oct 15, 2018
c7a9f12
[feature] created auth routes and validation for auth routes and wrot…
Easybuoy Oct 15, 2018
54dc744
Merge pull request #26 from Easybuoy/ft-create-authentication-routes
Easybuoy Oct 15, 2018
08d7f99
[feature] Integrated image upload and made product routes private, al…
Easybuoy Oct 15, 2018
1673940
Merge pull request #27 from Easybuoy/ft-integrate-img-upload-for-prod…
Easybuoy Oct 15, 2018
edff3bf
[feature] made all sales routes private and rewrote creating sale end…
Easybuoy Oct 17, 2018
1bf229d
Merge pull request #28 from Easybuoy/ft-make-sales-routes-private
Easybuoy Oct 17, 2018
2fbbd1b
[feature] added engine specification to package.json
Easybuoy Oct 17, 2018
4addd1b
Merge pull request #29 from Easybuoy/ch-add-engine-to-package.json
Easybuoy Oct 17, 2018
7fb116c
[feature] updated readme, added morgan to log requests and also added…
Easybuoy Oct 18, 2018
e7aa177
Merge pull request #30 from Easybuoy/ch-update-readme
Easybuoy Oct 18, 2018
e9a8492
[feature] removed irrelevant comment in app.js
Easybuoy Oct 18, 2018
690dabb
[feature] updatedreadme
Easybuoy Oct 19, 2018
8e0349d
Merge pull request #31 from Easybuoy/ch-update-readme
Easybuoy Oct 19, 2018
32cfca8
[feature] Cleanup code and remove comments
Easybuoy Oct 19, 2018
87f0ca4
[feature] updated/redesigned user interface
Easybuoy Oct 21, 2018
ea6c0e3
Merge pull request #32 from Easybuoy/ch-cleanup-code
Easybuoy Oct 21, 2018
4187d0e
[feature] wrote more tests for app and validations
Easybuoy Oct 21, 2018
9f1078c
Merge pull request #33 from Easybuoy/ft-update-ui
Easybuoy Oct 21, 2018
efc3de8
Merge pull request #34 from Easybuoy/ft-write-more-tests
Easybuoy Oct 21, 2018
d1bdc5e
[feature] added delete endpoint for product to enable admin delete pr…
Easybuoy Oct 22, 2018
f01cfcb
Merge pull request #35 from Easybuoy/ch-add-delete-product-endpoint-1…
Easybuoy Oct 22, 2018
b7d0af1
[feature] added tests for delete endpoint
Easybuoy Oct 23, 2018
d06bd1a
Merge branch 'ch-fix-footer-ui-template-161406607' of github.com:Easy…
Easybuoy Oct 23, 2018
c50873d
Merge pull request #36 from Easybuoy/ch-add-delete-product-endpoint-1…
Easybuoy Oct 23, 2018
91ce25f
[chore] made footer stick to bottom on all pages
Easybuoy Oct 23, 2018
896a3d3
Merge pull request #37 from Easybuoy/ch-fix-footer-ui-template-161406607
Easybuoy Oct 23, 2018
4b7efcd
[chore] made footer stick to bottom on all pages
Easybuoy Oct 23, 2018
8257133
Merge branch 'ch-center-divs-ui-cards-161410948' of github.com:Easybu…
Easybuoy Oct 23, 2018
15dfd64
[chore] made ui cards to be aligned center
Easybuoy Oct 23, 2018
e792b38
[chore] made ui cards to be aligned center
Easybuoy Oct 23, 2018
8efec30
Merge pull request #38 from Easybuoy/ch-fix-footer-ui-template-161406607
Easybuoy Oct 23, 2018
8d88f43
Merge pull request #39 from Easybuoy/ch-center-divs-ui-cards-161410948
Easybuoy Oct 23, 2018
5c7795e
[chore] added store attendant profile details to profile page
Easybuoy Oct 23, 2018
ffe6beb
Merge pull request #40 from Easybuoy/ch-add-store-attendant-profile-d…
Easybuoy Oct 23, 2018
df7654f
[chore] adjusted login page
Easybuoy Oct 23, 2018
57c84ad
Merge pull request #41 from Easybuoy/ch-redesign-login-page-161422660
Easybuoy Oct 23, 2018
06747e0
[chore] changed background of navigation items on hover
Easybuoy Oct 23, 2018
e558866
Merge pull request #42 from Easybuoy/ft-change-background-hover-navig…
Easybuoy Oct 23, 2018
185032f
[chore] added edit page to enable store admin to edit product details
Easybuoy Oct 23, 2018
cabd254
Merge pull request #43 from Easybuoy/ft-create-edit-product-page-1614…
Easybuoy Oct 23, 2018
0d012b1
[feature] resructured form labels on admin_create_product page, admmi…
Easybuoy Oct 23, 2018
d88fbdb
Merge pull request #44 from Easybuoy/ft-restructure-labels-on-forms-1…
Easybuoy Oct 23, 2018
1d83d38
[chore] added store attendant name on admin page for viewing all sale…
Easybuoy Oct 23, 2018
79a965b
Merge pull request #45 from Easybuoy/ch-add-store-attendant-name-on-a…
Easybuoy Oct 23, 2018
32caf0d
[chore] reduced dropdown width and redesigned assigning product to ca…
Easybuoy Oct 23, 2018
4aa0521
Merge pull request #46 from Easybuoy/ch-reduce-width-drop-down-width-…
Easybuoy Oct 23, 2018
f4e6d36
[chore] removed use of passport and passport-jwt and made use of only…
Easybuoy Oct 24, 2018
c8720a0
Merge pull request #47 from Easybuoy/ch-remove-any-use-passport-jwt-1…
Easybuoy Oct 24, 2018
67088ab
[ch] changed logic implementation in route to controllers
Easybuoy Oct 24, 2018
63a93b8
[ch] changed logic implementation in route to controllers
Easybuoy Oct 24, 2018
aaf8355
[ch] changed logic implementation in route to controllers
Easybuoy Oct 24, 2018
9d48c7d
Merge pull request #48 from Easybuoy/ch-create-controllers-routes-161…
Easybuoy Oct 24, 2018
ff1c687
[chore #161464179] implemented middlewares for the different login types
Easybuoy Oct 24, 2018
d3b829f
[chore #161464179] implemented middlewares for the different login types
Easybuoy Oct 24, 2018
0b26361
[chore #161464179] implemented middlewares for the different login types
Easybuoy Oct 24, 2018
ef12d95
Merge pull request #49 from Easybuoy/ch-implement-middleware-for-auth…
Easybuoy Oct 25, 2018
6fe3946
[ch #161474522] added dotenv to configure environment vairables
Easybuoy Oct 25, 2018
d65ca2d
Merge pull request #50 from Easybuoy/ch-setup-dotenv-161474522
Easybuoy Oct 25, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"presets": [
"env", "stage-2"
]
}
1 change: 1 addition & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/server/build
14 changes: 14 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"extends": "airbnb-base",
"rules": {
"linebreak-style":[
"error", "windows"
],
"arrow-body-style": [
"error", "as-needed"
],
"consistent-return": 0,
"array-callback-return": 0
}

}
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
/node_modules
package-lock.json
/server/build
/.nyc_output
.env
13 changes: 13 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
language: node_js

node_js:
- 8

install:
- npm install

test:
- npm test

after_success:
- npm run coveralls
106 changes: 104 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,104 @@
# storemanager
A web application that helps store owners manage sales and product inventory records.
[![Build Status](https://travis-ci.org/Easybuoy/storemanager.svg?branch=develop)](https://travis-ci.org/Easybuoy/storemanager)
[![Coverage Status](https://coveralls.io/repos/github/Easybuoy/storemanager/badge.svg?branch=develop)](https://coveralls.io/github/Easybuoy/storemanager?branch=develop)
[![Maintainability](https://api.codeclimate.com/v1/badges/969d38484786692dd8c5/maintainability)](https://codeclimate.com/github/Easybuoy/storemanager/maintainability)
![GitHub](https://img.shields.io/github/license/mashape/apistatus.svg)

# Store Manager
A web application that helps store owners manage sales and product inventory records..

<h2>Link To Pivotal Tracker: <a href="https://www.pivotaltracker.com/n/projects/2203192">Pivotal Tracker</a> </h2>

<br>
<h1>Store Manager UI Template</h1>

<h2>Built With</h2>
<ul>
<li><a href="https://developer.mozilla.org/kab/docs/Web/HTML">HTML</a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/CSS">CSS</a></li>
<li><a href="https://developer.mozilla.org/bm/docs/Web/JavaScript">JAVASCRIPT</a></li>
</ul>


<h3>Link to template: <a href="https://easybuoy.github.io/storemanager/UI/index.html">Store Manager Template</a> </h3>
<hr>

<h1>Store Manager API Backend</h1>

<h2>Built With</h2>
<ul>
<li><a href="https://nodejs.org/en/">Nodejs</a></li>
<li><a href="https://expressjs.com/">Expressjs</a></li>
<li><a href="https://www.npmjs.com/package/body-parser">Body Parser</a></li>
<li><a href="https://www.npmjs.com/package/jsonwebtoken">Json Web Token</a></li>
<li><a href="https://www.npmjs.com/package/multer">Multer</a></li>
<li><a href="https://www.npmjs.com/package/cors">Cors</a></li>
<li><a href="https://www.npmjs.com/package/morgan">Morgan</a></li>
<li><a href="https://babeljs.io/">Babel</a></li>
<li><a href="https://eslint.org/">Eslint (Airbnb Style Guide)</a></li>
</ul>

<h2>Testing Tools </h2>
<ul>
<li><a href="https://mochajs.org/">Mocha</a></li>
<li><a href="https://www.chaijs.com/">Chai</a></li>
<li><a href="https://www.npmjs.com/package/nyc">Nyc (Reporting Tool)</a></li>
</ul>

<h3>Link to API: <a href="https://store--manager.herokuapp.com/">Store Manager API</a> </h3>

<h2>Getting Started</h2>
<h3>Prerequisites</h3>
You need Nodejs Installed to be able to run this project on your machine.

<h3>Installing<h3>
<ul><li>Clone Repository</li></ul>
<code>git clone https://github.com/Easybuoy/storemanager</code>
<br>
<br>

<ul><li>Change Directory To Store Manager</li></ul>
<code>cd storemanager</code>
<br>
<br>

<ul><li>Install Dependencies</li></ul>
<code>npm install</code>
<br>
<br>

<ul><li>Start Application</li></ul>
<code>npm run start</code>
<br>
<br>

<ul><li>Run Test</li></ul>
<code>npm run test</code>
<br>
<br>

<ul><li>Run Coverage Report</li></ul>
<br>
<code>npm run coveralls</code>
<br>
<br>

<h2>API Routes</h2> <br>
Register User => <code>POST || /api/v1/users/register</code> <br><br>
Login User => <code>POST || /api/v1/users/login</code> <br><br>
Get Current User Details => <code>GET || /api/v1/users/current</code> <br><br>
Create New Product => <code>POST || /api/v1/products</code> <br><br>
Get Products Details => <code>GET || /api/v1/products</code> <br><br>
Get Single Product Detail => <code>GET || /api/v1/products/{productId}</code> <br><br>
Create New Sale Record => <code>POST || /api/v1/sales</code> <br><br>
Get Sale Records => <code>GET || /api/v1/sales</code> <br><br>
Get Single Sale Record => <code>GET || /api/v1/sales/{salesId}</code> <br><br>








<h2>License</h2>
<h4>This project makes use of the MIT License which can be found <a href="https://github.com/Easybuoy/storemanager/blob/develop/LICENSE">here</a></h4>
213 changes: 213 additions & 0 deletions UI/admin_asign_product_to_category.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,213 @@
<!DOCTYPE html>

<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="A web application that helps store owners manage sales and product inventory records.">
<meta name="keywords" content="Store Manager">
<title>Store Manager |Assign Products</title>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
<link rel="stylesheet" href="css/style.css">
<link rel="icon" type="image/ico" sizes="32x32" href="img/favicon.ico">

</head>

<body>

<nav class="navbar">
<span class="open-slide">
<a href="#" id="openslidemenu" onclick="openSlideMenu()">
<svg width="30" height="30">
<path d="M0,5 30,5" stroke="#ffffff"
stroke-width="5"/>
<path d="M0,14 30,14" stroke="#ffffff"
stroke-width="5"/>
<path d="M0,23 30,23" stroke="#ffffff"
stroke-width="5"/>
</svg>
</a></span>

<ul>
<li><a href="store_attendant_profile.html" style="padding-top: 10px"><div><img id="userimg" src="../uploads/users/default-avatar.png"> </div></a></li>
<li><a href="#"><div><input class="search" placeholder="Search Products" type="text"> <img id="searchimg" src="img/search.png"> </div></a></li>
<li id="appnameli"><a href="dashboard.html"><h1 id="appname"><span class="highlight">Store</span> Manager</h1></a></li>
</ul>
</nav>


<div id="side-menu" class="side-nav">
<a href="#" class="btn-close" onclick="closeSlideMenu()">&times;</a>
<li><a class="dashboard" href="dashboard.html">Dashboard</a></li>
<li><a href="admin_create_product.html">Create Product</a></li>
<li><a href="admin_view_products.html">View Products</a></li>
<li><a href="admin_create_sales_attendant.html">Create Sales Attendant</a></li>
<li><a href="admin_view_sales.html">View Sales</a></li>
<li class="current"><a href="admin_asign_product_to_category.html">Assign Products</a></li>
<li><a href="index.html">Logout</a></li>
</div>

<div id="main">
<div class="container">
<section id="productsection" class="topmargin">
<div class="container">
<div class="cardgroup">

<div class="card">
<a href="view_product_details.html"><img src="img/gpixel2.jpg" class="cardimg"></a>

<div class="text-center cardbody" >
<h3 id="productname" data-name="Google Pixel 2">Google Pixel 2</h3>
<p>The Google Pixel 2 is powered by 1.9GHz octa-core </p>
<p>Quantity: 3</p>
<p id="productamount">Price: $649</p>
<select>
<option value="volvo">Google Pixel 2</option>
<option value="saab">Google Pixel 3</option>
<option value="mercedes">iPhone 7 Plus</option>
</select>
<button class="button_3" onclick="addtocart('Google Pixel 2', '$649')">Assign</button>
</div>

</div>

<div class="card">
<a href="view_product_details.html"><img src="img/gpixel3r.png" class="cardimg"></a>

<div class="text-center cardbody" >
<h3 id="productname" data-name="Google Pixel 2">Google Pixel 3</h3>
<p>The Pixel 3 is the latest causality. Wireless charging is.. </p>
<p>Quantity: 3</p>
<p id="productamount">Price: $649</p>
<select>
<option value="volvo">Google Pixel 2</option>
<option value="saab">Google Pixel 3</option>
<option value="mercedes">iPhone 7 Plus</option>
</select>
<button class="button_3" onclick="addtocart('Google Pixel 2', '$649')">Assign</button>
</div>

</div>

<div class="card">
<a href="view_product_details.html"><img src="img/iphonexs.png" class="cardimg"></a>

<div class="text-center cardbody" >
<h3 id="productname" data-name="Google Pixel 2">Iphone XS</h3>
<p>The iPhone XS display has rounded corners that... </p>
<p>Quantity: 3</p>
<p id="productamount">Price: $1500</p>
<select>
<option value="volvo">Google Pixel 2</option>
<option value="saab">Google Pixel 3</option>
<option value="mercedes">iPhone 7 Plus</option>
</select>
<button class="button_3" onclick="addtocart('Google Pixel 2', '$649')">Assign</button>
</div>

</div>

<div class="card">
<a href="view_product_details.html"><img src="img/iphonex.png" class="cardimg"></a>

<div class="text-center cardbody" >
<h3 id="productname" data-name="Google Pixel 2">IPhone X</h3>
<p>The phone comes with a 5.80-inch touchscreen display </p>
<p>Quantity: 3</p>
<p id="productamount">Price: $890</p>
<select>
<option value="volvo">Google Pixel 2</option>
<option value="saab">Google Pixel 3</option>
<option value="mercedes">iPhone 7 Plus</option>
</select>
<button class="button_3" onclick="addtocart('Google Pixel 2', '$649')">Assign</button>
</div>

</div>

<div class="card">
<a href="view_product_details.html"><img src="img/gpixel2.jpg" class="cardimg"></a>

<div class="text-center cardbody" >
<h3 id="productname" data-name="Google Pixel 2">Google Pixel 2</h3>
<p>The Google Pixel 2 is powered by 1.9GHz octa-core </p>
<p>Quantity: 3</p>
<p id="productamount">Price: $649</p>
<select>
<option value="volvo">Google Pixel 2</option>
<option value="saab">Google Pixel 3</option>
<option value="mercedes">iPhone 7 Plus</option>
</select>
<button class="button_3" onclick="addtocart('Google Pixel 2', '$649')">Assign</button>
</div>

</div>

<div class="card">
<a href="view_product_details.html"><img src="img/gpixel3r.png" class="cardimg"></a>

<div class="text-center cardbody" >
<h3 id="productname" data-name="Google Pixel 2">Google Pixel 3</h3>
<p>The Pixel 3 is the latest causality. Wireless charging is.. </p>
<p>Quantity: 3</p>
<p id="productamount">Price: $649</p>
<select>
<option value="volvo">Google Pixel 2</option>
<option value="saab">Google Pixel 3</option>
<option value="mercedes">iPhone 7 Plus</option>
</select>
<button class="button_3" onclick="addtocart('Google Pixel 2', '$649')">Assign</button>
</div>

</div>

<div class="card">
<a href="view_product_details.html"><img src="img/iphonexs.png" class="cardimg"></a>

<div class="text-center cardbody" >
<h3 id="productname" data-name="Google Pixel 2">Iphone XS</h3>
<p>The iPhone XS display has rounded corners that... </p>
<p>Quantity: 3</p>
<p id="productamount">Price: $1500</p>
<select>
<option value="volvo">Google Pixel 2</option>
<option value="saab">Google Pixel 3</option>
<option value="mercedes">iPhone 7 Plus</option>
</select>
<button class="button_3" onclick="addtocart('Google Pixel 2', '$649')">Assign</button>
</div>

</div>

<div class="card">
<a href="view_product_details.html"><img src="img/iphonex.png" class="cardimg"></a>

<div class="text-center cardbody" >
<h3 id="productname" data-name="Google Pixel 2">IPhone X</h3>
<p>The phone comes with a 5.80-inch touchscreen display </p>
<p>Quantity: 3</p>
<p id="productamount">Price: $890</p>
<select>
<option value="volvo">Google Pixel 2</option>
<option value="saab">Google Pixel 3</option>
<option value="mercedes">iPhone 7 Plus</option>
</select>
<button class="button_3" onclick="addtocart('Google Pixel 2', '$649')">Assign</butston>
</div>

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

</div>


<footer id="footer">
<p>Store Manager Copyright &copy; 2018</p>
</footer>

<script src="js/main.js"></script>
</body>

</html>
Loading