🔧درباره سامانه یادگیری مستمر دبستان شهید جهان آرا
و اطلاعاتی برای توسعهدهندگان بعدی این سامانه
سامانه یادگیری مستمر دبستان شهید جهانآرا بستری آموزشی ویژه معلمان این مدرسه است که با هدف توسعه حرفهای و ارتقای مهارتهای آموزشی طراحی شده است. این سامانه دورههای آموزشی ضمن خدمت را بهصورت ساختاریافته و کاربردی ارائه میدهد تا معلمان بتوانند به دانش و روشهای نوین تدریس دسترسی داشته باشند و سطح کیفی آموزش را بهبود بخشند.
این پروژه با استفاده از Next.js 14 توسعه داده شده و به عنوان یک وب اپلیکیشن سمت سرور (SSG) و مبتنی بر React طراحی شده است. معماری این سامانه از Page Routing برای مسیرهای مختلف بهره میبرد و احراز هویت کاربران از طریق کوکیها (js-cookie) مدیریت میشود.
در این مستندات، اطلاعات مورد نیاز برای توسعهدهندگان بعدی از جمله ساختار پروژه، نحوه راهاندازی، مسیرهای صفحه، مدیریت وضعیت و وابستگیهای کلیدی آورده شده است. لطفاً قبل از اعمال تغییرات، به نسخههای کتابخانهها و ساختار کلی پروژه دقت کنید تا از ناسازگاریهای احتمالی جلوگیری شود. 🚀
با تشکر
محمد لبافی، توسعهدهنده سامانه های دبستان شهید جهان آرا
زمستان 1403
🔹اطلاعات کلی🔹
| ویژگی | مقدار |
|---|---|
| 📂 پلتفرم | Web Application |
| 🚀 فریمورک | Next.js 14.2.3 |
| 📝 زبان برنامهنویسی | JavaScript (React-based) |
| 📦 نسخه React | React 18 |
| 📡 احراز هویت | کوکی (js-cookie@3.0.5) |
| 🎨 UI Library | Bootstrap 5.3.3 + React-Bootstrap 2.10.5 |
🚀 لینکهای مهم
📌 نحوه راهاندازی پروژه
git clone https://github.com/... cd project-folder npm install npm run dev
🌐 صفحات اصلی سایت
| 🔹 عنوان | 🔗 لینک |
|---|---|
| 🏠 صفحه اصلی | / |
| 📚 پایهها | /bases |
| 📖 کتابهای درسی | /books |
| 👨💻 درباره توسعهدهنده | /about-developer |
| 🔧درباره سامانه | /developer |
🔑 احراز هویت و کوکیها
سامانه از کوکیها برای احراز هویت استفاده میکند:
import Cookies from 'js-cookie';
*
*
*
*
const [password, setPassword] = useState('');
const [Err , setErr] = useState(false)
const router = useRouter();
useEffect(() => {
const isAuthenticated = Cookies.get('auth');
if (isAuthenticated === 'true') {
router.push('/'); // هدایت به صفحه لاگین در صورت عدم احراز هویت
}
}, []);
const handleLogin = (e) => {
e.preventDefault();
const correctPassword = "****"; // رمز عبور مورد نظر خود
if (password === correctPassword) {
setErr(false);
// تنظیم کوکی با انقضای یک روز
Cookies.set('auth', 'true', { expires: 1 });
router.push('/'); // به صفحه محافظتشده هدایت میشود
} else {
setErr('true');
}
};📁محتوای فایل package.json:
{
"name": "hamyar-jahanara",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"@react-pdf-viewer/core": "^3.12.0",
"@react-pdf-viewer/default-layout": "^3.12.0",
"bootstrap": "^5.3.3",
"framer-motion": "^11.11.7",
"js-cookie": "^3.0.5",
"mammoth": "^1.8.0",
"next": "14.2.3",
"pdfjs-dist": "^3.11.174",
"react": "^18",
"react-bootstrap": "^2.10.5",
"react-dom": "^18",
"react-pdf": "^9.1.1"
},
"devDependencies": {
"eslint": "^8",
"eslint-config-next": "14.2.3"
}
}