🌐وب‌اپسال: ۲۰۲۵در حال توسعه فعال

پلتفرم مدرسه فجر دانش

پلتفرم کامل مدیریت مدرسه — React + Express + MongoDB با اپ اندروید، فعال در fajrdanesh1.ir.

پلتفرم مدرسه فجر دانش cover
React 18ViteCapacitor (اندروید)Node.js / ExpressMongoDB / MongooseSocket.ioJWT + bcryptChart.js / RechartsFramer Motionتاریخ جلالی (moment-jalaali)

چیست؟

فجر دانش یک پلتفرم آموزشی کامل برای یک مدرسه واقعی است که به‌صورت زنده در fajrdanesh1.ir اجرا می‌شود. دانش‌آموزان، معلمان، والدین و اخبار آموزشی را در یک سیستم مدیریت می‌کند: فرانت‌اند ری‌اکت + Vite (به‌همراه اپ اندروید Capacitor)، بک‌اند Express + MongoDB و API امن‌سازی‌شده با دسترسی نقش‌محور.

لینک زنده: fajrdanesh1.ir

ویژگی‌های شاخص

فرانت‌اند (React + Vite)

  • داشبوردهای نقش‌محور — نمای جداگانه مدیر، معلم، والدین و دانش‌آموز با چیدمان‌های متفاوت
  • مدیریت اخبار — انتشار اخبار آموزشی با محتوای غنی
  • گالری و رسانهGalleryUploader / GalleryManager با آپلود تصویر و ویدیو
  • پیگیری پیشرفتProgressChart و MultiTermProgressChart برای نمایش رشد در هر ترم
  • نمرات و رتبه‌بندی — جدول نمرات، نمای خلاصه و جدول رتبه‌بندی
  • آرشیو آزمون و سؤال — ساخت، ذخیره و استفاده مجدد از سؤال‌ها
  • برنامه کلاسیScheduleEditor برای زمان‌بندی ترم
  • اعلان هوشمند — سیستم SmartNotification برای والدین و معلمان
  • پروفایل واقعی معلمان — صفحه اختصاصی برای هر معلم + پیش‌ثبت‌نام (PreRegisterForm)
  • خروجی PDF — jsPDF + autotable برای گزارش‌های قابل چاپ
  • فارسی‌محور — پشتیبانی تقویم جلالی (moment-jalaali) و ارقام فارسی

بک‌اند (Express + MongoDB)

  • احراز هویت و نقش‌ها — توکن JWT، هش bcrypt، سشن کوکی و اعمال نقش‌ها با میان‌افزار requireRole
  • ۱۲ مدل MongooseUser، Student، Grade، ClassSchedule، News، Gallery، Album، GalleryVideo، Question، Note، PreRegister، ActivityLog
  • کنترلرها و مسیرها — auth، admin، teacher، parent، news، gallery، schedule، questions، pre-register و meta، هرکدام با مسیرهای اختصاصی
  • امن‌شده از پایه — هدرهای helmet، express-rate-limit (سراسری + هر مسیر)، مسیر توکن CSRF، express-mongo-sanitize، محافظت HPP و express-validator
  • آپلود — خط لوله آپلود با multer و ذخیره‌سازی در uploads/
  • بلادرنگ — Socket.io برای حضور و به‌روزرسانی‌های زنده
  • لاگینگ — لاگ ساختاریافته Winston + لاگ درخواست‌های Morgan
  • بکاپmongo_backup/، اسکریپت‌های بازیابی و restore_users.json

ساختار پروژه

School-Vps/
├── frontend/                 # اپ React 18 + Vite (+ اپ اندروید Capacitor)
│   └── src/
│       ├── pages/            # داشبوردها، ورود/ثبت‌نام، درباره، تماس، افتخارات…
│       ├── components/       # بیش از ۵۰ کامپوننت شامل admin/، نمودارها، جدول‌ها
│       ├── context/AuthContext.jsx   # state سراسری احراز هویت
│       └── secure_guard/ProtectedRoute.jsx  # محافظت مسیر بر اساس نقش
├── backend/
│   ├── index.js              # اپ Express + پشته میان‌افزار
│   ├── models/               # ۱۲ اسکیمای Mongoose
│   ├── controllers/          # auth، admin، teacher، parent، news، schedule…
│   ├── routes/               # مسیرهای REST دسته‌بندی‌شده بر اساس دامنه
│   ├── middleware/           # auth، role، CSRF، مدیریت خطا
│   ├── config/               # بارگذار env، محدودیت نرخ، مسیرهای آپلود
│   ├── services/             # منطق کسب‌وکار
│   └── uploads/              # ذخیره‌سازی رسانه
└── mongo_backup/             # بکاپ‌های دیتابیس

شروع کار

cd backend  && npm install && npm run start:prod
cd frontend && npm install && npm run dev   # http://localhost:5173

پیش‌نیازها: Node 18+، MongoDB، Git.

چرا برجسته است

این یک دمو نیست — یک پلتفرم تولیدی زنده با معلمان و دانش‌آموزان واقعی است. وسعت فول‌استک را نشان می‌دهد (ری‌اکت، state، نمودارها، Capacitor در یک طرف؛ REST، احراز هویت، آپلود، بلادرنگ و سخت‌افزاری امنیتی در طرف دیگر) و مراقبت عملیاتی یک پروژه واقعی را: محدودیت نرخ، CSRF، سانیتیز، لاگ ساختاریافته و بکاپ دیتابیس — همه از ابتدا در پروژه تعبیه شده‌اند، نه بعداً اضافه شده‌اند.

پروژه‌های بیشتر