Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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 backend/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ const app = express();
const cors = require("cors");
const test = require("./trackingParcel/parcelRoutes/routes");
const saveParcelRoute = require("./trackingParcel/parcelRoutes/saveParcelRoute");
const supplierRouter = require('./routes/suppliers.js');
const orderRouter = require('./routes/orders.js');

// Middleware section
app.use(cors());
Expand All @@ -27,5 +29,8 @@ app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});

app.use("/supplier",supplierRouter);
app.use("/order",orderRouter);

app.use(test);
app.use(saveParcelRoute);
17 changes: 17 additions & 0 deletions backend/supplierManagement/models/order.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
const mongoose=require('mongoose');

const Schema=mongoose.Schema;

const oredrSchema=new Schema({

oid:{type:Number,unique:true,required:true},
supplier:{type:String,required:true},
date:{type:Date,required:true},
bname:{type:String,required:true},
quantity:{type:Number,required:true}

})

const order=mongoose.model("order",oredrSchema);

module.exports = order;
18 changes: 18 additions & 0 deletions backend/supplierManagement/models/supplier.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
const mongoose=require('mongoose');

const Schema=mongoose.Schema;

const supplierSchema=new Schema({

name:{type:String,required:true},
nic:{type:String,unique:true,required:true},
address:{type:String,required:true},
mobile:{type:Number,required:true},
email:{type:String,required:true},
wname:{type:String,required:true}

})

const supplier=mongoose.model("Supplier",supplierSchema);

module.exports = supplier;
107 changes: 107 additions & 0 deletions backend/supplierManagement/routes/orders.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
const router= require( 'express').Router();
let order=require('../models/order')

router.route('/add').post((req, res)=>{

const oid =req.body.oid;
const supplier =req.body.supplier;
const date = req.body.date;
const bname = req.body.bname;
const quantity = req.body.quantity ;

const newOrder=new order({

oid,
supplier,
date,
bname,
quantity
})

newOrder.save()
.then(()=>{
res.json("order submitted")
}).catch((err)=> {res.status(400).send("unable to submit order")})
})

router.route("/").get((req, res) => {

order.find().then((orders)=>{
res.json(orders)

}).catch((err)=>{
console.log(err)
})
})



router.route("/update/:oid").put(async(req,res)=>{

let orderId=req.params.oid;
const{oid,supplier,date,bname,quantity}=req.body;

const updateOrder={
oid,
supplier,
date,
bname,
quantity
}
const update=await order.findOneAndUpdate({ oid: orderId }, updateOrder, { new: true });
if(!update){
return res.status(404).send('No order found')
}else{

return res.status(200).send({status:"order updated"});
}
})


router.route("/delete/:oid").delete(async(req,res)=>{

try{
let orderId=req.params.oid;
const deleteorder = await order.findOneAndDelete({oid:orderId});

if (deleteorder) {
res.status(200).send({ status: 'Deleted' });

} else {
res.status(404).send({ status: "Supplier not found" });
}}
catch (err) {
res.status(500).send({ status: "Error in deleting" });
console.log(err);
}
})

// delete all
router.route('/delete'). delete(async(req, res) => {
try {
await order.deleteMany({}); // Delete all documents in the Order collection
res.status(200).send({ status: 'All orders deleted' });
console.log(res);
} catch (err) {
res.status(500).send({ status: 'Error in deleting' });
console.error(err);
}
});


router.route("/get/:oid").get(async(req,res)=>{
let orderId = req.params.oid; // Corrected variable name
try {
const foundOrder = await order.findOne({ oid: orderId });

if (!foundOrder) {
return res.status(404).send({ status: 'Order not found' });
}

return res.status(200).send({ status: 'Order fetched', order: foundOrder });
} catch (error) {
console.error(error);
return res.status(500).send({ status: "Error in fetch", error: error.message });
}
});
module.exports=router;
138 changes: 138 additions & 0 deletions backend/supplierManagement/routes/suppliers.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
const router= require( 'express').Router();
const nodemailer = require('nodemailer');
require('dotenv').config();
let supplier=require('../models/supplier')

router.route('/add').post((req, res)=>{

const name =req.body.name;
const nic =req.body.nic;
const address = req.body.address;
const mobile = Number(req.body.mobile);
const email= req.body.email;
const wname = req.body.wname;

const newSupplier=new supplier({

name,
nic,
address,
mobile,
email,
wname
})

newSupplier.save()
.then(()=>{
res.json("Supplier added")
}).catch((err)=> {res.status(400).send("unable to add Supplier")})
})

router.route("/").get((req, res) => {

supplier.find().then((suppliers)=>{
res.json(suppliers)

}).catch((err)=>{
console.log(err)
})
})



router.route("/update/:nic").put(async(req,res)=>{

let userNic=req.params.nic;
const{name,nic,address,mobile,email,wname}=req.body;

const updateSupplier={
name,
nic,
address,
mobile,
email,
wname
}
const update=await supplier.findOneAndUpdate({ nic: userNic }, updateSupplier, { new: true });
if(!update){
return res.status(404).send('No User found')
}else{

return res.status(200).send({status:"user updated"});
}
})


router.route("/delete/:nic").delete(async (req, res) => {
try {
const userNic = req.params.nic;

const deletedSupplier = await supplier.findOneAndDelete({ nic: userNic });

if (deletedSupplier) {
res.status(200).send({ status: 'Deleted' });

} else {
res.status(404).send({ status: "Supplier not found" });
}
} catch (err) {
res.status(500).send({ status: "Error in deleting" });
console.log(err);
}
});




router.route("/get/:nic").get(async(req,res)=>{
let userId = req.params.nic;
try {
const founduser = await supplier.findOne({ nic: userId });

if (!founduser) {
return res.status(404).send({ status: 'user not found' });
}

return res.status(200).send({ status: 'user fetched', order: founduser });
} catch (error) {
console.error(error);
return res.status(500).send({ status: "Error in fetch", error: error.message });
}
});



const transporter = nodemailer.createTransport({
service: 'Gmail',
host: "smtp.gmail.com",
port: 587,
secure: false,
requireTLS: true,
auth: {
user: process.env.GMAIL_USER,
pass: process.env.GMAIL_PASS
}
});

router.route("/Sendmail").post(async(req, res) => {
const { name, email, message } = req.body;

const mailOptions = {
from: process.env.GMAIL_USER,
to: email,
subject: 'New message from your website contact form',
text: `Name: ${name}\nEmail: ${email}\n\nMessage:\n${message}`
};

transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log(error);
console.error('Error sending email:', error);
res.status(500).send('Error sending email');
} else {
console.log('Email sent successfully:', info.response);
res.status(200).send('Email sent successfully');
}
});
});
module.exports=router;
Loading