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
  •  
  •  
  •  
1 change: 1 addition & 0 deletions backend/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
MONGOURL="mongodb://localhost:27017/assignment"
75 changes: 75 additions & 0 deletions backend/api/controllers/cardController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@

const Card =require('../models/Card');

// Create a new card
const createHelpCard = async (req, res) => {
try {
const { id,title, content } = req.body;

// Check if all required fields are provided
if (!title || !content) {
return res.status(400).json({ message: 'Title and content are required' });
}

// Create a new card
const newCard = new Card({id, title, content });
await newCard.save();

res.status(201).json(newCard);
} catch (error) {
console.error('Error creating card:', error);
res.status(500).json({ message: 'Server error' });
}
};

// Get all cards
const getAllHelpCards = async (req, res) => {
try {
const cards = await Card.find({});
res.status(200).json(cards);
} catch (error) {
console.error('Error fetching cards:', error);
res.status(500).json({ message: 'Server error' });
}
};

// Get a single card by title
const getHelpCardByTitle = async (req, res) => {
try {
const { title } = req.params;
const card = await Card.findOne({ title });

if (!card) {
return res.status(404).json({ message: 'Card not found' });
}

res.status(200).json(card);
} catch (error) {
console.error('Error fetching card:', error);
res.status(500).json({ message: 'Server error' });
}
};

// Delete a card by title
const deleteHelpCardByTitle = async (req, res) => {
try {
const { title } = req.params;
const result = await Card.deleteOne({ title });

if (result.deletedCount === 0) {
return res.status(404).json({ message: 'Card not found' });
}

res.status(200).json({ message: 'Card deleted successfully' });
} catch (error) {
console.error('Error deleting card:', error);
res.status(500).json({ message: 'Server error' });
}
};

module.exports={
getAllHelpCards,
deleteHelpCardByTitle,
getHelpCardByTitle,
createHelpCard
}
18 changes: 18 additions & 0 deletions backend/api/models/Card.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
const mongoose = require('mongoose');
const {Schema} = mongoose;

const cardSchema = new Schema({
id:String,
tittle:{
type:String,
required:true
},
description:{
type:String,
required:true
}
})

const Card = mongoose.model("Card", cardSchema);

module.exports = Card;
10 changes: 10 additions & 0 deletions backend/api/routes/cardRoutes.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const express=require('express')
const router = express.Router();
const cardControllers = require('../controllers/cardController');

router.post('/',cardControllers.createHelpCard);
router.get('/',cardControllers.getAllHelpCards)
router.get('/:title',cardControllers.getHelpCardByTitle)
router.delete('/:title',cardControllers.deleteHelpCardByTitle)

module.exports = router;
29 changes: 29 additions & 0 deletions backend/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
const express = require('express');
const app = express();
const mongoose = require('mongoose');
const cors = require('cors');
require('dotenv').config();
const cardRouter =require('./api/routes/cardRoutes')

const port = 3000;

app.use(cors());
app.use(express.json());

mongoose.connect(`${process.env.MONGOURL}`)
.then(() => {
console.log('MongoDB connected');
})
.catch((error) => {
console.error('MongoDB connection error:', error);
});

app.use('/card',cardRouter)

app.get('/',(req,res)=>{
res.send("hello")
})

app.listen(port, () => {
console.log(`Example app listening on port ${port}`);
});
16 changes: 16 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.

Loading