🔧درباره سامانه یادگیری مستمر دبستان شهید جهان آرا
و اطلاعاتی برای توسعهدهندگان بعدی این سامانه
سامانه یادگیری مستمر دبستان شهید جهانآرا بستری آموزشی ویژه معلمان این مدرسه است که با هدف توسعه حرفهای و ارتقای مهارتهای آموزشی طراحی شده است. این سامانه دورههای آموزشی ضمن خدمت را بهصورت ساختاریافته و کاربردی ارائه میدهد تا معلمان بتوانند به دانش و روشهای نوین تدریس دسترسی داشته باشند و سطح کیفی آموزش را بهبود بخشند.
این پروژه با استفاده از 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" } }