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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Binary file modified README.md
Binary file not shown.
57 changes: 57 additions & 0 deletions backend/controllers/card.controller.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
import Card from "../models/card.model.js";

// create card controller funciton
export const createCard = async (req, res) => {
try {
const { title, description } = req.body;
if (!title || !description) {
return res.status(404).json({
error:
"Missing Details of the card,Please give the card details properly.",
});
}

const card = await Card.create({
title: title,
description: description,
});
res.status(201).json(card);
} catch (error) {
console.log(error.message);
res.status(400).json({ error: "Error creating card" + error.message });
}
};

// get all cards controller function
export const getAllCardDetails = async (req, res) => {
try {
const cards = await Card.find();
res.status(200).json(cards);
} catch (error) {
console.log(error.message);
res
.status(400)
.json({ error: "Error in getting all cards" + error.message });
}
};

// get particular card controller function

export const getParticularCard = async (req, res) => {
try {
const title = req.params.title;
if (!title) {
return res.status(404).json({
error: "Card title is required",
});
}
const card = await Card.findOne({ title: title });
if (!card) {
res.status(404).json({ error: "Card not found" });
}
res.status(201).json(card);
} catch (error) {
console.log(error.message);
res.status(400).json({ error: "Error creating card" + error.message });
}
};
15 changes: 15 additions & 0 deletions backend/db/connectToDb.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import mongoose from "mongoose";
const connectToDb = async () => {
try {
/* for the simplicity I not create any cluster online */
const url = await mongoose.connect(
"mongodb://127.0.0.1:27017/helpCenterDB"
);
if (!url) throw new Error("Mongodb url not found");
console.log("MongoDb is connected securely", url?.connection?.host);
} catch (error) {
console.error("Error in connect to mongodb", error.message);
process.exit(1);
}
};
export default connectToDb;
31 changes: 31 additions & 0 deletions backend/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import express from "express";
import dotenv from "dotenv";
import cardRoutes from "./routes/cardRoute.route.js";
import connectToDb from "./db/connectToDb.js";
import cors from "cors";
// configuring dotenv
dotenv.config();

const app = express();

// using middleware to accept data from frontend in json
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
// adding the cors middleware and allow frontend access
app.use(
cors({
origin: ["http://localhost:5173"],
credentials: true,
})
);

// ping endpoint
app.get("/ping", (req, res) => res.send("Server is running!"));
// app routes
app.use("/api/cards", cardRoutes);

const PORT = process.env.PORT || 5000;
app.listen(PORT, () => {
console.log(`Server running on port ${PORT}`);
connectToDb();
});
15 changes: 15 additions & 0 deletions backend/models/card.model.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import mongoose from "mongoose";

const cardSchema = new mongoose.Schema({
title: {
type: String,
required: true,
},
description: {
type: String,
required: true,
},
});

const Card = mongoose.model("Card", cardSchema);
export default Card;
12 changes: 12 additions & 0 deletions backend/node_modules/.bin/mime

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions backend/node_modules/.bin/mime.cmd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

28 changes: 28 additions & 0 deletions backend/node_modules/.bin/mime.ps1

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions backend/node_modules/.bin/nodemon

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions backend/node_modules/.bin/nodemon.cmd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

28 changes: 28 additions & 0 deletions backend/node_modules/.bin/nodemon.ps1

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions backend/node_modules/.bin/nodetouch

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions backend/node_modules/.bin/nodetouch.cmd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

28 changes: 28 additions & 0 deletions backend/node_modules/.bin/nodetouch.ps1

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions backend/node_modules/.bin/semver

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions backend/node_modules/.bin/semver.cmd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

28 changes: 28 additions & 0 deletions backend/node_modules/.bin/semver.ps1

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading