Skip to content

Commit

Permalink
Merge branch 'main' into addtocart
Browse files Browse the repository at this point in the history
  • Loading branch information
UjjwalGupta1105 authored May 12, 2024
2 parents 1ea3d9d + 02726dc commit a3af439
Show file tree
Hide file tree
Showing 35 changed files with 1,407 additions and 488 deletions.
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ cd Shopy
npm install
```

```bash
npm install vite
```


```bash
npm run dev
Expand Down
867 changes: 535 additions & 332 deletions package-lock.json

Large diffs are not rendered by default.

7 changes: 5 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,11 @@
"axios": "^1.6.7",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-icons": "^5.2.1",
"react-router-dom": "^6.21.3",
"react-toastify": "^10.0.5"
"react-slick": "^0.30.2",
"react-toastify": "^10.0.5",
"slick-carousel": "^1.8.1"
},
"devDependencies": {
"@types/react": "^18.2.43",
Expand All @@ -27,6 +30,6 @@
"eslint-plugin-react-refresh": "^0.4.5",
"postcss": "^8.4.33",
"tailwindcss": "^3.4.1",
"vite": "^5.0.8"
"vite": "^5.2.11"
}
}
2 changes: 1 addition & 1 deletion public/vite.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions server/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
config.env
/node_modules
package-lock.json
13 changes: 13 additions & 0 deletions server/config/DBconnect.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import mongoose from 'mongoose';

const connectDB = async () => {
try {
await mongoose.connect(process.env.DATABASE_URL);
console.log("Connected To MongoDB");
} catch (err) {
console.log("DB Disconnected");
process.exit(1);
}
};

export default connectDB;
82 changes: 82 additions & 0 deletions server/controllers/kids-controller.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
import { KidsModel } from "../models/Kids-model.js";

const Kids=KidsModel;

//Returns all the Items
const getAllItems = async (req, res) => {
try {
const AllItems = await Kids.find();
res.status(200).json({
AllItems,
});
} catch (err) {
res.status(500).json({
message:err.message,
});
}
};

//create a new item
const createItem = async (req, res) => {
try {
const newItem = await Kids.create(req.body);
res.status(201).json({
newItem,
});
} catch (err) {
res.status(500).json({
message:err.message,
});
}
};

//returns a particular item
const getItemById = async (req, res) => {
try {
const ItemById = await Kids.findById(req.params.id);
res.status(200).json({
ItemById,
});
} catch (err) {
res.status(500).json({
message:err.message,
});
}
};

//Updates The Item Details
const UpdateItem = async (req, res) => {
try {
const UpdateItemById = await Kids.findByIdAndUpdate(
req.params.id,
req.body,
{
new: true,
}
);
res.status(200).json({
UpdateItemById,
});
} catch (err) {
res.status(500).json({
message:err.message,
});
}
};

//Delete a Particular Item
const DeleteItem = async (req, res) => {
try {
const DeleteAItem = await Kids.findByIdAndDelete(req.params.id);
res.status(204).json({
DeleteAItem,
});
} catch (err) {
res.status(500).json({
message:err.message,
});
}
};

export { getAllItems, createItem, getItemById, UpdateItem, DeleteItem };

81 changes: 81 additions & 0 deletions server/controllers/mens-controller.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
import {MensModel} from "../models/Mens-model.js";

const Mens=MensModel;

//Returns all the Items
const getAllItems = async (req, res) => {
try {
const AllItems = await Mens.find();
res.status(200).json({
AllItems,
});
} catch (err) {
res.status(500).json({
message:err.message,
});
}
};

//create a new item
const createItem = async (req, res) => {
try {
const newItem = await Mens.create(req.body);
res.status(201).json({
newItem,
});
} catch (err) {
res.status(500).json({
message:err.message,
});
}
};

//returns a particular item
const getItemById = async (req, res) => {
try {
const ItemById = await Mens.findById(req.params.id);
res.status(200).json({
ItemById,
});
} catch (err) {
res.status(500).json({
message:err.message,
});
}
};

