From e3a7b66cc026aa44185b6331943a41b706be546a Mon Sep 17 00:00:00 2001 From: walzer85 Date: Tue, 22 May 2018 22:10:25 -0500 Subject: [PATCH 01/13] created components, still figuring out ProductDetail --- src/App.js | 77 +++------------------------------ src/components/Carousel.js | 38 ++++++++++++++++ src/components/Footer.js | 14 ++++++ src/components/Header.js | 40 +++++++++++++++++ src/components/ProductDetail.js | 13 ++++++ 5 files changed, 112 insertions(+), 70 deletions(-) create mode 100644 src/components/Carousel.js create mode 100644 src/components/Footer.js create mode 100644 src/components/Header.js create mode 100644 src/components/ProductDetail.js diff --git a/src/App.js b/src/App.js index b6f04e9..edff420 100644 --- a/src/App.js +++ b/src/App.js @@ -1,44 +1,16 @@ import React, { Component } from 'react'; import logo from './logo.svg'; import './App.css'; +import ProductDetail from "./components/ProductDetail"; +import Header from "./components/Header" +import Footer from "./components/Footer" +import Carousel from "./components/Carousel" function App() { return (
{/*
*/} - +
{/*
*/}
@@ -56,36 +28,7 @@ function App() {
{/**/} -
- -
- -
- -
+ {/**/}
{/**/} @@ -219,13 +162,7 @@ function App() {
{/*
*/} -
-
-
-

Copyright © Your Website 2014

-
-
-
+
{/*
*/}
diff --git a/src/components/Carousel.js b/src/components/Carousel.js new file mode 100644 index 0000000..ee2202b --- /dev/null +++ b/src/components/Carousel.js @@ -0,0 +1,38 @@ +import React from "react"; + +function Carousel(){ + return ( +
+ +
+ +
+ +
); +} + + +export default Carousel; diff --git a/src/components/Footer.js b/src/components/Footer.js new file mode 100644 index 0000000..2388ef0 --- /dev/null +++ b/src/components/Footer.js @@ -0,0 +1,14 @@ +import React from "react"; + +function Footer(){ + return( +
+
+
+

Copyright © Your Website 2014

+
+
+
); +} + +export default Footer; \ No newline at end of file diff --git a/src/components/Header.js b/src/components/Header.js new file mode 100644 index 0000000..ce6ba38 --- /dev/null +++ b/src/components/Header.js @@ -0,0 +1,40 @@ +import React from "react"; + +function Header(){ + return( + ); +} + +export default Header; diff --git a/src/components/ProductDetail.js b/src/components/ProductDetail.js new file mode 100644 index 0000000..c27de29 --- /dev/null +++ b/src/components/ProductDetail.js @@ -0,0 +1,13 @@ +import React from "react"; + +function ProductDetail(props){ + return({ + price: "props.price", + name: "props.name", + description: "props.description", + reviews: "props.reviews", + stars: "props.stars" + }); +} + +export default ProductDetail; \ No newline at end of file From c8f51bc53c4eb19518b2dfc1f16454ea2e5bdd50 Mon Sep 17 00:00:00 2001 From: walzer85 Date: Tue, 29 May 2018 19:23:18 -0500 Subject: [PATCH 02/13] fixed the productdetail population. --- src/App.js | 117 ++------------------------ src/components/ProductDetail.js | 32 +++++-- src/controllers/ordercontrollers.js | 0 src/controllers/productcontrollers.js | 0 src/index.js | 2 +- src/routes/orderroutes.js | 0 src/routes/productroutes.js | 0 7 files changed, 32 insertions(+), 119 deletions(-) create mode 100644 src/controllers/ordercontrollers.js create mode 100644 src/controllers/productcontrollers.js create mode 100644 src/routes/orderroutes.js create mode 100644 src/routes/productroutes.js diff --git a/src/App.js b/src/App.js index edff420..e9827b0 100644 --- a/src/App.js +++ b/src/App.js @@ -6,7 +6,12 @@ import Header from "./components/Header" import Footer from "./components/Footer" import Carousel from "./components/Carousel" -function App() { +function App(props) { + + const productArray = props.products.map(product => { + return + }); + return (
{/*
*/} @@ -32,115 +37,7 @@ function App() { {/**/}
{/**/} -
-
- -
-

$24.99

-

First Product -

-

See more snippets like this online store item at Bootsnipp - http://bootsnipp.com.

-
-
-

15 reviews

-

- - - - - -

-
-
-
- {/*
*/} -
-
- -
-

$64.99

-

Second Product -

-

This is a short description. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

-
-
-

12 reviews

-

- - - - - -

-
-
-
- -
-
- -
-

$74.99

-

Third Product -

-

This is a short description. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

-
-
-

31 reviews

-

- - - - - -

-
-
-
- -
-
- -
-

$84.99

-

Fourth Product -

-

This is a short description. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

-
-
-

6 reviews

-

- - - - - -

-
-
-
- -
-
- -
-

$94.99

-

Fifth Product -

-

This is a short description. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

-
-
-

18 reviews

-

- - - - - -

-
-
-
+ {/*

Like this template? diff --git a/src/components/ProductDetail.js b/src/components/ProductDetail.js index c27de29..1205c14 100644 --- a/src/components/ProductDetail.js +++ b/src/components/ProductDetail.js @@ -1,13 +1,29 @@ -import React from "react"; +import React from "react" function ProductDetail(props){ - return({ - price: "props.price", - name: "props.name", - description: "props.description", - reviews: "props.reviews", - stars: "props.stars" - }); + return( +
+
+ +
+

{props.product.price}

+

{props.product.name} +

+

{props.product.description} Bootsnipp - http://bootsnipp.com.

+
+
+

{props.product.reviews} reviews

+

+ + + + + +

+
+
+
+ ); } export default ProductDetail; \ No newline at end of file diff --git a/src/controllers/ordercontrollers.js b/src/controllers/ordercontrollers.js new file mode 100644 index 0000000..e69de29 diff --git a/src/controllers/productcontrollers.js b/src/controllers/productcontrollers.js new file mode 100644 index 0000000..e69de29 diff --git a/src/index.js b/src/index.js index e58303d..2da72c6 100644 --- a/src/index.js +++ b/src/index.js @@ -5,6 +5,6 @@ import './index.css'; import state from './state'; ReactDOM.render( - , + , document.getElementById('root') ); diff --git a/src/routes/orderroutes.js b/src/routes/orderroutes.js new file mode 100644 index 0000000..e69de29 diff --git a/src/routes/productroutes.js b/src/routes/productroutes.js new file mode 100644 index 0000000..e69de29 From 757b12cfc92c7caaa4e8aac6f75b00e1b791d7b7 Mon Sep 17 00:00:00 2001 From: walzer85 Date: Tue, 29 May 2018 19:26:38 -0500 Subject: [PATCH 03/13] added getting stars for products --- src/components/ProductDetail.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/components/ProductDetail.js b/src/components/ProductDetail.js index 1205c14..2942c72 100644 --- a/src/components/ProductDetail.js +++ b/src/components/ProductDetail.js @@ -1,6 +1,20 @@ import React from "react" function ProductDetail(props){ + const showStars = () => { + const stars = []; + for (i = 0; i < props.product.rating; i++) { + stars.push(); + } + + for (i = 0; i < 5 - props.product.rating; i++) { + stars.push(); + } + return stars.map((star) => { + return star; + }); + }; + return(
From 0cf3558ef66c8f2f18595a2b91ab32e8d9cea14d Mon Sep 17 00:00:00 2001 From: walzer85 Date: Tue, 29 May 2018 20:21:35 -0500 Subject: [PATCH 04/13] created server folder and index.js file --- server/index.js | 16 ++++++++++++++++ src/App.js | 23 +++++++++++------------ src/components/ProductDetail.js | 6 +----- src/controllers/ordercontrollers.js | 0 src/controllers/productcontrollers.js | 0 src/routes/orderroutes.js | 0 src/routes/productroutes.js | 0 7 files changed, 28 insertions(+), 17 deletions(-) create mode 100644 server/index.js delete mode 100644 src/controllers/ordercontrollers.js delete mode 100644 src/controllers/productcontrollers.js delete mode 100644 src/routes/orderroutes.js delete mode 100644 src/routes/productroutes.js diff --git a/server/index.js b/server/index.js new file mode 100644 index 0000000..86b319a --- /dev/null +++ b/server/index.js @@ -0,0 +1,16 @@ +const express = require("express"); +const app = express(); +const bodyParser = require("body-parser"); +const mongoose = require("mongoose"); + +app.use(bodyParser.json()); + +mongoose.Promise = global.Promise; +mongoose.connect("mongodb://fp1admin:fp1admin@ds237770.mlab.com:37770/aca311-final-project"); + +app.listen(3001, (err) => { + if (err) { + return console.log("Error", err); + } + console.log("Web server is now running on port 3001"); + }); \ No newline at end of file diff --git a/src/App.js b/src/App.js index e9827b0..4612c12 100644 --- a/src/App.js +++ b/src/App.js @@ -6,18 +6,20 @@ import Header from "./components/Header" import Footer from "./components/Footer" import Carousel from "./components/Carousel" -function App(props) { +class App extends Component { + constructor(props) { + super(props); + }; - const productArray = props.products.map(product => { - return - }); + ProductArray = () => { + return this.props.products.map((prod, key) => { + return ; + }); + }; return (
- {/*
*/} -
-{/*
*/} - +
@@ -32,12 +34,9 @@ function App(props) {
- {/**/} - {/**/}
- {/**/} - +

{productArray()}

{/*

Like this template? diff --git a/src/components/ProductDetail.js b/src/components/ProductDetail.js index 2942c72..946cf82 100644 --- a/src/components/ProductDetail.js +++ b/src/components/ProductDetail.js @@ -28,11 +28,7 @@ function ProductDetail(props){

{props.product.reviews} reviews

- - - - - + {showStars()}

diff --git a/src/controllers/ordercontrollers.js b/src/controllers/ordercontrollers.js deleted file mode 100644 index e69de29..0000000 diff --git a/src/controllers/productcontrollers.js b/src/controllers/productcontrollers.js deleted file mode 100644 index e69de29..0000000 diff --git a/src/routes/orderroutes.js b/src/routes/orderroutes.js deleted file mode 100644 index e69de29..0000000 diff --git a/src/routes/productroutes.js b/src/routes/productroutes.js deleted file mode 100644 index e69de29..0000000 From dceb40cb6fc79349c2be34c60c55de7f3898e474 Mon Sep 17 00:00:00 2001 From: walzer85 Date: Tue, 29 May 2018 20:39:48 -0500 Subject: [PATCH 05/13] corrected the database I was calling, added the server, and added the routes and controllers files correctly. Have not done anything in the routes or controller files yet --- server/controllers/ordercontrollers.js | 0 server/controllers/productcontrollers.js | 0 server/index.js | 2 +- server/routes/orderroutes.js | 2 ++ server/routes/productroutes.js | 7 +++++++ src/App.js | 11 ----------- 6 files changed, 10 insertions(+), 12 deletions(-) create mode 100644 server/controllers/ordercontrollers.js create mode 100644 server/controllers/productcontrollers.js create mode 100644 server/routes/orderroutes.js create mode 100644 server/routes/productroutes.js diff --git a/server/controllers/ordercontrollers.js b/server/controllers/ordercontrollers.js new file mode 100644 index 0000000..e69de29 diff --git a/server/controllers/productcontrollers.js b/server/controllers/productcontrollers.js new file mode 100644 index 0000000..e69de29 diff --git a/server/index.js b/server/index.js index 86b319a..99e1a18 100644 --- a/server/index.js +++ b/server/index.js @@ -6,7 +6,7 @@ const mongoose = require("mongoose"); app.use(bodyParser.json()); mongoose.Promise = global.Promise; -mongoose.connect("mongodb://fp1admin:fp1admin@ds237770.mlab.com:37770/aca311-final-project"); +mongoose.connect("mongodb://aeadmin1:aeadmin1@ds135540.mlab.com:35540/advanced-ecommerce-1"); app.listen(3001, (err) => { if (err) { diff --git a/server/routes/orderroutes.js b/server/routes/orderroutes.js new file mode 100644 index 0000000..7cb29df --- /dev/null +++ b/server/routes/orderroutes.js @@ -0,0 +1,2 @@ +const express = require("express"); +const app = express(); \ No newline at end of file diff --git a/server/routes/productroutes.js b/server/routes/productroutes.js new file mode 100644 index 0000000..19695d4 --- /dev/null +++ b/server/routes/productroutes.js @@ -0,0 +1,7 @@ +const express = require("express"); +const app = express(); +const { list, show, create } = require("../controllers/productcontrollers"); + +router.get +router.get +router.post diff --git a/src/App.js b/src/App.js index 4612c12..ee18b07 100644 --- a/src/App.js +++ b/src/App.js @@ -37,14 +37,6 @@ class App extends Component {

{productArray()}

-{/* -
-

Like this template? -

-

If you like this template, then check out this tutorial on how to build a working review system for your online store!

- View Tutorial -
-*/}
@@ -56,10 +48,7 @@ class App extends Component {

- - {/*
*/}
- {/*
*/}
); From d381ff5c5bc9f3212546f5a14ecafc11b4692490 Mon Sep 17 00:00:00 2001 From: walzer85 Date: Tue, 29 May 2018 21:04:43 -0500 Subject: [PATCH 06/13] not sure why I'm getting an error with productArray not being defined. --- src/App.js | 61 +++++++++++++++++---------------- src/components/ProductDetail.js | 2 +- 2 files changed, 33 insertions(+), 30 deletions(-) diff --git a/src/App.js b/src/App.js index ee18b07..61b6ce9 100644 --- a/src/App.js +++ b/src/App.js @@ -11,47 +11,50 @@ class App extends Component { super(props); }; - ProductArray = () => { + ProductArray() { return this.props.products.map((prod, key) => { return ; }); }; - return ( -
-
-
- -
- -
-

Shop Name

-
- Category 1 - Category 2 - Category 3 + render(){ + return ( +
+
+
+ +
+ +
+

Shop Name

+
-
-
- -
-

{productArray()}

+
+ +
+

{productArray()}

+
+
+ +
-
- -
- -
-
-
-
- ); -} +
+
+
+
+ + ); + }; +}; export default App; diff --git a/src/components/ProductDetail.js b/src/components/ProductDetail.js index 946cf82..87bf9a9 100644 --- a/src/components/ProductDetail.js +++ b/src/components/ProductDetail.js @@ -1,7 +1,7 @@ import React from "react" function ProductDetail(props){ - const showStars = () => { + const showStars = (i) => { const stars = []; for (i = 0; i < props.product.rating; i++) { stars.push(); From 7ff68661622823569754990705f914341fade9fd Mon Sep 17 00:00:00 2001 From: walzer85 Date: Tue, 29 May 2018 21:17:28 -0500 Subject: [PATCH 07/13] added product and order routes. Need to add fetch in controllers --- server/routes/orderroutes.js | 9 ++++++++- server/routes/productroutes.js | 8 +++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/server/routes/orderroutes.js b/server/routes/orderroutes.js index 7cb29df..908c4ba 100644 --- a/server/routes/orderroutes.js +++ b/server/routes/orderroutes.js @@ -1,2 +1,9 @@ const express = require("express"); -const app = express(); \ No newline at end of file +const app = express(); +const { list, show, create } = require("../controllers/ordercontrollers"); + +router.get("/orders", list); +router.get("/orders/:id", show) +router.post("/orders", create); + +module.exports = router; \ No newline at end of file diff --git a/server/routes/productroutes.js b/server/routes/productroutes.js index 19695d4..18933ca 100644 --- a/server/routes/productroutes.js +++ b/server/routes/productroutes.js @@ -2,6 +2,8 @@ const express = require("express"); const app = express(); const { list, show, create } = require("../controllers/productcontrollers"); -router.get -router.get -router.post +router.get("/products", list); +router.get("/products/:id", show) +router.post("/products", create); + +module.exports = router; \ No newline at end of file From 6c17f0e1762db918c19af0b829f9a3e3fd0c2a2c Mon Sep 17 00:00:00 2001 From: walzer85 Date: Tue, 29 May 2018 21:40:18 -0500 Subject: [PATCH 08/13] coming back to the productArray error, added the add to cart button --- src/App.js | 5 +---- src/components/ProductDetail.js | 33 +++++++++++++++++++-------------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/src/App.js b/src/App.js index 61b6ce9..7a81da7 100644 --- a/src/App.js +++ b/src/App.js @@ -7,11 +7,8 @@ import Footer from "./components/Footer" import Carousel from "./components/Carousel" class App extends Component { - constructor(props) { - super(props); - }; - ProductArray() { + ProductArray(products) { return this.props.products.map((prod, key) => { return ; }); diff --git a/src/components/ProductDetail.js b/src/components/ProductDetail.js index 87bf9a9..4122076 100644 --- a/src/components/ProductDetail.js +++ b/src/components/ProductDetail.js @@ -17,21 +17,26 @@ function ProductDetail(props){ return(
-
- -
-

{props.product.price}

-

{props.product.name} -

-

{props.product.description} Bootsnipp - http://bootsnipp.com.

+
+ +
+

{props.product.price}

+

{props.product.name} +

+

{props.product.description} Bootsnipp - http://bootsnipp.com.

+
+
+

{props.product.reviews} reviews

+

+ {showStars()} +

+
+
+ +
-
-

{props.product.reviews} reviews

-

- {showStars()} -

-
-
); } From 6b9ab8de1a44691c81b64f71a0afbaa7d49bde7b Mon Sep 17 00:00:00 2001 From: walzer85 Date: Tue, 29 May 2018 21:46:08 -0500 Subject: [PATCH 09/13] fixed the productArray error by adding this. to the render in app.js --- src/App.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/App.js b/src/App.js index 7a81da7..4eda5de 100644 --- a/src/App.js +++ b/src/App.js @@ -7,10 +7,18 @@ import Footer from "./components/Footer" import Carousel from "./components/Carousel" class App extends Component { + state = { + itemsInCart: 0, + }; + + addItem = () => { + this.setState({itemsInCart: this.state.itemsInCart + 1}); + + } - ProductArray(products) { + productArray(products) { return this.props.products.map((prod, key) => { - return ; + return ; }); }; @@ -34,7 +42,7 @@ class App extends Component {
-

{productArray()}

+

{this.productArray()}

From 70e68d19b1e4ac32e6e0d5b40f1a3cf5079d11a3 Mon Sep 17 00:00:00 2001 From: walzer85 Date: Tue, 29 May 2018 21:53:33 -0500 Subject: [PATCH 10/13] displaying number of items in cart in header --- src/App.js | 4 ++-- src/components/Header.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/App.js b/src/App.js index 4eda5de..1cd231f 100644 --- a/src/App.js +++ b/src/App.js @@ -8,11 +8,11 @@ import Carousel from "./components/Carousel" class App extends Component { state = { - itemsInCart: 0, + numberOfItemsInCart: 0, }; addItem = () => { - this.setState({itemsInCart: this.state.itemsInCart + 1}); + this.setState({numberOfItemsInCart: this.state.numberOfItemsInCart + 1}); } diff --git a/src/components/Header.js b/src/components/Header.js index ce6ba38..32d8f23 100644 --- a/src/components/Header.js +++ b/src/components/Header.js @@ -27,7 +27,7 @@ function Header(){ Contact
  • - Items In Cart (0) + Items In Cart {this.numberOfItemsInCart}
  • From 11deaf6bd23729266bc1ca26c12633f245355b82 Mon Sep 17 00:00:00 2001 From: walzer85 Date: Wed, 30 May 2018 17:46:22 -0500 Subject: [PATCH 11/13] added models and controllers content --- server/controllers/ordercontrollers.js | 36 ++++++++++++++++++++++++ server/controllers/productcontrollers.js | 19 +++++++++++++ server/models/ordermodels.js | 15 ++++++++++ server/models/productmodels.js | 34 ++++++++++++++++++++++ src/components/Header.js | 7 ++--- 5 files changed, 107 insertions(+), 4 deletions(-) create mode 100644 server/models/ordermodels.js create mode 100644 server/models/productmodels.js diff --git a/server/controllers/ordercontrollers.js b/server/controllers/ordercontrollers.js index e69de29..739c399 100644 --- a/server/controllers/ordercontrollers.js +++ b/server/controllers/ordercontrollers.js @@ -0,0 +1,36 @@ +const OrderModel = require("../models/ordermodels"); + +module.exports.list = function (request, response) { + OrderModel.find({}) + .exec() + .then((products) => { + return response.json(products); + }); +}; + +module.exports.show = function (request, response) { + OrderModel.findById({ + id: request.params.id, + }) + .exec() + .then((product) => { + return response.json(product); + }); +}; + +module.exports.create = function (request, response) { + const newOrder = new Order({ + id: request.body.id || shortid.generate(), + date: request.body.date, + items: request.body.items.map((i) => { + return { + productId: i.id, + price: i.price, + }; + }), + }); + newOrder.save().then((order) => { + return response.json(order); + }); + +} \ No newline at end of file diff --git a/server/controllers/productcontrollers.js b/server/controllers/productcontrollers.js index e69de29..6627243 100644 --- a/server/controllers/productcontrollers.js +++ b/server/controllers/productcontrollers.js @@ -0,0 +1,19 @@ +const ProductModel = require("../models/productmodels"); + +module.exports.list = function (request, response) { + ProductModel.find({}) + .exec() + .then((products) => { + return response.json(products); + }); +}; + +module.exports.show = function (request, response) { + ProductModel.findById({ + id: request.params.id, + }) + .exec() + .then((product) => { + return response.json(product); + }); +}; \ No newline at end of file diff --git a/server/models/ordermodels.js b/server/models/ordermodels.js new file mode 100644 index 0000000..945f13a --- /dev/null +++ b/server/models/ordermodels.js @@ -0,0 +1,15 @@ +const mongoose = require("mongoose"); + +const schema = new mongoose.Schema({ + id: { + type: String, + required: true, + }, + date: { + type: String, + required: true, + }, + items: [orderItemSchema] +}); + +module.exports = mongoose.model("OrderModel", schema); \ No newline at end of file diff --git a/server/models/productmodels.js b/server/models/productmodels.js new file mode 100644 index 0000000..7ba7815 --- /dev/null +++ b/server/models/productmodels.js @@ -0,0 +1,34 @@ +const mongoose = require("mongoose"); + +const schema = new mongoose.Schema({ + id: { + type: Number, + required: true, + }, + name: { + type: String, + required: true, + }, + description: { + type: String, + required: true, + }, + reviews: { + type: Number, + required: false, + }, + rating: { + type: Number, + required: false, + }, + imgUrl: { + type: String, + required: false, + }, + price: { + type: String, + required: true, + }, +}); + +module.exports = mongoose.model("ProductModel", schema); diff --git a/src/components/Header.js b/src/components/Header.js index 32d8f23..2cfc206 100644 --- a/src/components/Header.js +++ b/src/components/Header.js @@ -1,6 +1,6 @@ import React from "react"; -function Header(){ +function Header(props){ return(
    - +
    ); } From cefc960d12f42738bb121afec44dcacf2bea3467 Mon Sep 17 00:00:00 2001 From: walzer85 Date: Wed, 30 May 2018 17:50:39 -0500 Subject: [PATCH 12/13] added app.use for routes in index.js --- server/index.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/server/index.js b/server/index.js index 99e1a18..7be77b7 100644 --- a/server/index.js +++ b/server/index.js @@ -5,6 +5,9 @@ const mongoose = require("mongoose"); app.use(bodyParser.json()); +app.use(require("./routes/orderroutes")); +app.use(require("./routes/productroutes")); + mongoose.Promise = global.Promise; mongoose.connect("mongodb://aeadmin1:aeadmin1@ds135540.mlab.com:35540/advanced-ecommerce-1"); From 9ebcc35e603580836456155ba7d8c2063a280e50 Mon Sep 17 00:00:00 2001 From: walzer85 Date: Wed, 30 May 2018 18:52:55 -0500 Subject: [PATCH 13/13] correcting errors as I see them now --- package-lock.json | 129 ++++++++++++++++++++++++++++++-- package.json | 1 + server/models/ordermodels.js | 2 +- server/routes/orderroutes.js | 3 +- server/routes/productroutes.js | 3 +- src/components/Header.js | 2 +- src/components/ProductDetail.js | 8 +- src/index.js | 2 +- 8 files changed, 135 insertions(+), 15 deletions(-) diff --git a/package-lock.json b/package-lock.json index 29156fd..54eaf51 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1375,6 +1375,11 @@ "node-int64": "0.4.0" } }, + "bson": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.6.tgz", + "integrity": "sha512-D8zmlb46xfuK2gGvKmUjIklQEouN2nQ0LEHHeZ/NoHM2LDiMk2EYzZ5Ntw/Urk+bgMDosOZxaRzXxvhI5TcAVQ==" + }, "buffer": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", @@ -2090,7 +2095,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -5468,6 +5472,11 @@ "integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE=", "dev": true }, + "kareem": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.1.0.tgz", + "integrity": "sha512-ycoMY1tVkcH1/NaxGn2erZaUC3CodmX7Fl6DUVXjN73+uecWYTaaldRkxNY3HeSKQnQTWnoxRKnZfVHcB8tIWg==" + }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -5550,8 +5559,7 @@ "lodash": { "version": "4.17.10", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" }, "lodash._arraycopy": { "version": "3.0.0", @@ -5641,6 +5649,11 @@ "integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=", "dev": true }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, "lodash.isarguments": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", @@ -5864,11 +5877,88 @@ "minimist": "0.0.8" } }, + "mongodb": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.0.8.tgz", + "integrity": "sha512-mj7yIUyAr9xnO2ev8pcVJ9uX7gSum5LLs1qIFoWLxA5Il50+jcojKtaO1/TbexsScZ9Poz00Pc3b86GiSqJ7WA==", + "requires": { + "mongodb-core": "3.0.8" + } + }, + "mongodb-core": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.0.8.tgz", + "integrity": "sha512-dFxfhH9N7ohuQnINyIl6dqEF8sYOE0WKuymrFf3L3cipJNrx+S8rAbNOTwa00/fuJCjBMJNFsaA+R2N16//UIw==", + "requires": { + "bson": "1.0.6", + "require_optional": "1.0.1" + } + }, + "mongoose": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.1.3.tgz", + "integrity": "sha512-v+hHI/NxJtcVPm2cY+/kJfTfkkXVCz/le0iVdnh3enGi+fClhoaztjTtXQMdzIzNc+M0R93KcARpzvPQq/cWKQ==", + "requires": { + "async": "2.1.4", + "bson": "1.0.6", + "kareem": "2.1.0", + "lodash.get": "4.4.2", + "mongodb": "3.0.8", + "mongoose-legacy-pluralize": "1.0.2", + "mpath": "0.4.1", + "mquery": "3.0.0", + "ms": "2.0.0", + "regexp-clone": "0.0.1", + "sliced": "1.0.1" + }, + "dependencies": { + "async": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.1.4.tgz", + "integrity": "sha1-LSFgx3iAMuTdbL4lAvH5osj2zeQ=", + "requires": { + "lodash": "4.17.10" + } + } + } + }, + "mongoose-legacy-pluralize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", + "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==" + }, + "mpath": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.4.1.tgz", + "integrity": "sha512-NNY/MpBkALb9jJmjpBlIi6GRoLveLUM0pJzgbp9vY9F7IQEb/HREC/nxrixechcQwd1NevOhJnWWV8QQQRE+OA==" + }, + "mquery": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.0.0.tgz", + "integrity": "sha512-WL1Lk8v4l8VFSSwN3yCzY9TXw+fKVYKn6f+w86TRzOLSE8k1yTgGaLBPUByJQi8VcLbOdnUneFV/y3Kv874pnQ==", + "requires": { + "bluebird": "3.5.0", + "debug": "2.6.9", + "regexp-clone": "0.0.1", + "sliced": "0.0.5" + }, + "dependencies": { + "bluebird": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", + "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=" + }, + "sliced": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-0.0.5.tgz", + "integrity": "sha1-XtwETKTrb3gW1Qui/GPiXY/kcH8=" + } + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "mute-stream": { "version": "0.0.5", @@ -7563,6 +7653,11 @@ "is-equal-shallow": "0.1.3" } }, + "regexp-clone": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz", + "integrity": "sha1-p8LgmJH9vzj7sQ03b7cwA+aKxYk=" + }, "regexpu-core": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", @@ -7709,6 +7804,22 @@ "resolve-from": "1.0.1" } }, + "require_optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", + "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", + "requires": { + "resolve-from": "2.0.0", + "semver": "5.5.0" + }, + "dependencies": { + "resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" + } + } + }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -7821,8 +7932,7 @@ "semver": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" }, "send": { "version": "0.16.2", @@ -7938,6 +8048,11 @@ "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", "dev": true }, + "sliced": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", + "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" + }, "sntp": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", diff --git a/package.json b/package.json index 9a0699c..7130113 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "react-scripts": "^0.9.5" }, "dependencies": { + "mongoose": "^5.1.3", "react": "^15.5.4", "react-dom": "^15.5.4" }, diff --git a/server/models/ordermodels.js b/server/models/ordermodels.js index 945f13a..cb7beae 100644 --- a/server/models/ordermodels.js +++ b/server/models/ordermodels.js @@ -9,7 +9,7 @@ const schema = new mongoose.Schema({ type: String, required: true, }, - items: [orderItemSchema] + // items: [schema] - need to create a schema for the items }); module.exports = mongoose.model("OrderModel", schema); \ No newline at end of file diff --git a/server/routes/orderroutes.js b/server/routes/orderroutes.js index 908c4ba..8091a8c 100644 --- a/server/routes/orderroutes.js +++ b/server/routes/orderroutes.js @@ -1,9 +1,10 @@ const express = require("express"); const app = express(); +const router = express.Router(); const { list, show, create } = require("../controllers/ordercontrollers"); router.get("/orders", list); router.get("/orders/:id", show) router.post("/orders", create); -module.exports = router; \ No newline at end of file +module.exports = router; \ No newline at end of file diff --git a/server/routes/productroutes.js b/server/routes/productroutes.js index 18933ca..6af3951 100644 --- a/server/routes/productroutes.js +++ b/server/routes/productroutes.js @@ -1,9 +1,10 @@ const express = require("express"); const app = express(); +const router = express.Router(); const { list, show, create } = require("../controllers/productcontrollers"); router.get("/products", list); router.get("/products/:id", show) router.post("/products", create); -module.exports = router; \ No newline at end of file +module.exports = router; \ No newline at end of file diff --git a/src/components/Header.js b/src/components/Header.js index 2cfc206..7369d40 100644 --- a/src/components/Header.js +++ b/src/components/Header.js @@ -27,7 +27,7 @@ function Header(props){ Contact
  • - Items In Cart {this.props.numberOfItemsInCart} + Items In Cart {this.props.numberOfItemsInCart})
  • diff --git a/src/components/ProductDetail.js b/src/components/ProductDetail.js index 4122076..4f4988c 100644 --- a/src/components/ProductDetail.js +++ b/src/components/ProductDetail.js @@ -1,6 +1,7 @@ -import React from "react" +import { Component } from "react" -function ProductDetail(props){ +class ProductDetail extends Component{ + render(){ const showStars = (i) => { const stars = []; for (i = 0; i < props.product.rating; i++) { @@ -39,6 +40,7 @@ function ProductDetail(props){
    ); -} +}; +}; export default ProductDetail; \ No newline at end of file diff --git a/src/index.js b/src/index.js index 2da72c6..5a7d6b7 100644 --- a/src/index.js +++ b/src/index.js @@ -5,6 +5,6 @@ import './index.css'; import state from './state'; ReactDOM.render( - , + , document.getElementById('root') );