Skip to content

Commit 63ff228

Browse files
authored
Merge pull request #1 from robinNcode/office
update: Feedback functionality added.
2 parents 2e0a2c5 + ad48be6 commit 63ff228

10 files changed

Lines changed: 421 additions & 4 deletions

File tree

.env

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
VITE_API_BASE_URL=http://localhost:5000

backend/.env

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
MONGO_URI=mongodb://localhost:27017/banglascript
2+
API_BASE_URL=http://localhost:5000
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
2+
import { Request, Response } from 'express';
3+
import Feedback from '../models/feedback';
4+
5+
export const submitFeedback = async (req: Request, res: Response) => {
6+
try {
7+
const { name, email, message } = req.body;
8+
const newFeedback = new Feedback({ name, email, message });
9+
await newFeedback.save();
10+
res.status(201).json({ message: 'Feedback submitted successfully' });
11+
} catch (error) {
12+
res.status(500).json({ message: 'Error submitting feedback', error });
13+
}
14+
};

backend/models/feedback.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
2+
import mongoose from 'mongoose';
3+
4+
const feedbackSchema = new mongoose.Schema({
5+
name: {
6+
type: String,
7+
required: true,
8+
},
9+
email: {
10+
type: String,
11+
required: true,
12+
},
13+
message: {
14+
type: String,
15+
required: true,
16+
},
17+
createdAt: {
18+
type: Date,
19+
default: Date.now,
20+
},
21+
});
22+
23+
const Feedback = mongoose.model('Feedback', feedbackSchema);
24+
25+
export default Feedback;

backend/server.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
2+
import express from 'express';
3+
import cors from 'cors';
4+
import connectDB from './utils/db';
5+
import { submitFeedback } from './controllers/feedbackController';
6+
import dotenv from 'dotenv';
7+
8+
dotenv.config();
9+
10+
const app = express();
11+
const port = process.env.PORT || 5000;
12+
13+
app.use(cors());
14+
app.use(express.json());
15+
16+
connectDB();
17+
18+
app.post('/api/feedback', submitFeedback);
19+
20+
app.listen(port, () => {
21+
console.log(`Server is running on port: ${port}`);
22+
});

backend/tsconfig.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
2+
{
3+
"compilerOptions": {
4+
"target": "es6",
5+
"module": "commonjs",
6+
"rootDir": "./",
7+
"outDir": "./dist",
8+
"esModuleInterop": true,
9+
"strict": true
10+
}
11+
}

backend/utils/db.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
2+
import mongoose from 'mongoose';
3+
4+
const connectDB = async () => {
5+
try {
6+
await mongoose.connect(process.env.MONGO_URI || 'mongodb://localhost:27017/banglascript');
7+
console.log('MongoDB connected');
8+
} catch (error) {
9+
console.error('MongoDB connection error:', error);
10+
process.exit(1);
11+
}
12+
};
13+
14+
export default connectDB;

0 commit comments

Comments
 (0)