### پروژه "سیستم ثبت شکایات" با استفاده از Node.js
سیستم ثبت شکایات یک برنامه کاربردی است که به کاربران این امکان را میدهد که شکایات خود را ثبت کنند و وضعیت شکایات را پیگیری کنند. این پروژه با استفاده از Node.js، Express.js و MongoDB برای ذخیرهسازی اطلاعات ساخته شده است.
#### ویژگیهای پروژه:
- **ثبت شکایت:** کاربران میتوانند شکایات خود را ثبت کنند.
- **مشاهده شکایات:** کاربران میتوانند شکایات ثبت شده را مشاهده کنند.
- **وضعیت شکایات:** امکان پیگیری وضعیت شکایات.
- **ساده و کاربرپسند:** طراحی ساده و کاربرپسند.
### راهاندازی پروژه
#### 1. پیشنیازها
مطمئن شوید که Node.js و MongoDB بر روی سیستم شما نصب شده است. همچنین باید MongoDB در حال اجرا باشد.
#### 2. نصب Node.js و Express
برای شروع، یک پوشه جدید برای پروژه خود ایجاد کنید و سپس پکیجهای مورد نیاز را نصب کنید:
```bash
mkdir complaint-register-system
cd complaint-register-system
npm init -y
npm install express mongoose body-parser cors
```
#### 3. ساختار فایلها
ساختار پروژه به صورت زیر است:
```
complaint-register-system/
├── package.json
├── server.js
└── models/
└── complaint.js
```
#### 4. کد منبع
##### فایل `package.json`
این فایل مشخصات پروژه را شامل میشود.
```json
{
"name": "complaint-register-system",
"version": "1.0.0",
"main": "server.js",
"scripts": {
"start": "node server.js"
},
"dependencies": {
"body-parser": "^1.20.0",
"cors": "^2.8.5",
"express": "^4.18.1",
"mongoose": "^6.3.0"
}
}
```
##### فایل `server.js`
این فایل سرور Node.js را راهاندازی میکند و از Express.js برای مدیریت درخواستها استفاده میکند:
```javascript
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const cors = require('cors');
// راهاندازی سرور
const app = express();
const PORT = process.env.PORT || 5000;
// اتصال به MongoDB
mongoose.connect('mongodb://localhost:27017/complaints', {
useNewUrlParser: true,
useUnifiedTopology: true
});
// استفاده از middleware
app.use(cors());
app.use(bodyParser.json());
// تعریف مدل شکایت
const Complaint = require('./models/complaint');
// ثبت شکایت
app.post('/api/complaints', async (req, res) => {
const { name, email, complaint } = req.body;
const newComplaint = new Complaint({ name, email, complaint });
try {
await newComplaint.save();
res.status(201).json({ message: 'شکایت با موفقیت ثبت شد' });
} catch (error) {
res.status(500).json({ error: 'خطا در ثبت شکایت' });
}
});
// دریافت تمامی شکایات
app.get('/api/complaints', async (req, res) => {
try {
const complaints = await Complaint.find();
res.status(200).json(complaints);
} catch (error) {
res.status(500).json({ error: 'خطا در دریافت شکایات' });
}
});
// راهاندازی سرور
app.listen(PORT, () => {
console.log(`سرور در حال اجرا بر روی http://localhost:${PORT}`);
});
```
##### فایل `models/complaint.js`
این فایل مدل شکایت را تعریف میکند:
```javascript
const mongoose = require('mongoose');
// تعریف ساختار مدل شکایت
const complaintSchema = new mongoose.Schema({
name: { type: String, required: true },
email: { type: String, required: true },
complaint: { type: String, required: true },
createdAt: { type: Date, default: Date.now }
});
// تعریف مدل شکایت
const Complaint = mongoose.model('Complaint', complaintSchema);
module.exports = Complaint;
```
### 5. اجرای پروژه
برای اجرای سرور، از دستور زیر در ترمینال استفاده کنید:
```bash
node server.js
```
### 6. تست API
میتوانید از ابزارهایی مانند Postman برای تست API استفاده کنید. در زیر چند درخواست نمونه آورده شده است:
#### ثبت شکایت
- **روش:** POST
- **آدرس:** `http://localhost:5000/api/complaints`
- **بدنه درخواست:**
```json
{
"name": "Ali",
"email": "ali@example.com",
"complaint": "مشکل با خدمات مشتری"
}
```
#### دریافت تمامی شکایات
- **روش:** GET
- **آدرس:** `http://localhost:5000/api/complaints`
### نتیجهگیری
این پروژه "سیستم ثبت شکایات" به شما این امکان را میدهد که با اصول ساخت یک اپلیکیشن وب با استفاده از Node.js و MongoDB آشنا شوید. شما میتوانید این پروژه را گسترش دهید و ویژگیهای بیشتری مانند احراز هویت کاربر، ارسال ایمیل، یا قابلیت جستجو در شکایات اضافه کنید. این پروژه یک نقطه شروع عالی برای یادگیری توسعه وب با Node.js است.