7 Commits

Author SHA1 Message Date
Reza Adousi 98e9018fe3 Merge remote-tracking branch 'origin/main' into reza-requirements 2026-11-02 01:52:22 +03:30
Reza Adousi e2ed60a042 Update requirements specification document with detailed functional and non-functional requirements, user roles, and system scope. 2026-11-02 01:11:21 +03:30
amir 700378f5aa update contributing.md file 2026-10-27 10:54:12 +03:30
amir b2bb9285b6 Create user stories for maintenance reporting system (#3)
Added user stories for the university maintenance reporting system, detailing requirements for students, faculty, maintenance staff, and technicians.
2026-10-27 00:15:12 +03:30
amir ae9ccd9ecd add CODEOWNERS for review merge requests 2026-10-26 23:49:01 +03:30
Reza Adousi 6cf3033ad8 Add initial requirements specification document for university fault management system 2026-10-26 23:42:41 +03:30
Reza Adousi 3744809c67 Add initial requirements specification document for university fault management system 2026-10-26 22:56:46 +03:30
5 changed files with 261 additions and 0 deletions
+2
View File
@@ -0,0 +1,2 @@
# All files require review from AmirAref
* @AmirAref
+23
View File
@@ -72,6 +72,29 @@ git push -u origin aref-tasks
---
## ۶. رسم نمودار با Mermaid
برای رسم نمودارها (مثل Class Diagram) از ابزار [Mermaid](https://mermaid.js.org/) استفاده کنید.
نمودار به‌صورت متن نوشته می‌شود، بنابراین تغییرات آن در Git قابل مشاهده و بازبینی است. گیت‌هاب این نمودارها را مستقیم در فایل‌های `.md` نمایش می‌دهد.
مثال یک Class Diagram:
```mermaid
classDiagram
class Report {
+id: int
+status: string
+submit()
}
class Technician {
+name: string
+assign(report)
}
Technician "1" --> "*" Report : repairs
```
---
## نکات مهم
- همیشه قبل از شروع کار جدید، آخرین تغییرات `CONTRIBUTINGmain` را بگیر:
+2
View File
@@ -41,3 +41,5 @@
## نحوه همکاری
هر عضو تیم با اکانت شخصی خود محتوا را اضافه یا اصلاح می‌کند تا تاریخچه Commitها نشان‌دهندهٔ سهم هر نفر باشد.
برای جزئیات بیشتر درباره نحوهٔ کار با برنچ‌ها و Pull Request، [راهنمای همکاری (CONTRIBUTING.md)](CONTRIBUTING.md) را ببینید.
+103
View File
@@ -0,0 +1,103 @@
# سند نیازمندی‌ها (Requirements Specification) – سامانه مدیریت و گزارش خرابی دانشگاهی
**تهیه‌کننده:** رضا آدوسی
**بازبین:** ارشیا همتی‌زاده
**آخرین به‌روزرسانی:** ۱۴۰۵/۰۸/۱۱
---
## مقدمه
در این سند، نیازمندی‌های اصلی سامانهٔ مدیریت و گزارش خرابی دانشگاهی در دو دستهٔ **نیازمندی‌های کارکردی (Functional Requirements)** و **نیازمندی‌های غیرکارکردی (Non-functional Requirements)** تعریف شده‌اند.
نیازمندی‌های کارکردی، قابلیت‌ها و وظایفی را مشخص می‌کنند که سامانه باید ارائه دهد و نیازمندی‌های غیرکارکردی، ویژگی‌های کیفی و محدودیت‌های مورد انتظار از سامانه را بیان می‌کنند.
## ۱. هدف و محدودهٔ سامانه
هدف از توسعهٔ این سامانه، فراهم کردن بستری متمرکز برای ثبت خرابی تجهیزات و فضاهای دانشگاه، پیگیری درخواست‌ها و مدیریت فرایند تعمیر است.
سامانه به دانشجویان و استادان امکان می‌دهد خرابی‌های مشاهده‌شده را ثبت و وضعیت رسیدگی به آن‌ها را پیگیری کنند. همچنین کارمندان تأسیسات می‌توانند گزارش‌ها را بررسی، اولویت‌بندی و به تعمیرکاران ارجاع دهند و بر روند رسیدگی نظارت داشته باشند.
محدودهٔ دقیق فضاهای تحت پوشش سامانه، از جمله کلاس‌ها، آزمایشگاه‌ها، فضاهای عمومی، اداری و خوابگاه‌ها، در مراحل بعدی تحلیل مشخص خواهد شد.
## ۲. کاربران سامانه
- **دانشجو:** ثبت گزارش خرابی و مشاهده و پیگیری گزارش‌های ثبت‌شده توسط خود.
- **استاد:** ثبت خرابی‌های مربوط به کلاس‌ها و آزمایشگاه‌ها و پیگیری وضعیت گزارش‌ها.
- **کارمند تأسیسات:** بررسی گزارش‌ها، تعیین اولویت، ارجاع درخواست‌ها و نظارت بر فرایند تعمیر.
- **تعمیرکار:** مشاهدهٔ درخواست‌های تخصیص‌یافته، انجام تعمیرات و ثبت نتیجهٔ اقدامات.
- **مدیر:** نظارت بر عملکرد کلی سامانه و مشاهدهٔ اطلاعات و گزارش‌های مدیریتی.
- **کاربر سیستم:** عنوان عمومی برای اشاره به کاربران دارای حساب کاربری و دسترسی به سامانه.
## ۳. نیازمندی‌های کارکردی (Functional Requirements)
### ۳.۱. مدیریت کاربران و دسترسی
- **FR-01 — ورود به سامانه:** سامانه باید امکان ورود کاربران از طریق نام کاربری و رمز عبور را فراهم کند.
- **FR-02 — کنترل دسترسی:** سامانه باید دسترسی کاربران به امکانات و اطلاعات را بر اساس نقش آن‌ها مدیریت کند.
### ۳.۲. ثبت و مدیریت گزارش خرابی
- **FR-03 — ثبت گزارش خرابی:** سامانه باید امکان ثبت گزارش شامل عنوان، توضیحات، محل خرابی و نوع تجهیز را برای دانشجویان و استادان فراهم کند.
- **FR-04 — افزودن اطلاعات تکمیلی:** گزارش‌دهنده باید بتواند تصویر یا توضیحات تکمیلی را به گزارش ثبت‌شده اضافه کند.
- **FR-05 — مشاهدهٔ گزارش:** گزارش‌دهنده باید بتواند گزارش‌های ثبت‌شده توسط خود و وضعیت فعلی آن‌ها را مشاهده کند.
### ۳.۳. بررسی و اولویت‌بندی گزارش‌ها
- **FR-06 — بررسی گزارش‌ها:** کارمند تأسیسات باید بتواند گزارش‌های ثبت‌شده را مشاهده و بررسی کند.
- **FR-07 — تعیین اولویت:** کارمند تأسیسات باید بتواند بر اساس اهمیت و فوریت خرابی، اولویت رسیدگی به هر گزارش را تعیین کند.
- **FR-08 — جست‌وجو و فیلتر گزارش‌ها:** کارمند تأسیسات باید بتواند گزارش‌ها را بر اساس وضعیت، اولویت و سایر مشخصات مرتبط جست‌وجو و فیلتر کند.
### ۳.۴. ارجاع و مدیریت فرایند تعمیر
- **FR-09 — ارجاع به تعمیرکار:** کارمند تأسیسات باید بتواند هر گزارش را به تعمیرکار مناسب تخصیص دهد.
- **FR-10 — مشاهدهٔ درخواست‌های تخصیص‌یافته:** تعمیرکار باید بتواند فهرست درخواست‌های ارجاع‌شده به خود را مشاهده کند.
- **FR-11 — به‌روزرسانی وضعیت درخواست:** افراد مجاز باید بتوانند وضعیت درخواست را متناسب با مرحلهٔ رسیدگی به‌روزرسانی کنند.
- **FR-12 — ثبت نتیجهٔ تعمیر:** تعمیرکار باید بتواند نتیجهٔ بررسی و اقدامات انجام‌شده را همراه با توضیحات ثبت کند.
- **FR-13 — درخواست اطلاعات تکمیلی:** تعمیرکار باید بتواند در صورت نیاز، اطلاعات بیشتری از گزارش‌دهنده درخواست کند.
### ۳.۵. پیگیری و اطلاع‌رسانی
- **FR-14 — تأیید نتیجهٔ تعمیر:** گزارش‌دهنده باید بتواند پس از اعلام رفع خرابی، نتیجهٔ تعمیر را تأیید یا رد کند.
- **FR-15 — اطلاع‌رسانی تغییر وضعیت:** سامانه باید امکان ارسال اعلان به کاربران مرتبط هنگام تغییر وضعیت گزارش را فراهم کند.
- **FR-16 — مشاهدهٔ سوابق:** کاربران مجاز باید بتوانند سوابق گزارش‌ها و اقدامات انجام‌شده را متناسب با سطح دسترسی خود مشاهده کنند.
### ۳.۶. مدیریت و نظارت
- **FR-17 — داشبورد مدیریتی:** سامانه باید امکان مشاهدهٔ اطلاعات کلی مانند تعداد گزارش‌های ثبت‌شده، گزارش‌های باز و درخواست‌های فوری را برای مدیر و کارمندان تأسیسات فراهم کند.
## ۴. نیازمندی‌های غیرکارکردی (Non-functional Requirements)
### ۴.۱. امنیت و کنترل دسترسی
- **NFR-01 — امنیت اطلاعات:** سامانه باید از دسترسی غیرمجاز، افشای اطلاعات و تغییرات غیرمجاز در داده‌ها جلوگیری کند.
- **NFR-02 — حفظ حریم خصوصی:** اطلاعات کاربران و گزارش‌ها باید متناسب با سطح دسترسی هر نقش در اختیار افراد قرار گیرد.
### ۴.۲. سهولت استفاده
- **NFR-03 — کاربردپذیری:** رابط کاربری و فرم‌های ثبت و پیگیری گزارش باید ساده، قابل فهم و متناسب با نیاز کاربران طراحی شوند.
### ۴.۳. کارایی و عملکرد
- **NFR-04 — زمان پاسخ‌گویی:** عملیات معمول سامانه، مانند ثبت گزارش و مشاهدهٔ وضعیت، باید در زمان قابل قبول انجام شوند.
### ۴.۴. قابلیت اطمینان
- **NFR-05 — صحت و نگهداری اطلاعات:** سامانه باید اطلاعات ثبت‌شده را به‌درستی نگهداری کند و از حذف یا تغییر ناخواستهٔ آن‌ها جلوگیری کند.
### ۴.۵. قابلیت نگهداری و توسعه
- **NFR-06 — قابلیت نگهداری:** ساختار سامانه باید امکان اصلاح، نگهداری و افزودن قابلیت‌های جدید را در آینده فراهم کند.
## ۵. نکات و کارهای باقی‌مانده
- این نیازمندی‌ها نسخهٔ اولیه هستند و ممکن است در مراحل بعدی تحلیل و بازبینی تغییر کنند یا نیازمندی‌های جدیدی به آن‌ها اضافه شود.
- محدودهٔ دقیق فضاهای تحت پوشش سامانه، از جمله خوابگاه‌ها و فضاهای اداری، هنوز مشخص نشده است.
- معیارهای دقیق اولویت‌بندی خرابی‌ها و نحوهٔ تشخیص درخواست‌های فوری باید تعیین شوند.
- روش اطلاع‌رسانی به کاربران، مانند اعلان داخل سامانه، پیامک یا ایمیل، هنوز مشخص نشده است.
- جزئیات سطح دسترسی هر نقش و شرایط بسته‌شدن نهایی درخواست‌ها باید در مراحل بعدی مشخص شوند.
- نیازمندی‌های تعریف‌شده باید با داستان‌های کاربر (User Stories) و سایر مستندات پروژه تطبیق داده شوند.
---
**وضعیت سند:** نسخهٔ اولیه (Draft) – آمادهٔ بازبینی
+131
View File
@@ -0,0 +1,131 @@
# داستان‌های کاربر (User Stories) – سامانه مدیریت و گزارش خرابی دانشگاهی
**تهیه‌کننده:** امیرحسن عارف اصل
**بازبین:** ارشیا همتی‌زاده
**آخرین به‌روزرسانی:** ۱۴۰۴/۰۸/۰۴
---
## مقدمه
در این سند، نیازمندی‌های اصلی سامانه به صورت **داستان کاربر (User Story)** نوشته شده‌اند.
هر داستان کاربر از دیدگاه یک نقش مشخص بیان می‌شود و هدف آن را نیز مشخص می‌کند.
قالب استاندارد:
> به عنوان یک **<نقش>**
> می‌خواهم **<هدف>**
> تا بتوانم **<مزیت / نتیجه>**
---
## داستان‌های کاربر مرتبط با گزارش‌دهنده (دانشجو / استاد)
### US-01
به عنوان یک **دانشجو**
می‌خواهم **خرابی مشاهده‌شده را به همراه مکان و توضیحات ثبت کنم**
تا بتوانم **مشکل را سریع به بخش تأسیسات اطلاع دهم و پیگیری کنم**.
### US-02
به عنوان یک **استاد**
می‌خواهم **خرابی کلاس یا آزمایشگاه را ثبت کنم**
تا بتوانم **بدون اتلاف وقت، مشکل را به مسئولان مربوطه اعلام کنم**.
### US-03
به عنوان یک **دانشجو یا استاد**
می‌خواهم **وضعیت گزارش‌هایی که خودم ثبت کرده‌ام را مشاهده کنم**
تا بتوانم **از پیشرفت رسیدگی به گزارشم مطلع شوم**.
### US-04
به عنوان یک **دانشجو یا استاد**
می‌خواهم **تصویر یا توضیح بیشتری به گزارش قبلی اضافه کنم**
تا بتوانم **اطلاعات کامل‌تری در اختیار تعمیرکار قرار دهم**.
### US-05
به عنوان یک **دانشجو یا استاد**
می‌خواهم **پس از اعلام رفع خرابی، آن را تأیید یا رد کنم**
تا بتوانم **از بسته شدن صحیح گزارش مطمئن شوم**.
---
## داستان‌های کاربر مرتبط با کارمند تأسیسات
### US-06
به عنوان یک **کارمند تأسیسات**
می‌خواهم **لیست تمام گزارش‌های باز را مشاهده و فیلتر کنم**
تا بتوانم **گزارش‌های مهم و فوری را سریع‌تر پیدا کنم**.
### US-07
به عنوان یک **کارمند تأسیسات**
می‌خواهم **اولویت هر گزارش را تعیین کنم**
تا بتوانم **تعمیرات را بر اساس اهمیت و فوریت مدیریت کنم**.
### US-08
به عنوان یک **کارمند تأسیسات**
می‌خواهم **یک گزارش را به تعمیرکار مناسب تخصیص دهم**
تا بتوانم **کار را به فرد درست ارجاع دهم و پیگیری کنم**.
### US-09
به عنوان یک **کارمند تأسیسات**
می‌خواهم **وضعیت گزارش را تغییر دهم**
تا بتوانم **وضعیت واقعی رسیدگی به هر گزارش را در سیستم منعکس کنم**.
### US-10
به عنوان یک **کارمند تأسیسات**
می‌خواهم **تاریخچه کامل اقدامات انجام‌شده روی یک گزارش را ببینم**
تا بتوانم **روند رسیدگی را بررسی و در صورت نیاز پیگیری کنم**.
---
## داستان‌های کاربر مرتبط با تعمیرکار
### US-11
به عنوان یک **تعمیرکار**
می‌خواهم **لیست کارهای تخصیص‌یافته به خودم را ببینم**
تا بتوانم **بدانم چه کارهایی در انتظار انجام است**.
### US-12
به عنوان یک **تعمیرکار**
می‌خواهم **شروع کار روی یک گزارش را اعلام کنم**
تا بتوانم **وضعیت گزارش را به «در حال تعمیر» تغییر دهم**.
### US-13
به عنوان یک **تعمیرکار**
می‌خواهم **نتیجه تعمیر را همراه با توضیحات ثبت کنم**
تا بتوانم **گزارش را به مرحله بعدی (تأیید یا پیگیری) برسانم**.
### US-14
به عنوان یک **تعمیرکار**
می‌خواهم **در صورت نیاز، اطلاعات بیشتری از گزارش‌دهنده درخواست کنم**
تا بتوانم **تعمیر را با اطلاعات کامل‌تری انجام دهم**.
---
## داستان‌های کاربر مشترک / سیستمی
### US-15
به عنوان یک **کاربر سیستم**
می‌خواهم **با نام کاربری و رمز عبور وارد سامانه شوم**
تا بتوانم **به امکانات مربوط به نقش خودم دسترسی داشته باشم**.
### US-16
به عنوان یک **کاربر سیستم**
می‌خواهم **هنگام تغییر وضعیت گزارش مرتبط با خودم، اعلان دریافت کنم**
تا بتوانم **از آخرین وضعیت مطلع شوم**.
### US-17
به عنوان یک **کارمند تأسیسات یا مدیر**
می‌خواهم **داشبورد خلاصه‌ای از تعداد گزارش‌های باز و فوری ببینم**
تا بتوانم **وضعیت کلی خرابی‌ها را سریع ارزیابی کنم**.
---
## نکات و کارهای باقی‌مانده
- این داستان‌ها نسخه اولیه هستند و ممکن است در بازبینی تغییر کنند یا داستان‌های جدید اضافه شود.
- جزئیات پذیرش (Acceptance Criteria) برای داستان‌های مهم‌تر در مراحل بعدی نوشته خواهد شد.
- ابهام دامنه (آیا خوابگاه‌ها و فضاهای اداری هم شامل می‌شوند؟) هنوز وجود دارد و روی برخی داستان‌ها تأثیر می‌گذارد.
---
**وضعیت سند:** نسخه اولیه (Draft) – آماده بازبینی