//Updates The Item Details
const UpdateItem = async (req, res) => {
try {
const UpdateItemById = await Mens.findByIdAndUpdate(
req.params.id,
req.body,
{
new: true,
}
);
res.status(200).json({
UpdateItemById,
});
} catch (err) {
res.status(500).json({
message:err.message,
});
}
};

//Delete a Particular Item
const DeleteItem = async (req, res) => {
try {
const DeleteAItem = await Mens.findByIdAndDelete(req.params.id);
res.status(204).json({
DeleteAItem,
});
} catch (err) {
res.status(500).json({
message:err.message,
});
}
};

export { getAllItems, createItem, getItemById, UpdateItem, DeleteItem };
82 changes: 82 additions & 0 deletions server/controllers/womens-controller.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
import { WomensModel } from "../models/Womens-model.js";

const Womens=WomensModel;

//Returns all the Items
const getAllItems = async (req, res) => {
try {
const AllItems = await Womens.find();
res.status(200).json({
AllItems,
});
} catch (err) {
res.status(500).json({
message:err.message,
});
}
};

//create a new item
const createItem = async (req, res) => {
try {
const newItem = await Womens.create(req.body);
res.status(201).json({
newItem,
});
} catch (err) {
res.status(500).json({
message:err.message,
});
}
};

//returns a particular item
const getItemById = async (req, res) => {
try {
const ItemById = await Womens.findById(req.params.id);
res.status(200).json({
ItemById,
});
} catch (err) {
res.status(500).json({
message:err.message,
});
}
};

//Updates The Item Details
const UpdateItem = async (req, res) => {
try {
const UpdateItemById = await Womens.findByIdAndUpdate(
req.params.id,
req.body,
{
new: true,
}
);
res.status(200).json({
UpdateItemById,
});
} catch (err) {
res.status(500).json({
message:err.message,
});
}
};

//Delete a Particular Item
const DeleteItem = async (req, res) => {
try {
const DeleteAItem = await Womens.findByIdAndDelete(req.params.id);
res.status(204).json({
DeleteAItem,
});
} catch (err) {
res.status(500).json({
message:err.message,
});
}
};

export { getAllItems, createItem, getItemById, UpdateItem, DeleteItem };

34 changes: 34 additions & 0 deletions server/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import express from 'express';
import dotenv from 'dotenv';
import cors from 'cors';
import morgan from 'morgan';
import { MensRouter } from './routes/mens-route.js';
import connectDB from './config/DBconnect.js';
import { WomensRouter } from './routes/womens-route.js';
import { KidsRouter } from './routes/kids-route.js';

const app=express();

dotenv.config({path:'./config.env'});

connectDB();

app.use(express.json());

app.use(morgan('dev'))

app.use(cors({
origin:"https://shopy-mohitparmar1s-projects.vercel.app/",
methods:['GET','POST'],
credentials:true,
}))

app.use('/api/v1/mens',MensRouter);
app.use('/api/v1/womens',WomensRouter);
app.use('/api/v1/kids',KidsRouter);

const port=process.env.PORT||7000;

app.listen(port,()=>{
console.log(`Server is running on port ${port}`);
})
49 changes: 49 additions & 0 deletions server/models/Kids-model.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import mongoose from "mongoose";

const KidsSchema = new mongoose.Schema(
{
ClothName: {
type: String,
required: [true, "Item Name Must be specified"],
},
images: [String],
rating: {
type: Number,
},
reviews: [String],
brand: {
type: String,
required: [true, "Brand description is required"],
},
description: {
type: String,
required: [true, "A Description is required for a Cloth/Item"],
},
price: {
type: Number,
required: [true, "Price must be mentioned"],
},
category: {
type: String,
default: "Kid",
},
itemsleft: {
type: Number,
required: [true, "Number of items left must be mentioned"],
},
subCategory: {
type: [String],
required: [
true,
"Please mention the sub category i.e, is it a t-shirt/pant,etc",
],
},
tags: [String],
size: [String],
},
{ timestamps: true }
);

const KidsModel = new mongoose.model("Kid", KidsSchema);

export { KidsModel };
Loading

0 comments on commit a3af439

Please sign in to comment.