Skip to content

Commit bc3e20e

Browse files
committed
initial commit
0 parents  commit bc3e20e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+34638
-0
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
node_modules/
2+
.env

api/index.js

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
const express = require("express");
2+
const app = express();
3+
const mongoose = require("mongoose");
4+
const dotenv = require("dotenv");
5+
const userRoute = require("./routes/user");
6+
const authRoute = require("./routes/auth");
7+
const productRoute = require("./routes/product");
8+
const cartRoute = require("./routes/cart");
9+
const orderRoute = require("./routes/order");
10+
const stripeRoute = require("./routes/stripe");
11+
const cors = require("cors");
12+
13+
dotenv.config();
14+
15+
mongoose.connect(process.env.MONGO_URL)
16+
.then(() => console.log("DB Connection successful!"))
17+
.catch((err) => console.log(err));
18+
19+
app.use(cors());
20+
app.use(express.json());
21+
22+
app.use("/api/auth", authRoute);
23+
app.use("/api/users", userRoute);
24+
app.use("/api/products", productRoute);
25+
app.use("/api/carts", cartRoute);
26+
app.use("/api/orders", orderRoute);
27+
app.use("/api/checkout", stripeRoute);
28+
29+
app.listen(process.env.PORT || 5000, () => {
30+
console.log("Backend server is running!");
31+
});

api/models/Cart.js

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
const mongoose = require("mongoose");
2+
3+
const CartSchema = new mongoose.Schema(
4+
{
5+
userId: { type: String, required: true },
6+
products: [
7+
{
8+
productId: {
9+
type: String
10+
},
11+
quantity: {
12+
type: Number,
13+
default: 1
14+
}
15+
}
16+
]
17+
}, { timestamps: true });
18+
19+
module.exports = mongoose.model("Cart", CartSchema);

api/models/Order.js

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
const mongoose = require("mongoose");
2+
3+
const OrderSchema = new mongoose.Schema(
4+
{
5+
userId: { type: String, required: true },
6+
products: [
7+
{
8+
productId: {
9+
type: String
10+
},
11+
quantity: {
12+
type: Number,
13+
default: 1
14+
}
15+
}
16+
],
17+
amount: { type: Number, required: true },
18+
address: { type: Object, required: true },
19+
status: { type: String, default: "pending" }
20+
}, { timestamps: true });
21+
22+
module.exports = mongoose.model("Order", OrderSchema);

api/models/Product.js

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
const mongoose = require("mongoose");
2+
3+
const ProductSchema = new mongoose.Schema(
4+
{
5+
title: { type: String, required: true },
6+
desc: { type: String, required: true },
7+
img: { type: String, required: true },
8+
categories: { type: Array },
9+
size: { type: Array },
10+
color: { type: Array },
11+
price: { type: Number, required: true },
12+
inStock: { type: Boolean, default: true },
13+
}, { timestamps: true });
14+
15+
module.exports = mongoose.model("Product", ProductSchema);

api/models/User.js

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
const mongoose = require("mongoose");
2+
3+
const UserSchema = new mongoose.Schema(
4+
{
5+
username: { type: String, required: true, unique: true },
6+
email: { type: String, required: true, unique: true },
7+
password: { type: String, required: true },
8+
isAdmin: { type: Boolean, default: false }
9+
}, { timestamps: true });
10+
11+
module.exports = mongoose.model("User", UserSchema);

0 commit comments

Comments
 (0)