File size: 11,459 Bytes
7c1ccb4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 |
---
license: apache-2.0
language:
- fa
base_model:
- deepseek-ai/DeepSeek-V3-0324
---
import React, { useState } from 'react';
const ProposalApp = () => {
// مراحل اصلی تدوین پروپوزال
const stages = [
{
id: 1,
title: "انتخاب عنوان و موضوع تحقیق",
description: "در این مرحله عنوان مناسب و موضوع تحقیق خود را انتخاب میکنید",
form: "titleForm"
},
{
id: 2,
title: "بیان مسأله",
description: "توضیح مشکل یا سؤالی که تحقیق به دنبال پاسخگویی به آن است",
form: "problemForm"
},
{
id: 3,
title: "پیشینه تحقیق",
description: "مرور پژوهشهای قبلی در این حوزه",
form: "literatureForm"
},
{
id: 4,
title: "اهداف و سؤالات پژوهش",
description: "تعیین اهداف کلی، اهداف جزئی و سؤالات یا فرضیههای تحقیق",
form: "objectivesForm"
},
{
id: 5,
title: "روششناسی تحقیق",
description: "توضیح روشهای جمعآوری و تحلیل دادهها",
form: "methodologyForm"
},
{
id: 6,
title: "تدوین ابزار تحقیق",
description: "طراحی یا انتخاب ابزارهای مناسب برای جمعآوری دادهها",
form: "toolsForm"
},
{
id: 7,
title: "روش تحلیل دادهها",
description: "توضیح روشهای آماری یا کیفی تحلیل دادهها",
form: "analysisForm"
},
{
id: 8,
title: "زمانبندی و منابع",
description: "تعیین جدول زمانی انجام پژوهش و فهرست منابع",
form: "resourcesForm"
}
];
// متغیرهای وضعیت
const [currentStage, setCurrentStage] = useState(1);
const [proposalData, setProposalData] = useState({
title: "",
problem: "",
literature: "",
objectives: "",
questions: [],
methodology: "",
tools: "",
analysis: "",
timeline: "",
references: ""
});
const [showPreview, setShowPreview] = useState(false);
// مدیریت تغییر فیلدها
const handleChange = (field, value) => {
setProposalData({
...proposalData,
[field]: value
});
};
// رفتن به مرحله بعد
const goToNextStage = () => {
if (currentStage < stages.length) {
setCurrentStage(currentStage + 1);
} else {
setShowPreview(true);
}
};
// رفتن به مرحله قبل
const goToPreviousStage = () => {
if (currentStage > 1) {
setCurrentStage(currentStage - 1);
}
};
// فرم مرحله اول: انتخاب عنوان
const TitleForm = () => (
<div className="bg-white p-6 rounded-lg shadow-md">
<h3 className="text-lg font-bold mb-4">انتخاب عنوان تحقیق</h3>
<div className="mb-6">
<label className="block text-gray-700 mb-2">عنوان پروپوزال:</label>
<input
type="text"
value={proposalData.title}
onChange={(e) => handleChange("title", e.target.value)}
className="w-full border rounded p-2 text-right"
placeholder="عنوان پروپوزال خود را وارد کنید"
dir="rtl"
/>
</div>
<div className="bg-blue-50 p-4 rounded-md mb-4">
<h4 className="font-bold text-blue-800 mb-2">نکات برای انتخاب عنوان مناسب:</h4>
<ul className="list-disc pr-5 text-blue-700">
<li>عنوان باید مختصر، دقیق و گویا باشد (معمولاً زیر 20 کلمه)</li>
<li>متغیرهای اصلی تحقیق باید در عنوان مشخص باشند</li>
<li>جامعه آماری یا گروه هدف در عنوان مشخص شود</li>
<li>از کلمات مبهم و کلی اجتناب کنید</li>
</ul>
</div>
<div className="bg-green-50 p-4 rounded-md mb-4">
<h4 className="font-bold text-green-800 mb-2">نمونههای عنوان مناسب:</h4>
<ul className="list-disc pr-5 text-green-700">
<li>بررسی رابطه هوش هیجانی و موفقیت تحصیلی در دانشجویان روانشناسی دانشگاه تهران</li>
<li>تأثیر آموزش مهارتهای مدیریت استرس بر کاهش اضطراب امتحان در دانشآموزان دبیرستانی</li>
<li>مقایسه اثربخشی درمان شناختی-رفتاری و دارودرمانی در کاهش علائم افسردگی بیماران مبتلا به افسردگی اساسی</li>
</ul>
</div>
</div>
);
// فرم مرحله دوم: بیان مسأله
const ProblemForm = () => (
<div className="bg-white p-6 rounded-lg shadow-md">
<h3 className="text-lg font-bold mb-4">بیان مسأله</h3>
<div className="mb-6">
<label className="block text-gray-700 mb-2">مسأله تحقیق:</label>
<textarea
value={proposalData.problem}
onChange={(e) => handleChange("problem", e.target.value)}
className="w-full border rounded p-2 h-32 text-right"
placeholder="مسأله تحقیق خود را توضیح دهید"
dir="rtl"
/>
</div>
<div className="bg-blue-50 p-4 rounded-md mb-4">
<h4 className="font-bold text-blue-800 mb-2">راهنمای نوشتن بیان مسأله:</h4>
<ul className="list-disc pr-5 text-blue-700">
<li>مسأله را به روشنی تعریف کنید و اهمیت آن را توضیح دهید</li>
<li>خلأهای موجود در دانش فعلی را بیان کنید</li>
<li>به آمار و ارقام مرتبط با مسأله اشاره کنید</li>
<li>ضرورت و فواید انجام این تحقیق را توضیح دهید</li>
</ul>
</div>
<div className="bg-green-50 p-4 rounded-md mb-4">
<h4 className="font-bold text-green-800 mb-2">نمونه بیان مسأله:</h4>
<p className="text-green-700 text-right pr-5">
اضطراب امتحان یکی از مشکلات شایع در بین دانشآموزان است که طبق مطالعات، حدود 30 درصد دانشآموزان به آن مبتلا هستند.
این اختلال میتواند به افت عملکرد تحصیلی، کاهش اعتماد به نفس و ایجاد مشکلات روانی دیگر منجر شود.
با وجود مطالعات متعدد در این زمینه، هنوز روش مؤثر و کاربردی برای مدیریت اضطراب امتحان در بافت مدارس ایران بهطور
کامل بررسی نشده است. این تحقیق قصد دارد تا اثربخشی روشهای مختلف مدیریت استرس را بر کاهش اضطراب امتحان
دانشآموزان بررسی کند.
</p>
</div>
</div>
);
// فرمهای سایر مراحل به طور مشابه ایجاد میشوند...
// نمایش پیشنمایش پروپوزال
const ProposalPreview = () => (
<div className="bg-white p-6 rounded-lg shadow-md text-right" dir="rtl">
<h2 className="text-xl font-bold mb-6 text-center">پیشنمایش پروپوزال</h2>
<h3 className="text-lg font-bold mb-2">عنوان تحقیق:</h3>
<p className="mb-4 p-2 bg-gray-50 rounded">{proposalData.title || "عنوان وارد نشده است"}</p>
<h3 className="text-lg font-bold mb-2">بیان مسأله:</h3>
<p className="mb-4 p-2 bg-gray-50 rounded">{proposalData.problem || "بیان مسأله وارد نشده است"}</p>
<h3 className="text-lg font-bold mb-2">پیشینه تحقیق:</h3>
<p className="mb-4 p-2 bg-gray-50 rounded">{proposalData.literature || "پیشینه تحقیق وارد نشده است"}</p>
<h3 className="text-lg font-bold mb-2">اهداف تحقیق:</h3>
<p className="mb-4 p-2 bg-gray-50 rounded">{proposalData.objectives || "اهداف تحقیق وارد نشده است"}</p>
<button
onClick={() => setShowPreview(false)}
className="bg-blue-500 text-white px-4 py-2 rounded hover:bg-blue-600 mt-4"
>
بازگشت به ویرایش
</button>
</div>
);
// انتخاب فرم مناسب برای مرحله فعلی
const renderCurrentForm = () => {
switch(currentStage) {
case 1:
return <TitleForm />;
case 2:
return <ProblemForm />;
// سایر حالتها بر اساس مراحل اضافه میشوند
default:
return <div>در حال آمادهسازی...</div>;
}
};
return (
<div className="mx-auto max-w-4xl p-4 bg-gray-50 min-h-screen">
<h1 className="text-2xl font-bold text-center mb-6">راهنمای نوشتن پروپوزال تحقیق روانشناسی</h1>
{!showPreview ? (
<>
{/* نمایش مراحل */}
<div className="flex justify-center mb-8 overflow-x-auto py-2">
{stages.map((stage) => (
<div
key={stage.id}
className={`px-3 py-1 mx-1 rounded-full text-sm cursor-pointer ${
currentStage === stage.id
? "bg-blue-600 text-white"
: currentStage > stage.id
? "bg-green-100 text-green-800"
: "bg-gray-200 text-gray-600"
}`}
onClick={() => setCurrentStage(stage.id)}
>
{stage.id}. {stage.title}
</div>
))}
</div>
{/* توضیحات مرحله فعلی */}
<div className="bg-blue-100 p-4 rounded-md mb-6 text-right" dir="rtl">
<h2 className="font-bold text-lg mb-2">{stages[currentStage-1].title}</h2>
<p>{stages[currentStage-1].description}</p>
</div>
{/* فرم مرحله فعلی */}
{renderCurrentForm()}
{/* دکمههای ناوبری */}
<div className="flex justify-between mt-6">
<button
onClick={goToPreviousStage}
disabled={currentStage === 1}
className={`px-4 py-2 rounded ${
currentStage === 1
? "bg-gray-300 text-gray-500 cursor-not-allowed"
: "bg-gray-500 text-white hover:bg-gray-600"
}`}
>
مرحله قبل
</button>
<button
onClick={goToNextStage}
className="bg-blue-500 text-white px-4 py-2 rounded hover:bg-blue-600"
>
{currentStage < stages.length ? "مرحله بعد" : "پیشنمایش پروپوزال"}
</button>
</div>
</>
) : (
<ProposalPreview />
)}
</div>
);
};
export default ProposalApp; |