Compare commits

..

No commits in common. "master" and "v2.0.6" have entirely different histories.

13 changed files with 199 additions and 712 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

View File

@ -1,36 +1,34 @@
% English Book Reference: Official Git Documentation
@book{chacon2014pro,
author = {Chacon, Scott and Straub, Ben},
title = {Pro Git: Everything you need to know about Git},
publisher = {Apress},
year = {2014},
url = {https://git-scm.com/book/en/v2},
keywords = {english}
@book{smith2023,
author = {Smith, John},
title = {Modern Software Architecture},
publisher = {Tech Press},
year = {2023},
keywords = {english}
}
% English Online Reference: XePersian Package for XeLaTeX
@online{khalighi2024xepersian,
author = {Khalighi, Vafa and Esfahbod, Behdad},
title = {The XePersian Package: Persian for LaTeX},
year = {2024},
url = {https://ctan.org/pkg/xepersian},
keywords = {english}
@article{doe2024,
author = {Doe, Jane and Roe, Richard},
title = {Optimizing CI/CD pipelines in cloud environments},
journal = {Journal of Cloud Computing},
volume = {12},
number = {3},
pages = {45--60},
year = {2024},
keywords = {english}
}
% English Online Reference: Docker Documentation
@online{docker2026,
author = {{Docker Inc.}},
title = {Docker Containerization Documentation},
year = {2026},
url = {https://docs.docker.com/},
keywords = {english}
}
% Persian Reference: Organization Guidelines
@book{amirkabir_park_1405,
author = {تیم فنی پارک علم و فناوری امیرکبیر},
title = {راهنمای جامع مستندسازی، استقرار نرم‌افزار و گردش‌کار تیم‌ها},
publisher = {انتشارات پارک امیرکبیر},
year = {1405},
@book{test_persian,
author = {نام نویسنده},
title = {عنوان کتاب فارسی},
publisher = {انتشارات دانشگاه},
year = {1403},
keywords = {persian}
}
@online{django2024,
author = {{Django Software Foundation}},
title = {Django 5.0 Documentation},
year = {2024},
url = {https://docs.djangoproject.com/en/5.0/},
keywords = {english}
}

View File

@ -1,17 +1,16 @@
% Config/00_config.tex
% =================================================================
% Document Settings (Team members should only edit this file)
% تنظیمات سند (کاربران تیم فقط این فایل را ویرایش کنند)
% =================================================================
% -----------------------------------------------------------------
% 1. Main Document Information (Most frequent changes)
% ۱. اطلاعات اصلی سند (بیشترین میزان تغییر)
% -----------------------------------------------------------------
\newcommand{\DocTitle}{مستندات پارک امیرکبیر و راهنمای گردش‌کار تیم‌ها}
\newcommand{\DocHeaderTitle}{راهنمای مستندات و گردش‌کار}
\newcommand{\DocSubtitle}{رویه‌های عملیاتی استاندارد برای تیم‌های توسعه و تحقیق‌وتوسعه}
\newcommand{\DocVersion}{1.0.0}
\newcommand{\DocID}{\lr{[DOC-PARK-01]}}
\newcommand{\DocDate}{\today} % You can write a manual date like: 1403/08/02
\newcommand{\DocTitle}{عنوان اصلی و کامل برای مستندات پروژه}
\newcommand{\DocHeaderTitle}{عنوان کوتاه مستند}
\newcommand{\DocSubtitle}{توضیحات کوتاه یا زیرعنوان مستند}
\newcommand{\DocVersion}{2.0.0}
\newcommand{\DocID}{\lr{[DOC-PRJ-01]}}
\newcommand{\DocDate}{\today} % می‌توانید تاریخ دستی بنویسید مثل: 1403/08/02
\renewcommand{\labelitemi}{$\bullet$}
\renewcommand{\labelitemii}{$\circ$}
@ -19,32 +18,32 @@
\renewcommand{\labelitemiv}{$\cdot$}
% -----------------------------------------------------------------
% 2. Status and Confidentiality Level
% ۲. وضعیت و سطح محرمانگی
% -----------------------------------------------------------------
% Choose one of these variables for the confidentiality level:
% برای سطح محرمانگی یکی از این متغیرها را انتخاب کنید:
% \ConfPublic , \ConfInternal , \ConfSecret , \ConfTopSecret
\newcommand{\DocSecret}{\ConfInternal}
% Choose one of these variables for the document status:
% برای وضعیت سند یکی از این متغیرها را انتخاب کنید:
% \StatusDraft , \StatusReview , \StatusApproved , \StatusArchived
\newcommand{\DocStatus}{\StatusApproved}
\newcommand{\DocStatus}{\StatusDraft}
% -----------------------------------------------------------------
% 3. Authors and Organization (Moderate changes)
% ۳. تهیه‌کنندگان و سازمان (تغییرات متوسط)
% -----------------------------------------------------------------
\newcommand{\DocAuthor}{Masterous}
\DefaultAuthortrue % If true, Science and Technology Park name is printed; if false, the names above
\MultiAuthorfalse % If true, prints "Authors" (plural); if false, "Author" (singular)
\newcommand{\DocAuthor}{نام شخص اول \newline نام شخص دوم \newline نام شخص سوم}
\DefaultAuthortrue % اگر true باشد نام پارک علم و فناوری چاپ می‌شود، اگر false باشد نام‌های بالا
\MultiAuthorfalse % اگر true باشد می‌نویسد "تهیه‌کنندگان"، اگر false باشد "تهیه‌کننده"
% -----------------------------------------------------------------
% 4. Appearance Settings (Least frequent changes)
% ۴. تنظیمات ظاهری (کمترین میزان تغییر)
% -----------------------------------------------------------------
\ModernShapestrue % Display geometric shapes in page corners (true or false)
\SeparateCovertrue % Cover on a separate page (true) or attached to the text (false)
\ModernShapestrue % نمایش شکل‌های هندسی در گوشه صفحات (true یا false)
\SeparateCovertrue % کاور در صفحه مجزا (true) یا چسبیده به متن (false)
% -----------------------------------------------------------------
% 5. Document Structure Settings (Show or hide sections)
% ۵. تنظیمات ساختار سند (نمایش یا عدم نمایش بخش‌ها)
% -----------------------------------------------------------------
\newif\ifHasAppendices \HasAppendicestrue % true to show appendices
\newif\ifHasGlossary \HasGlossarytrue % true to show glossary
\newif\ifHasReferences \HasReferencestrue % true to show references
\newif\ifHasAppendices \HasAppendicestrue % true برای نمایش پیوست‌ها
\newif\ifHasGlossary \HasGlossarytrue % true برای نمایش واژه‌نامه
\newif\ifHasReferences \HasReferencestrue % true برای نمایش مراجع

View File

@ -1,6 +1,6 @@
% Config/00_minutes_config.tex
% =================================================================
% Meeting minutes form variable settings
% تنظیمات متغیرهای فرم صورتجلسه
% =================================================================
\newcommand{\MinutesDate}{۱۴۰۵/۳/۱۳}
@ -13,9 +13,9 @@
\newcommand{\MinutesChair}{دکتر سید مسعود قریشی}
\newcommand{\MinutesSecretary}{مهندس علی بدیعی}
% Allocating chair and secretary to the attendees list based on gender
% تخصیص رئیس و دبیر به لیست حاضرین بر اساس جنسیت
\newcommand{\MinutesExtraMen}{\MinutesChair ؛ \MinutesSecretary}
\newcommand{\MinutesExtraWomen}{-} % If necessary, move the above variables here
\newcommand{\MinutesExtraWomen}{-} % در صورت نیاز متغیرهای بالا را به اینجا منتقل کنید
\newcommand{\MinutesPresentMen}{فراس مراد؛ متین توکلی؛ رضا اسفندیاری؛ امیرمهدی کرمی؛ سید محمد سجادی؛ سام قربانی}
\newcommand{\MinutesPresentWomen}{اعظم باغستانی؛ فاطمه طاهری} % Leave empty or use '-' if no women are present
@ -30,40 +30,22 @@
}
% =================================================================
% Team Settings (Smart title and icon allocation system)
% تنظیمات تیم (برای تغییر تیم، خطوط مربوطه را از کامنت خارج کنید)
% =================================================================
% Select one of the following values as the team:
% Club : Innovation Club team
% TT : Technical team
% RD : Research and Development team
% TT-RD : Joint Technical and R&D meeting
\newcommand{\MinutesTeam}{TT}
% --- 1. تیم باشگاه نوآوری (Club) ---
% \newcommand{\MinutesGroupTitle}{جلسه هفتگی دستیاران نوآوری \\ \textbf{تیم باشگاه نوآوری \lr{(Club)}}}
% \renewcommand{\FirstPageIcon}{\faProjectDiagram}
% --- System logic (No need to edit this section) ---
\def\teamClub{Club}
\def\teamTT{TT}
\def\teamRD{RD}
\def\teamTTRD{TT-RD}
% --- 2. تیم فنی (T&T) ---
\newcommand{\MinutesGroupTitle}{جلسه هفتگی دستیاران نوآوری \\ \textbf{تیم فنی \lr{(T\&T)}}}
\renewcommand{\FirstPageIcon}{\faCogs}
\ifx\MinutesTeam\teamClub
\newcommand{\MinutesGroupTitle}{جلسه هفتگی دستیاران نوآوری \\ \textbf{تیم باشگاه نوآوری \lr{(Club)}}}
\renewcommand{\FirstPageIcon}{\faProjectDiagram}
\else\ifx\MinutesTeam\teamTT
\newcommand{\MinutesGroupTitle}{جلسه هفتگی دستیاران نوآوری \\ \textbf{تیم فنی \lr{(T\&T)}}}
\renewcommand{\FirstPageIcon}{\faCogs}
\else\ifx\MinutesTeam\teamRD
\newcommand{\MinutesGroupTitle}{جلسه هفتگی دستیاران نوآوری \\ \textbf{تیم تحقیق و توسعه \lr{(R\&D)}}}
\renewcommand{\FirstPageIcon}{\faSearch}
\else\ifx\MinutesTeam\teamTTRD
\newcommand{\MinutesGroupTitle}{جلسه مشترک دستیاران نوآوری \\ \textbf{تیم‌های فنی و تحقیق‌وتوسعه}}
\renewcommand{\FirstPageIcon}{\faUsers}
\else
\newcommand{\MinutesGroupTitle}{جلسه دستیاران نوآوری \\ \textbf{\MinutesTeam}}
\renewcommand{\FirstPageIcon}{\faUsers}
\fi\fi\fi\fi
% --- 3. تیم تحقیق و توسعه (R&D) ---
% \newcommand{\MinutesGroupTitle}{جلسه هفتگی دستیاران نوآوری \\ \textbf{تیم تحقیق و توسعه \lr{(R\&D)}}}
% \renewcommand{\FirstPageIcon}{\faSearch}
\newcommand{\MinutesTeamLogo}{team_logo.png}
% --- Appearance settings ---
\ModernShapestrue % Enable geometric shapes and icons
% --- تنظیمات ظاهری ---
\ModernShapestrue % فعال‌سازی شکل‌های هندسی و آیکون‌ها

View File

@ -1,549 +1,55 @@
\newpage
\section*{مستندات پارک امیرکبیر و راهنمای گردش‌کار تیم‌ها}
\section*{مقدمه و هدف}
\phantomsection
\addcontentsline{toc}{section}{مستندات پارک امیرکبیر و راهنمای گردش‌کار تیم‌ها}
\addcontentsline{toc}{section}{مقدمه و هدف}
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد.
\textbf{هدف:} این مستند رویه‌های عملیاتی استاندارد را برای تنظیم گزارش‌های پروژه و صورتجلسات با استفاده از قالب رسمی \lr{\LaTeX} ما تعیین می‌کند. با توجه به تفاوت ماهیت کاری، این مستند به چهار فصلِ موارد مشترک، راهنمای تیم توسعه (\lr{Devs})، راهنمای تیم تحقیق‌وتوسعه (\lr{R\&D}) و راهنمای مدیران برای صورتجلسات تقسیم شده است.
هدف از تدوین این مستند، یکپارچه‌سازی فرآیندهای توسعه نرم‌افزار و تعیین استانداردهای اولیه است
کتابهای زیادی در شصت و سه درصد گذشته، حال و آینده شناخت فراوان جامعه و متخصصان را می طلبد \cite{smith2023, test_persian}.
% ==========================================
% Chapter 1: Common Items
% ==========================================
\newpage
\section*{فصل اول: موارد مشترک (تمامی تیم‌ها)}
\subsection*{پیش‌نیازهای سیستم}
\phantomsection
\addcontentsline{toc}{subsection}{فصل اول: موارد مشترک (تمامی تیم‌ها)}
\addcontentsline{toc}{subsection}{پیش‌نیازهای سیستم}
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است. این بخش برای تست طولانی‌تر شدن محتوا و نمایش زیربخش‌ها در فهرست مطالب ایجاد شده است.
موارد این فصل برای تمامی خروجی‌های تیم‌ها الزامی است تا استاندارد یکپارچه سازمان حفظ شود.
\section*{معماری و ساختار فنی}
\phantomsection
\addcontentsline{toc}{section}{معماری و ساختار فنی}
\vspace{0.3cm}
\begin{ScoreBox}
\textbf{نحوه ورود به سیستم ابری:}
در حال حاضر امکان ثبت‌نام مستقیم یا دریافت ایمیل فعال‌سازی وجود ندارد. اکانت شما از پیش در سامانه ایجاد شده است؛ بنابراین لطفاً مستقیماً به پیوست انتهای همین سند (لیست حساب‌های کاربری) مراجعه کرده و روی لینک اختصاصی خود کلیک کنید. پس از تعیین رمز عبور جدید، می‌توانید وارد حساب خود شوید.
\end{ScoreBox}
\vspace{0.3cm}
\subsection*{۱. تنظیمات کامپایلر (الزامی)}
شما \textbf{باید} از \lr{XeLaTeX} به عنوان کامپایلر استفاده کنید. مسیر تغییر کامپایلر در پلتفرم داخلی ما (\lr{latex.amirkabirpark.ir}) (و سایت \lr{overleaf.com}) به شکل زیر است:
\begin{latin}
\textbf{File > Settings > Compiler > Compiler > XeLaTeX}
\end{latin}
\begin{figure}[h!]
\centering
\includegraphics[width=1.0\textwidth]{XeLaTex.png}
\caption{اسکرین‌شات از منوی سمت چپ سیستم ابری که تنظیمات کامپایلر \lr{XeLaTeX} را نشان می‌دهد.}
\label{fig:xelatex_settings}
\end{figure}
\subsection*{۲. ساختار فایل‌ها: مجاز و غیرمجاز}
برای درک بهتر محل قرارگیری فایل‌ها، ساختار درختی پروژه به شکل زیر است:
\begin{latin}
\begin{lstlisting}[language=bash, numbers=none, escapeinside={(*}{*)}]
Project_Root/
├── Assets/
│ ├── Font/
│ ├── Image/ <-- (*\rl{محل قرارگیری تصاویر شما}*)
│ └── references.bib
├── Config/
│ ├── 00_config.tex
│ └── 00_minutes_config.tex
├── Content/ <-- (*\rl{محل نوشتن متن گزارش}*)
│ ├── 01_project_content.tex
│ ├── 02_appendices.tex
│ └── 03_glossary.tex
├── Minutes_Content/
│ └── 01_minutes_content.tex
├── System/
├── latexmkrc
├── main.tex
└── minutes_main.tex
\end{lstlisting}
\end{latin}
\vspace{0.2cm}
\noindent\textbf{\textcolor{green!70!black}{\faCheckCircle}\ فایل‌های مجاز برای ویرایش (محتوا):}
\subsection*{ساختار کلی سیستم}
\phantomsection
\addcontentsline{toc}{subsection}{ساختار کلی سیستم}
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ است. در این بخش، معماری کلی به شکل زیر تقسیم‌بندی می‌شود:
\begin{itemize}
\item \lr{Config/00\_config.tex}: تنظیم عنوان و مشخصات سند اصلی.
\item \lr{Config/00\_minutes\_config.tex}: تنظیم مشخصات صورتجلسات.
\item \lr{Content/}: نگارش متن اصلی گزارش‌ها در این پوشه.
\item \lr{Minutes\_Content/}: نگارش متن مصوبات جلسات.
\item \lr{Assets/Image/}: قرار دادن تصاویر اختصاصی پروژه صرفاً در این پوشه.
\item \lr{Assets/references.bib}: درج ارجاعات منابع.
\item \textbf{توسعه بک‌اند:} لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم (به عنوان مثال پیاده‌سازی مدل‌ها در \lr{Django} و توسعه \lr{API}ها \cite{django2024}).
\item \textbf{توسعه فرانت‌اند:} چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است.
\item \textbf{زیرساخت و استقرار (\lr{DevOps}):} مدیریت سرورهای \lr{VPS}، پیکربندی پراکسی‌ها و راه‌اندازی فرآیند \lr{CI/CD}.
\end{itemize}
\vspace{0.2cm}
\noindent\textbf{\textcolor{red}{\faBan}\ فایل‌های غیرمجاز (سیستم و هسته):}
متغیرهای کلیدی سیستم جهت استانداردسازی به شرح زیر تعریف می‌شوند:
\begin{itemize}
\item \textbf{فونت‌ها و لوگوها:} فونت‌های پوشه \lr{Assets/Font} و آیکون \lr{logo.png}.
\item \textbf{موتور قالب‌دهی:} \lr{System/team\_template.sty} و \lr{System/minutes\_team\_template.tex}.
\item \textbf{مدیریت پروژه و گیت:} پوشه‌های پنهان \lr{.gitea} و \lr{.github}.
\item \textbf{فایل‌های ریشه و کامپایل:} \lr{latexmkrc}، \lr{main.tex} و \lr{minutes\_main.tex}.
\item متغیر اول سیستم: $\boldsymbol{X}$
\item متغیر دوم محاسباتی: $\boldsymbol{Y_i}$ (به \textcolor{primary}{\textbf{پیوست ۱: جدول ساختار داده‌ها}} مراجعه شود).
\item خروجی نهایی پردازش: $\boldsymbol{Z_{total}}$
\end{itemize}
\subsection*{۳. متغیرهای پیکربندی گزارش اصلی (\lr{00\_config.tex})}
تمامی تنظیمات کلی گزارش شما در فایل \lr{00\_config.tex} قرار دارد. متغیرهای زیر را بر اساس پروژه خود تغییر دهید:
\vspace{0.2cm}
\textbf{الف) اطلاعات پایه:}
\begin{itemize}
\item \lr{\textbackslash DocTitle}: عنوان اصلی سند. \\ \textcolor{gray}{\textbf{مثال:} \lr{\textbackslash newcommand\{\textbackslash DocTitle\}\{\rl{معماری بک‌اند پلتفرم بازی‌وارسازی}\}}}
\item \lr{\textbackslash DocHeaderTitle}: عنوان کوتاه برای هدر صفحات. \\ \textcolor{gray}{\textbf{مثال:} \lr{\textbackslash newcommand\{\textbackslash DocHeaderTitle\}\{\rl{مستند معماری بک‌اند}\}}}
\item \lr{\textbackslash DocSubtitle}: زیرعنوان یا توضیحات کوتاه سند. \\ \textcolor{gray}{\textbf{مثال:} \lr{\textbackslash newcommand\{\textbackslash DocSubtitle\}\{\rl{توسعه سمت سرور با فریم‌ورک جنگو}\}}}
\item \lr{\textbackslash DocVersion}: نسخه فعلی مستند. \\ \textcolor{gray}{\textbf{مثال:} \lr{\textbackslash newcommand\{\textbackslash DocVersion\}\{2.0.0\}}}
\item \lr{\textbackslash DocID}: شماره شناسه سند. \\ \textcolor{gray}{\textbf{مثال:} \lr{\textbackslash newcommand\{\textbackslash DocID\}\{\textbackslash lr\{[DOC-PRJ-01]\}\}}}
\item \lr{\textbackslash DocDate}: تاریخ تدوین. \\ \textcolor{gray}{\textbf{مثال:} \lr{\textbackslash newcommand\{\textbackslash DocDate\}\{\textbackslash today\}} \rl{یا} \lr{\textbackslash newcommand\{\textbackslash DocDate\}\{\rl{۱۴۰۵/۰۳/۲۰}\}}}
\end{itemize}
\textbf{ب) وضعیت و سطح محرمانگی:}
\begin{itemize}
\item \lr{\textbackslash DocSecret}: سطح محرمانگی سند. یکی از گزینه‌های زیر را انتخاب کنید:
\\ \lr{\textbackslash ConfPublic} (عمومی)، \lr{\textbackslash ConfInternal} (داخلی)، \lr{\textbackslash ConfSecret} (محرمانه)، \lr{\textbackslash ConfTopSecret} (بسیار محرمانه)
\\ \textcolor{gray}{\textbf{مثال:} \lr{\textbackslash newcommand\{\textbackslash DocSecret\}\{\textbackslash ConfInternal\}}}
\item \lr{\textbackslash DocStatus}: وضعیت فعلی مستند. یکی از گزینه‌های زیر را انتخاب کنید:
\\ \lr{\textbackslash StatusDraft} (پیشنویس)، \lr{\textbackslash StatusReview} (در حال بررسی)، \lr{\textbackslash StatusApproved} (مصوب و اجرایی)، \lr{\textbackslash StatusArchived} (آرشیو شده)
\\ \textcolor{gray}{\textbf{مثال:} \lr{\textbackslash newcommand\{\textbackslash DocStatus\}\{\textbackslash StatusApproved\}}}
\end{itemize}
\textbf{ج) تهیه‌کنندگان و سازمان:}
\begin{itemize}
\item \lr{\textbackslash DocAuthor}: نام نویسندگان. (برای رفتن به خط بعد از \lr{\textbackslash newline} استفاده کنید).
\\ \textcolor{gray}{\textbf{مثال:} \lr{\textbackslash newcommand\{\textbackslash DocAuthor\}\{\rl{علی بدیعی \lr{\textbackslash newline} مسعود قریشی}\}}}
\item \lr{\textbackslash DefaultAuthor}: با مقدار \lr{true} نام پارک علم و فناوری چاپ می‌شود و با مقدار \lr{false} نام نویسندگان.
\\ \textcolor{gray}{\textbf{مثال:} \lr{\textbackslash DefaultAuthortrue}}
\item \lr{\textbackslash MultiAuthor}: با مقدار \lr{true} عبارت «تهیه‌کنندگان» و با مقدار \lr{false} عبارت «تهیه‌کننده» چاپ می‌شود.
\\ \textcolor{gray}{\textbf{مثال:} \lr{\textbackslash MultiAuthorfalse}}
\end{itemize}
\textbf{د) تنظیمات ظاهری و ساختار سند:}
\begin{itemize}
\item \lr{\textbackslash ModernShapes}: با مقدار \lr{true} شکل‌های هندسی و گرافیکی در صفحات چاپ می‌شوند.
\\ \textcolor{gray}{\textbf{مثال:} \lr{\textbackslash ModernShapestrue}}
\item \lr{\textbackslash SeparateCover}: با مقدار \lr{true} کاور در یک صفحه مجزا چاپ می‌شود.
\\ \textcolor{gray}{\textbf{مثال:} \lr{\textbackslash SeparateCoverfalse}}
\item متغیرهای \lr{\textbackslash HasAppendices}، \lr{\textbackslash HasGlossary} و \lr{\textbackslash HasReferences}: با تنظیم روی \lr{true} یا \lr{false} می‌توانید بخش‌های پیوست، واژه‌نامه و مراجع را در انتهای سند نمایش داده یا پنهان کنید.
\\ \textcolor{gray}{\textbf{مثال:} \lr{\textbackslash HasGlossarytrue}}
\end{itemize}
\subsection*{۴. راهنمای درج محتوای غنی (\lr{Rich Content})}
\textbf{الف) جعبه‌های متنی اختصاصی (\lr{ScoreBox}):}
کد ورودی:
\begin{latin}
\begin{lstlisting}[language=TeX, escapeinside={(*}{*)}]
\begin{ScoreBox}
\textbf{(*\rl{امتیاز کلی:}*)} (*\rl{متوسط رو به خوب؛ مناسب برنامه‌های درون‌سازمانی.}*)
\end{ScoreBox}
\end{lstlisting}
\end{latin}
\textbf{نتیجه ظاهری:}
\begin{ScoreBox}
\textbf{امتیاز کلی:} متوسط رو به خوب؛ مناسب برنامه‌های درون‌سازمانی.
\end{ScoreBox}
\textbf{ب) درج قطعه کد (\lr{Code Snippets}):}
کد ورودی:
\begin{latin}
\begin{lstlisting}[language=TeX]
\begin{LTR}
\begin{lstlisting}[language=Python]
def check_user_permission(user_id, role):
return True # Must be in LTR environment
\end{LTR}
\end{lstlisting}
\end{latin}
\textbf{نتیجه ظاهری:}
\begin{LTR}
\begin{lstlisting}[language=Python]
def check_user_permission(user_id, role):
return True
\end{lstlisting}
\end{LTR}
\textbf{ج) جدول ساختاریافته (الگوی استاندارد):}
از جدول‌های نوع \lr{longtable} استفاده کنید تا در صورت طولانی شدن، هدر جدول به صورت خودکار در صفحه بعد تکرار شود.
\textbf{کد ورودی:} \\
\noindent\begin{minipage}{\textwidth}
\begin{latin}
\begin{lstlisting}[language=TeX, escapeinside={(*}{*)}]
\begin{center}
\begin{longtable}{|>{\centering\arraybackslash}p{0.1\textwidth}|p{0.6\textwidth}|>{\centering\arraybackslash}p{0.2\textwidth}|}
\caption{(*\rl{لیست وظایف پروژه و وضعیت آن‌ها}*)} \\
\hline
\rowcolor{tablehead}
\textbf{ID} & \textbf{Task Title} & \textbf{Status} \\
\hline
\endfirsthead
\hline
1 & Database Structure Review & Done \\
\hline
(*\rl{۲}*) & (*\rl{توسعه \lr{API} کاربران}*) & (*\rl{در حال انجام}*) \\
\hline
\end{longtable}
\end{center}
\end{lstlisting}
\end{latin}
\end{minipage}
\textbf{نتیجه ظاهری:}
\begin{center}
\begin{longtable}{|>{\centering\arraybackslash}p{0.1\textwidth}|p{0.6\textwidth}|>{\centering\arraybackslash}p{0.2\textwidth}|}
\caption{\rl{لیست وظایف پروژه و وضعیت آن‌ها}} \\
\hline
\rowcolor{tablehead}
\lr{\textbf{ID}} & \lr{\textbf{Task Title}} & \lr{\textbf{Status}} \\
\hline
\endfirsthead
\hline
\lr{1} & \lr{Database Structure Review} & \lr{Done} \\
\hline
۲ & توسعه \lr{API} کاربران & در حال انجام \\
\hline
\end{longtable}
\end{center}
\textbf{د) باکس نقل قول (\lr{QuoteBox}):}
کد ورودی:
\begin{latin}
\begin{lstlisting}[language=TeX, escapeinside={(*}{*)}]
\begin{QuoteBox}
(*\rl{طراحی خوب یعنی حذف جزئیات غیرضروری تا زمانی که تنها هسته اصلی و ارزشمند باقی بماند.}*)
(*\rl{ما این نقل‌قول را برای جلب توجه بیشتر به این شکل طراحی کرده‌ایم.}*)
\end{QuoteBox}
\end{lstlisting}
\end{latin}
\textbf{نتیجه ظاهری:}
\begin{QuoteBox}
طراحی خوب یعنی حذف جزئیات غیرضروری تا زمانی که تنها هسته اصلی و ارزشمند باقی بماند.
ما این نقل‌قول را برای جلب توجه بیشتر به این شکل طراحی کرده‌ایم.
\end{QuoteBox}
\textbf{هـ) معادلات ریاضی (\lr{Math Equations}):}
کد ورودی:
\begin{latin}
\begin{lstlisting}[language=TeX, escapeinside={(*}{*)}]
\textbf{(*\rl{معادلات نمونه:}*)} \\
(*\rl{فرمول محاسبه خروجی بر اساس ورودی‌های سیستم:}*)
\[ \boldsymbol{Z_{total} = \sum_{i=1}^{n} (X \times Y_i)} \]
(*\rl{درصد بهره‌وری یا توزیع بار در سرور:}*)
\[ \boldsymbol{P_n = \frac{Y_n}{Z_{total}}} \]
\end{lstlisting}
\end{latin}
\textbf{نتیجه ظاهری:} \\
\textbf{معادلات نمونه:} \\
فرمول محاسبه خروجی بر اساس ورودی‌های سیستم:
\[ \boldsymbol{Z_{total} = \sum_{i=1}^{n} (X \times Y_i)} \]
درصد بهره‌وری یا توزیع بار در سرور:
\[ \boldsymbol{P_n = \frac{Y_n}{Z_{total}}} \]
\vspace{0.4cm}
\textbf{و) درج تصویر (\lr{Image}):}
ابتدا تصویر اختصاصی خود را در پوشه \lr{Assets/Image/} قرار دهید (آپلود کنید). سپس با استفاده از قطعه کد زیر، آن را در متن فراخوانی کنید:
کد ورودی:
\begin{latin}
\begin{lstlisting}[language=TeX, escapeinside={(*}{*)}]
\begin{figure}[h!]
\centering
% (*\rl{مسیر و نام فایل تصویر خود را در کروشه زیر قرار دهید}*)
\includegraphics[width=0.7\textwidth]{image.png}
\caption{(*\rl{توضیح زیر تصویر (کپشن) در اینجا نوشته می‌شود.}*)}
\label{fig:my_custom_image}
\end{figure}
\end{lstlisting}
\end{latin}
\textbf{نتیجه ظاهری:} \\
\begin{figure}[h!]
\centering
\includegraphics[width=0.7\textwidth]{image.png}
\caption{(*\rl{توضیح زیر تصویر (کپشن) در اینجا نوشته می‌شود.}*)}
\label{fig:my_custom_image}
\end{figure}
\vspace{0.4cm}
\textbf{ز) تصاویر چندتایی (\lr{Subfigure}):}
کد ورودی:
\begin{latin}
\begin{lstlisting}[language=TeX, escapeinside={(*}{*)}]
\begin{figure}[h!]
\centering
\begin{subfigure}[b]{0.45\textwidth}
\centering
\includegraphics[width=\textwidth]{image.png}
\caption{(*\rl{تصویر الف}*)}
\label{fig:sub1}
\end{subfigure}%
\hfill
\begin{subfigure}[b]{0.45\textwidth}
\centering
\includegraphics[width=\textwidth]{image.png}
\caption{(*\rl{تصویر ب}*)}
\label{fig:sub2}
\end{subfigure}
\caption{(*\rl{نمونه قرارگیری دو تصویر در کنار هم.}*)}
\label{fig:subfigures}
\end{figure}
\end{lstlisting}
\end{latin}
\textbf{نتیجه ظاهری:} \\
\begin{figure}[h!]
\centering
\begin{subfigure}[b]{0.45\textwidth}
\centering
\includegraphics[width=\textwidth]{image.png}
\caption{\rl{تصویر الف}}
\label{fig:sub1}
\end{subfigure}%
\hfill
\begin{subfigure}[b]{0.45\textwidth}
\centering
\includegraphics[width=\textwidth]{image.png}
\caption{\rl{تصویر ب}}
\label{fig:sub2}
\end{subfigure}
\caption{\rl{نمونه قرارگیری دو تصویر در کنار هم.}}
\label{fig:subfigures}
\end{figure}
% ==========================================
% Chapter 2: Development Team
% ==========================================
\clearpage
\section*{فصل دوم: اختصاصی تیم توسعه (\lr{T\&T})}
\phantomsection
\addcontentsline{toc}{subsection}{فصل دوم: اختصاصی تیم توسعه (\lr{Devs / T\&T})}
% نمونه استفاده از باکس امتیاز شبیه به عکس شما
این مسیر زمانی مناسب است که هدف اصلی شرکت، افزایش درگیری کارکنان و خانواده‌ها باشد و اولویت اصلی، وایرال شدن یا دیده شدن بیرونی نباشد.
\vspace{0.3cm}
\begin{ScoreBox}
\textbf{\large \textcolor{primary}{\faLaptopCode\ جریان‌کار تیم‌های توسعه}} \\
شما به عنوان برنامه‌نویس، مستندات نرم‌افزار را در کنار کدهای خود توسعه می‌دهید. می‌توانید از محیط محلی خود (\lr{Local}) یا سیستم ابری لاتک برای ویرایش استفاده کنید. در هر دو حالت، سورس فایل‌ها باید در پوشه \lr{docs/} مخزن پروژه‌ی اصلی قرار گیرد و خروجی \lr{PDF} مستقیماً برای مدیر تیم فنی (\lr{Head of T\&T}) ارسال گردد.
\textbf{امتیاز کلی:} متوسط رو به خوب؛ اما بیشتر مناسب برنامه‌های درون‌سازمانی است.
\end{ScoreBox}
\vspace{0.3cm}
\subsection*{۱. راه‌اندازی اولیه و ایجاد گزارش}
\begin{itemize}
\item \textbf{گام اول - دریافت قالب:} در پوشه ریشه پروژه نرم‌افزاری خود، می‌توانید مخزن مستندات را \lr{Clone} یا \lr{Pull} کنید، و یا فایل \lr{zip} قالب را دانلود کرده و در پروژه اکسترکت کنید. مسیر نهایی حتماً باید پوشه \lr{docs/} باشد:
\begin{latin}
\begin{lstlisting}[language=bash, numbers=none]
git clone ssh://git@ssh.git.amirkabirpark.ir:2222/bestmahdi2/Park__ReportTemplate.git docs
cd docs
\end{lstlisting}
\end{latin}
\vspace{0.2cm}
\textbf{مثال ساختار پوشه‌ها در یک پروژه واقعی (مانند جنگو و داکر):}
\begin{latin}
\begin{lstlisting}[language=bash, numbers=none, escapeinside={(*}{*)}]
My_Django_Project/
├── app/
├── core/
├── docker-compose.yml
├── Dockerfile
├── manage.py
├── requirements.txt
└── docs/ <-- (*\rl{محل قرارگیری مستندات لاتک}*)
├── Assets/
├── Content/
└── main.tex
\end{lstlisting}
\end{latin}
\item \textbf{گام دوم - کامپایل و خروجی:} شما کاملاً مختارید که به یکی از دو روش زیر فایل \lr{PDF} را بسازید:
\begin{itemize}
\item \textbf{روش اول (ابری):} فایل‌های پوشه \lr{docs/} را در سایت \lr{latex.amirkabirpark.ir} آپلود و خروجی بگیرید، سپس تغییرات فایل‌های \lr{.tex} را کپی کرده و در پروژه خود کامیت کنید.
\item \textbf{روش دوم (محلی):} با نصب بسته \lr{texlive-full} در لینوکس، مستقیماً دستور زیر را اجرا کنید:
\begin{latin}
\begin{lstlisting}[language=bash, numbers=none]
xelatex main.tex
\end{lstlisting}
\end{latin}
\end{itemize}
\end{itemize}
\subsection*{۲. قوانین \lr{.gitignore}}
فایل‌های موقت ساخته شده توسط لاتک حجم مخزن را اشغال می‌کنند. \textbf{حتماً} موارد زیر را به فایل \lr{.gitignore} پروژه اضافه کنید تا فایل‌های اضافی مثل \lr{.aux} و \lr{.log} روی سرور پوش نشوند:
\begin{latin}
\begin{lstlisting}[language=bash, numbers=none]
# LaTeX Build Files
*.aux
*.log
*.out
*.pdf
*.toc
*.bbl
*.blg
*.fls
*.fdb_latexmk
*.synctex.gz
*.xdv
\end{lstlisting}
\end{latin}
\subsection*{۳. تنظیمات پوش دوگانه (\lr{Dual-Push}) به گیتی و گیت‌هاب}
برای اینکه همزمان آپدیت‌های شما در سرور پارک (\lr{Gitea}) و مخزن اصلی بکاپ (\lr{GitHub}) قرار گیرد، از دستورات زیر استفاده کنید:
\begin{latin}
\begin{lstlisting}[language=bash, numbers=none]
# Rename current remote to prevent conflicts
git remote rename origin old-origin
# Add a unified remote named "all" pointing to both URLs
git remote add all ssh://git@ssh.git.amirkabirpark.ir:2222/bestmahdi2/your-repo.git
git remote set-url --add --push all ssh://git@ssh.git.amirkabirpark.ir:2222/bestmahdi2/your-repo.git
git remote set-url --add --push all https://github.com/bestmahdi2/your-repo.git
# Push to both remotes simultaneously:
git push all main
\end{lstlisting}
\end{latin}
\subsection*{۴. استراتژی مدیریت مخازن و نسخه‌گذاری کدها}
به منظور یکپارچگی، لطفاً موارد زیر را در فرآیند توسعه خود لحاظ کنید:
\begin{itemize}
\item \textbf{ثبت‌نام در گیت پارک:} لطفاً در سامانه \lr{\url{https://git.amirkabirpark.ir/}} ثبت‌نام کنید. پیشنهاد می‌شود دقیقاً از همان نام کاربری گیت‌هاب خود استفاده نمایید.
\item \textbf{به‌روزرسانی دوگانه مخازن:} مخازنی مشابه و با همان نام گیت‌هاب در این سامانه نیز ایجاد خواهند شد و همواره به صورت \textbf{خصوصی (\lr{Private})} باقی می‌مانند. شما موظف هستید تغییرات خود را روی هر دو ریموت آپدیت کنید.
\item \textbf{فعال‌سازی امکانات:} شما مجاز هستید قابلیت‌های \lr{Actions} و \lr{Releases} را برای مخازن خود فعال نمایید.
\item \textbf{مدیریت نسخه کدها:} هر پروژه باید فایلی برای نگهداری نسخه داشته باشد. به عنوان مثال، یک فایل \lr{\_\_version\_\_.py} با محتوای زیر ایجاد کنید:
\begin{latin}
\begin{lstlisting}[language=Python, numbers=none]
__version__ = "1.28.4"
\end{lstlisting}
\end{latin}
همچنین باید هر نسخه جدید را تگ (\lr{Tag}) زده و به ریموت‌ها پوش (\lr{Push}) کنید. از دستورات زیر برای این کار استفاده نمایید:
\begin{latin}
\begin{lstlisting}[language=bash, numbers=none, escapeinside={(*}{*)}]
git tag -a v1.28.4 -m "Release version 1.28.4"
git push all v1.28.4
# (*\rl{یا برای ارسال تمام تگ‌ها:}*)
git push all --tags
\end{lstlisting}
\end{latin}
\\ \textcolor{primary}{\faInfoCircle\ \textbf{نکته مهم:}} \textbf{نسخه‌ای که در فایل \lr{00\_config.tex} وارد می‌کنید صرفاً مربوط به سند گزارش است و ارتباطی با نسخه کد پروژه ندارد.}
\end{itemize}
% ==========================================
% Chapter 3: Research & Development Team
% ==========================================
\newpage
\section*{فصل سوم: اختصاصی تیم تحقیق‌وتوسعه (\lr{R\&D})}
\phantomsection
\addcontentsline{toc}{subsection}{فصل سوم: اختصاصی تیم تحقیق‌وتوسعه (\lr{R\&D})}
\begin{ScoreBox}
\textbf{\large \textcolor{primary}{\faFlask\ جریان‌کار تیم‌های تحقیق‌وتوسعه}} \\
تیم‌های تحقیقاتی \textbf{نیازی به نصب نرم‌افزار یا کار با ترمینال و \lr{Git} ندارند.} شما نگارش پایان‌نامه‌ها، گزارش‌های اکوسیستم و مستندات آکادمیک خود را به صورت زنده روی پلتفرم ابری ما انجام می‌دهید.
\end{ScoreBox}
\subsection*{آموزش قدم‌به‌قدم ایجاد گزارش (ویژه اعضای غیرفنی)}
اگر با برنامه‌نویسی آشنا نیستید، کافیست دقیقاً این مراحل را دنبال کنید:
\begin{itemize}
\item \textbf{مرحله اول (دانلود قالب):} مرورگر خود را باز کنید و به آدرس \lr{\url{https://git.amirkabirpark.ir/bestmahdi2/Park__ReportTemplate/releases}} بروید. از قسمت بالای صفحه، روی تب \textbf{\lr{Releases}} کلیک کنید و فایل فشرده‌ای که نامی شبیه به \lr{Overleaf\_Park\_\_ReportTemplate-v2.0.6.zip} دارد را دانلود کنید.
\begin{figure}[h!]
\centering
\includegraphics[width=0.9\textwidth]{releases.png}
\caption{صفحه مخزن گیت پارک، که بخش \lr{Releases} برای دانلود قالب در بالای آن مشخص شده است.}
\label{fig:gitea_releases}
\end{figure}
\item \textbf{مرحله دوم (ایجاد پروژه ابری):} وارد سایت \lr{https://latex.amirkabirpark.ir} شوید و لاگین کنید. در بالا سمت چپ، روی دکمه سبز رنگ \textbf{\lr{New Project}} و سپس \textbf{\lr{Upload Project}} کلیک کنید. فایل زیپی که در مرحله قبل دانلود کردید را اینجا رها کنید.
\begin{figure}[h!]
\centering
\includegraphics[width=0.7\textwidth]{upload.png}
\caption{اسکرین‌شات از داشبورد پلتفرم ابری که دکمه‌های \lr{New Project} و \lr{Upload Project} در آن مشخص شده‌اند.}
\label{fig:new_upload_project}
\end{figure}
\item \textbf{مرحله سوم (تغییر نام و اشتراک‌گذاری):} پس از باز شدن پروژه، حتماً در همان ابتدا نام پروژه را تغییر دهید. سپس روی دکمه \textbf{\lr{Share}} کلیک کرده و ایمیل \lr{alibad979@gmail.com} را به پروژه اضافه کنید تا ادمین همواره به مستندات شما دسترسی داشته باشد.
\begin{figure}[h!]
\centering
\includegraphics[width=0.7\textwidth]{share.png}
\caption{اسکرین‌شات از منوی \lr{Share} و نحوه افزودن ایمیل ادمین.}
\label{fig:share_project}
\end{figure}
\item \textbf{مرحله چهارم (مهم‌ترین تنظیم):} مسیر \lr{File > Settings > compiler > compiler} را طی کرده و حتماً گزینه \textbf{\lr{XeLaTeX}} را انتخاب کنید تا فونت‌های فارسی (مثل \lr{BNazanin}) به درستی نمایش داده شوند.
\item \textbf{مرحله پنجم (شروع نوشتن و رفع خطا):} از منوی فایل‌ها در سمت چپ، پوشه \lr{Content} را باز کرده و روی فایل \lr{01\_project\_content.tex} کلیک کنید. حالا می‌توانید متن خود را در محیط ویرایشگر تایپ کنید. برای دیدن خروجی نهایی، دکمه سبز رنگ \textbf{\lr{Recompile}} را بزنید.
\\ \textcolor{primary}{\faInfoCircle\ \textbf{نکته مهم:}} \textbf{اگر در حین کار با خطای عجیبی مواجه شدید، در اکثر مواقع این مشکل با کلیک روی دکمه قرمز رنگ \lr{Clear cached files} در پایین و سمت راست صفحه برطرف می‌شود.}
\begin{figure}[h!]
\centering
\includegraphics[width=0.7\textwidth]{clear.png}
\caption{محل قرارگیری دکمه قرمز رنگ \lr{Clear cached files} در منوی لاگ‌های کامپایل.}
\label{fig:clear_cache}
\end{figure}
\end{itemize}
% ==========================================
% Chapter 4: Meeting Minutes
% ==========================================
\newpage
\section*{فصل چهارم: راهنمای تنظیم صورتجلسات (ویژه مدیران تیم‌ها)}
\phantomsection
\addcontentsline{toc}{subsection}{فصل چهارم: راهنمای تنظیم صورتجلسات (ویژه مدیران تیم‌ها)}
این فصل صرفاً جهت استفاده مدیران و راهبران تیم‌ها (نظیر دبیران جلسات دستیاران نوآوری) برای تنظیم صورتجلسات رسمی تدوین شده است.
\subsection*{۱. تفاوت‌های کلیدی ساختار صورتجلسه}
برای ساخت صورتجلسه، شما \textbf{نباید} فایل \lr{main.tex} را کامپایل کنید. سند اصلی صورتجلسات فایل \lr{minutes\_main.tex} است. در پلتفرم ابری روی این فایل کلیک کرده و سپس \lr{Recompile} نمایید.
\subsection*{۲. متغیرهای پیکربندی صورتجلسه (\lr{00\_minutes\_config.tex})}
تنظیمات جلسه را در این فایل مدیریت کنید. تمامی متغیرهای زیر باید بر اساس اطلاعات هر جلسه به‌روزرسانی شوند:
\vspace{0.2cm}
\textbf{الف) اطلاعات پایه و زمان‌بندی:}
\begin{itemize}
\item \lr{\textbackslash MinutesDate}: تاریخ برگزاری جلسه. \\ \textcolor{gray}{\textbf{مثال:} \lr{\textbackslash newcommand\{\textbackslash MinutesDate\}\{\rl{۱۴۰۵/۳/۱۳}\}}}
\item \lr{\textbackslash MinutesStart} و \lr{\textbackslash MinutesEnd}: زمان شروع و پایان جلسه. \\ \textcolor{gray}{\textbf{مثال:} \lr{\textbackslash newcommand\{\textbackslash MinutesStart\}\{\rl{۱۰:۳۰}\}}}
\item \lr{\textbackslash MinutesNumber} و \lr{\textbackslash MinutesRevision}: شماره جلسه در سال جاری و شماره ویرایش فرم. \\ \textcolor{gray}{\textbf{مثال:} \lr{\textbackslash newcommand\{\textbackslash MinutesNumber\}\{1\}}}
\item \lr{\textbackslash MinutesAttachment}: وضعیت داشتن پیوست (مثل فایل‌های ارائه یا گزارش). \\ \textcolor{gray}{\textbf{مثال:} \lr{\textbackslash newcommand\{\textbackslash MinutesAttachment\}\{\rl{دارد}\}}}
\end{itemize}
\textbf{ب) ارکان جلسه و حاضرین (سیستم هوشمند):}
سیستم به صورت خودکار لیست افراد را بر اساس حروف الفبا مرتب کرده و پیشوندهای اضافه (مثل دکتر، مهندس، خانم) را پاک می‌کند. اسامی را \textbf{صرفاً با کاراکتر نقطه‌ویرگول (؛)} جدا کنید.
\begin{itemize}
\item \lr{\textbackslash MinutesChair} و \lr{\textbackslash MinutesSecretary}: نام رئیس و دبیر جلسه. \\ \textcolor{gray}{\textbf{مثال:} \lr{\textbackslash newcommand\{\textbackslash MinutesSecretary\}\{\rl{مهندس علی بدیعی}\}}}
\item \lr{\textbackslash MinutesExtraMen} و \lr{\textbackslash MinutesExtraWomen}: تخصیص رئیس و دبیر به لیست حاضرین (برای جلوگیری از تایپ مجدد نام‌ها). \\ \textcolor{gray}{\textbf{مثال:} \lr{\textbackslash newcommand\{\textbackslash MinutesExtraMen\}\{\textbackslash MinutesChair \rl{؛} \textbackslash MinutesSecretary\}}}
\item \lr{\textbackslash MinutesPresentMen} و \lr{\textbackslash MinutesPresentWomen}: لیست آقایان و خانم‌های حاضر در جلسه. \\ \textcolor{gray}{\textbf{مثال:} \lr{\textbackslash newcommand\{\textbackslash MinutesPresentMen\}\{\rl{متین توکلی؛ رضا اسفندیاری؛ سام قربانی}\}}}
\item \lr{\textbackslash MinutesAbsentMen} و \lr{\textbackslash MinutesAbsentWomen}: لیست غایبین جلسه. (در صورت نبود غایب حتماً از کاراکتر \lr{-} استفاده کنید). \\ \textcolor{gray}{\textbf{مثال:} \lr{\textbackslash newcommand\{\textbackslash MinutesAbsentWomen\}\{-\}}}
\end{itemize}
\textbf{ج) دستور جلسه و تنظیمات تیم:}
\begin{itemize}
\item \lr{\textbackslash MinutesAgenda}: لیست موضوعات و دستور جلسه. (برای رفتن به خط بعد حتماً از \lr{\textbackslash\textbackslash} استفاده کنید). \\ \textcolor{gray}{\textbf{مثال:} \lr{\textbackslash newcommand\{\textbackslash MinutesAgenda\}\{\rl{۱. بررسی امور کسب‌وکار \lr{\textbackslash\textbackslash} ۲. توسعه وب‌سایت}\}}}
\item \lr{\textbackslash MinutesTeam}: تعیین تیم برگزارکننده جلسه. این متغیر به صورت هوشمند عنوان جلسه و آیکون مربوطه را تنظیم می‌کند. مقادیر مجاز شامل \lr{Club} (باشگاه)، \lr{TT} (تیم فنی)، \lr{RD} (تحقیق‌وتوسعه) و \lr{TT-RD} (جلسه مشترک) می‌باشند. \\ \textcolor{gray}{\textbf{مثال:} \lr{\textbackslash newcommand\{\textbackslash MinutesTeam\}\{TT-RD\}}}
\item \lr{\textbackslash MinutesTeamLogo}: نام فایل لوگوی اختصاصی تیم که باید در پوشه \lr{Assets/Image} قرار داشته باشد. \\ \textcolor{gray}{\textbf{مثال:} \lr{\textbackslash newcommand\{\textbackslash MinutesTeamLogo\}\{team\_logo.png\}}}
\end{itemize}
\subsection*{۳. نحوه نگارش محتوای مصوبات}
وارد فایل \lr{Minutes\_Content/01\_minutes\_content.tex} شوید. برای ثبت هر مصوبه یا وظیفه محول شده، از ماکروی \lr{\textbackslash DiscussionItem} استفاده کنید که مستقیماً جدول پیگیری را در زیر آن رسم می‌کند.
\textbf{کد ورودی:}
\begin{latin}
\begin{lstlisting}[language=TeX, escapeinside={(*}{*)}]
\DiscussionItem{(*\rl{استقرار پلتفرم اجتماعی}*)}
{(*\rl{نسخه جدید باید از طریق کانتینرهای داکر روی سرور مجازی اصلی مستقر شود تا دسترسی تیم فنی فراهم گردد.}*)}
{(*\rl{علی بدیعی}*)}
{(*\rl{۱۴۰۵/۰۳/۲۰}*)}
\end{lstlisting}
\end{latin}
\textbf{نتیجه ظاهری:} یک بلوک اختصاصی که عنوان با یک آیکون \faAngleLeft\ در کنار آن به رنگ اصلی برجسته شده، سپس شرح وظیفه با تو‌رفتگی چاپ می‌شود، و در زیر آن جدولی مرتب شامل "مسئول اقدام" و "مهلت" برای پیگیری آسان در جلسات آینده قرار می‌گیرد.
\DiscussionItem{استقرار پلتفرم اجتماعی}
{نسخه جدید باید از طریق کانتینرهای داکر روی سرور مجازی اصلی مستقر شود تا دسترسی تیم فنی فراهم گردد.}
{علی بدیعی}
{۱۴۰۵/۰۳/۲۰}
% نمونه استفاده از باکس نقل قول
\begin{QuoteBox}
طراحی خوب یعنی حذف جزئیات غیرضروری تا زمانی که تنها هسته اصلی و ارزشمند باقی بماند.
ما این نقل‌قول را برای جلب توجه بیشتر به این شکل طراحی کرده‌ایم.
\end{QuoteBox}

View File

@ -1,50 +1,88 @@
% ==========================================
% Appendix: User Accounts List
% ==========================================
\newpage
\section*{پیوست: لیست حساب‌های کاربری سیستم ابری}
\section*{پیوست ۱: جداول نمونه (ساختار داده‌ها و تسک‌ها)}
\phantomsection
\addcontentsline{toc}{section}{پیوست: لیست حساب‌های کاربری سیستم ابری}
تمامی اعضای تیم‌ها می‌توانند وضعیت حساب کاربری و ایمیل ثبت‌شده خود را در جدول زیر مشاهده کنند. با توجه به طولانی بودن لینک‌های امنیتی، برای ورود به سیستم کافیست روی عبارت \textbf{لینک فعال‌سازی} مربوط به خود کلیک نمایید.
\addcontentsline{toc}{section}{پیوست ۱: جداول نمونه (ساختار داده‌ها و تسک‌ها)}
جدول زیر به عنوان یک نمونه استاندارد برای نمایش اطلاعات، تسک‌ها یا ساختار داده در مستندات تیم تدوین شده است. این جدول در فهرست جداول نیز نمایش داده خواهد شد.
\vspace{0.5cm}
\renewcommand{\arraystretch}{1.5}
\begin{center}
\begin{longtable}{|>{\centering\arraybackslash}p{0.05\textwidth}|>{\raggedright\arraybackslash}p{0.22\textwidth}|>{\centering\arraybackslash\small}p{0.40\textwidth}|>{\centering\arraybackslash}p{0.23\textwidth}|}
\renewcommand{\arraystretch}{1.6}
\begin{longtable}{|>{\centering\arraybackslash}p{0.1\textwidth}|p{0.6\textwidth}|>{\centering\arraybackslash}p{0.2\textwidth}|}
\caption{ساختار داده‌ها و زمان‌بندی تسک‌های فاز اول} \\
\hline
\rowcolor{tablehead}
\textbf{ردیف} & \textbf{نام و نام‌خانوادگی} & \textbf{ایمیل سازمانی} & \textbf{دسترسی مستقیم} \\
\textbf{ردیف} & \multicolumn{1}{c|}{\textbf{عنوان بخش / تسک}} & \textbf{مقدار / وضعیت} \\
\hline
\endfirsthead
\multicolumn{3}{c}%
{{\bfseries \tablename\ \thetable{} -- ادامه از صفحه قبل}} \\
\hline
\rowcolor{tablehead}
\textbf{ردیف} & \textbf{نام و نام‌خانوادگی} & \textbf{آدرس ایمیل} & \textbf{دسترسی مستقیم} \\
\textbf{ردیف} & \multicolumn{1}{c|}{\textbf{عنوان بخش / تسک}} & \textbf{مقدار / وضعیت} \\
\hline
\endhead
\hline
\hline \multicolumn{3}{|r|}{{\textcolor{gray}{ادامه در صفحه بعد...}}} \\ \hline
\endfoot
\hline
\endlastfoot
۱ & آریان اسدی & \lr{asadii.aryan@gmail.com} & \href{https://latex.amirkabirpark.ir/user/activate?token=c5a4e84ee9a4901bee6cb9661521bf50bd269660518ea5473141eed747935672&user_id=6a2d8011dbf62861554f9712}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
۲ & پارسا رضایی & \lr{pars82648@gmail.com} & \href{https://latex.amirkabirpark.ir/user/activate?token=be45da39abc96641f853e47250a4bf774fc23e065b6c360767c405fef4a64d06&user_id=6a2d8012dbf62861554f971a}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
۳ & رویا حمزه ترکمانی & \lr{torkamaniroya@gmail.com} & \href{https://latex.amirkabirpark.ir/user/activate?token=ab86ea097da6ee783bfb1fa6f24bdd85646f946b1c867ccdc29640a008c8b5bf&user_id=6a2d8012dbf62861554f9722}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
۴ & سحر منصوریان & \lr{shinn.m7997@gmail.com} & \href{https://latex.amirkabirpark.ir/user/activate?token=77ea2ccb21c24c0683e9d00a8532c5d077f9480a3cada4f0237adb13510394ad&user_id=6a2d8012dbf62861554f972a}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
۵ & محمد بازیاری & \lr{mohammad.bazyari.2007@gmail.com} & \href{https://latex.amirkabirpark.ir/user/activate?token=9d5dab0022f1c2fe222b532b90621fbad87432dbeb76b51eb5c349f177571ac2&user_id=6a2d8013dbf62861554f9732}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
۶ & کوثر نخلی & \lr{kosarnakhli@gmail.com} & \href{https://latex.amirkabirpark.ir/user/activate?token=2e79e07c2938fd72874b5074a7da7334d970f63afeba56701561802bef6d15bf&user_id=6a2d8013dbf62861554f973a}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
۷ & علی شهریان جزابه & \lr{shahrian.ali1960@gmail.com} & \href{https://latex.amirkabirpark.ir/user/activate?token=6f856770ed43700ce23399a0edeb1ece4a61319cc1eb3e5d7ace375b85b9ca02&user_id=6a2d8043dbf62861554f97aa}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
۸ & آیدا اسدی فرد & \lr{aidaifard@gmail.com} & \href{https://latex.amirkabirpark.ir/user/activate?token=1f7337012871bf77389a28dd7352150eb83d61d7485113cb1041485110e27adb&user_id=6a2d8014dbf62861554f9743}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
۹ & ایلیا کمالی پور & \lr{iliyakp1@gmail.com} & \href{https://latex.amirkabirpark.ir/user/activate?token=ad216fa4d7d86c3e12e9b8f60ac13fb7cd974b06d134394b204763dfa3584176&user_id=6a2d8014dbf62861554f974b}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
۱۰ & مهدی باقری & \lr{mahdibagheri@aut.ac.ir} & \href{https://latex.amirkabirpark.ir/user/activate?token=394148051ce36324f98b10e4b28bc30c47bcc9fe3a20cdb38f05d47ce6ff93a2&user_id=6a2d8014dbf62861554f9753}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
۱۱ & ایلیا دستفان & \lr{iliyadastfan@gmail.com} & \href{https://latex.amirkabirpark.ir/user/activate?token=d1a8f7400ae39e47ceecbf83504f3ec74845cbf5672ff0f9d6ff09e4f7d8aa15&user_id=6a2d8015dbf62861554f975b}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
۱۲ & محیا دشتیانه & \lr{mahgol8119@gmail.com} & \href{https://latex.amirkabirpark.ir/user/activate?token=e3155de4a07ade402adcae73044dc168584dd2044737989773b0e191419a85d5&user_id=6a2d8015dbf62861554f9763}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
۱۳ & پژمان ناظری & \lr{pejmannazeri79@gmail.com} & \href{https://latex.amirkabirpark.ir/user/activate?token=2550daa22c7eebc0dbba1b4820aaabbb314c20f2dee78c71bf51a33b1c04feec&user_id=6a2d8016dbf62861554f976b}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
۱۴ & سید محمد سجادی & \lr{sajadi.ee.sut@aut.ac.ir} & \href{https://latex.amirkabirpark.ir/user/activate?token=c51b626e5ed13b985f02e5f2aaf1259cf931d66fd13463b576306039b45c0b52&user_id=6a2d8016dbf62861554f9773}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
۱۵ & رضا اسفندیاری & \lr{rezaesfaandiari190@gmail.com} & \href{https://latex.amirkabirpark.ir/user/activate?token=c06dcd6888491ca449dd5cd123f29abf4b350cba771139db8a2e603b982477ba&user_id=6a2d8016dbf62861554f977b}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
۱۶ & امیر‌مهدی کرمی & \lr{am.ma.karami@gmail.com} & \href{https://latex.amirkabirpark.ir/user/activate?token=47222e4f775da04b5bd1f170933c4c6558d9ebcaffa97e2b24fbd19e638dc17f&user_id=6a2d8017dbf62861554f9783}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
۱۷ & فاطمه طاهری & \lr{yasi.tahery83318331@gmail.com} & \href{https://latex.amirkabirpark.ir/user/activate?token=50fcbc36722810bb4744d657eacb2e70b94f1e361211b23f65f150a3ba959487&user_id=6a28ff9755aa862602d317f9}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
۱۸ & محمد متین توکلی & \lr{i.e.matt.tavakoli@gmail.com} & \href{https://latex.amirkabirpark.ir/user/activate?token=5d9b306363fb76cb1c9bc76dcedd4af87d608d9a2110be18a0690995aef293fe&user_id=6a2d8017dbf62861554f978d}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
۱۹ & سام قربانی & \lr{sam.horbani8490@gmail.com} & \href{https://latex.amirkabirpark.ir/user/activate?token=7a25c174c38a26c80b0464aa26c88c9efa8371937fba7b99bd2fce3e214e1838&user_id=6a2d8018dbf62861554f9795}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\
% --- فاز اول ---
\rowcolor{tablephase}
\multicolumn{3}{|c|}{\textbf{بخش اول: لورم ایپسوم متن ساختگی}} \\ \hline
۱ & لورم ایپسوم متن ساختگی با تولید سادگی & \textbf{مقدار نمونه} \\ \hline
۲ & چاپگرها و متون بلکه روزنامه و مجله & \textbf{مقدار نمونه} \\ \hline
۳ & برای شرایط فعلی تکنولوژی مورد نیاز & \textbf{مقدار نمونه} \\ \hline
% --- فاز دوم ---
\rowcolor{tablephase}
\multicolumn{3}{|c|}{\textbf{بخش دوم: کاربردهای متنوع و ابزارها}} \\ \hline
۴ & طراحان گرافیک است چاپگرها و متون & \textbf{مقدار نمونه} \\ \hline
۵ & شناخت فراوان جامعه و متخصصان را می طلبد & \textbf{مقدار نمونه} \\ \hline
۶ & ایجاد با شناخت فراوان جامعه و متخصصان & \textbf{مقدار نمونه} \\ \hline
\end{longtable}
\end{center}
\newpage
\section*{پیوست ۲: دستورالعمل‌های فنی و ابزارهای توسعه}
\phantomsection
\addcontentsline{toc}{section}{پیوست ۲: دستورالعمل‌های فنی و ابزارهای توسعه}
\subsection*{نمونه درج بلوک کد \lr{(Code Snippet)}}
\phantomsection
\addcontentsline{toc}{subsection}{نمونه درج بلوک کد \lr{(Code Snippet)}}
برای قرار دادن کدهای برنامه‌نویسی (مانند متدهای بک‌آند یا استایل‌های فرانت‌آند)، اعضای تیم باید از ساختار زیر استفاده کنند. توجه شود که توضیحات داخل کد حتماً به زبان انگلیسی نوشته شود تا ساختار چپ‌به‌راست کد خراب نشود.
\vspace{0.4cm}
\textbf{نمونه کد اتصال به پایگاه داده و احراز هویت دیتابیس:}
\begin{LTR}
\begin{lstlisting}[language=Python]
# Example configurations for database routing
def check_user_permission(user_id, role):
try:
user = User.objects.get(id=user_id)
if user.role == role:
return True
return False
except User.DoesNotExist:
return False
\end{lstlisting}
\end{LTR}
\subsection*{نمونه درج تصویر و نمودارهای سیستم}
\phantomsection
\addcontentsline{toc}{subsection}{نمونه درج تصویر و نمودارهای سیستم}
شما می‌توانید معماری سیستم، خروجی تسک‌ها یا نمودارهای پایگاه داده را با ساختار استاندارد زیر اضافه کنید. برای اینکه تصویر در جای دقیق خود قرار گیرد، از پارامتر \lr{[h!]} استفاده شده است.
\begin{figure}[h!]
\centering
% برای تست کامپایل بدون خطا، یک کادر فرضی به جای عکس رسم می‌کنیم.
% در پروژه واقعی خط زیر را پاک کرده و \includegraphics را از کامنت خارج کنید:
%\rule{10cm}{5cm}
\includegraphics[width=0.4\textwidth]{image.png}
\caption{نمونه ساختار معماری و جریان داده بین کلاینت و سرور}
\label{fig:system_architecture}
\end{figure}
همانطور که در شکل \ref{fig:system_architecture} مشاهده می‌کنید، تمامی درخواست‌ها ابتدا از فیلترهای امنیتی عبور می‌کنند.

View File

@ -1,15 +1,12 @@
\clearpage % This command ensures that any pending figures are printed before creating a new page.
\clearpage % این دستور باعث می‌شود اگر عکس‌ها جا مانده‌اند، حتماً قبل از ایجاد صفحه جدید چاپ شوند.
\section*{واژه‌نامه تخصصی}
\phantomsection
\addcontentsline{toc}{section}{واژه‌نامه تخصصی}
در این بخش کلمات کلیدی فنی و اختصارات به کار رفته در متن مستندات برای درک بهتر ثبت می‌شوند:
در این بخش کلمات کلیدی فنی و اختصارات به کار رفته در متن گزارش برای درک بهتر ثبت می‌شوند:
\begin{center}
\renewcommand{\arraystretch}{1.4}
\begin{longtable}{|>{\centering\arraybackslash}p{0.2\textwidth}|>{\centering\arraybackslash}p{0.3\textwidth}|p{0.4\textwidth}|}
\caption{واژه‌نامه تخصصی و اختصارات} \\
\hline
\rowcolor{tablehead}
\textbf{اصطلاح / اختصار} & \textbf{معادل انگلیسی} & \multicolumn{1}{c|}{\textbf{توضیح کوتاه}} \\
@ -17,23 +14,9 @@
\endfirsthead
\hline
\rowcolor{tablehead}
\textbf{اصطلاح / اختصار} & \textbf{معادل انگلیسی} & \multicolumn{1}{c|}{\textbf{توضیح کوتاه}} \\
\hline
\endhead
\hline
\endfoot
\hline
\endlastfoot
\lr{XeLaTeX} & \lr{XeTeX-based \LaTeX} & موتور پردازشگر متن \lr{\LaTeX} با قابلیت پشتیبانی از فونت‌های سیستم و زبان فارسی \\ \hline
\lr{Git} & \lr{Version Control System} & سیستم کنترل نسخه برای مدیریت تاریخچه تغییرات کدها و مستندات \\ \hline
\lr{Docker} & \lr{Docker Containerization} & پلتفرم کانتینرسازی برای استقرار یکپارچه نرم‌افزارها روی سرور مجازی \\ \hline
\lr{VPS} & \lr{Virtual Private Server} & سرور مجازی اختصاصی جهت میزبانی پایگاه‌داده، وب‌سایت و سرویس‌ها \\ \hline
\lr{Gitea} & \lr{Gitea} & پلتفرم متن‌باز میزبانی کدهای گیت (مورد استفاده در سرور داخلی پارک) \\ \hline
\lr{R\&D} & \lr{Research and Development} & تیم تحقیق و توسعه سازمان \\ \hline
\lr{T\&T / Devs} & \lr{Technical Team} & تیم توسعه‌دهندگان فنی نرم‌افزار و زیرساخت \\ \hline
\lr{VPS} & \lr{Virtual Private Server} & سرور مجازی اختصاصی جهت میزبانی وب‌سایت و سرویس‌ها \\ \hline
\lr{UI} & \lr{User Interface} & رابط کاربری ظاهری که کاربر مستقیماً با آن تعامل دارد \\ \hline
\lr{UX} & \lr{User Experience} & تجربه کاربری و نحوه تعامل و روان بودن کار با سیستم \\ \hline
\lr{API} & \lr{Application Programming Interface} & رابط برنامه‌نویسی کاربردی برای اتصال فرانت‌آند و بک‌آند \\ \hline
\end{longtable}
\end{center}

View File

@ -27,7 +27,6 @@
\RequirePackage[backend=biber, style=numeric, defernumbers=true]{biblatex}
\RequirePackage{fancyhdr}
\RequirePackage{listings}
\RequirePackage{subcaption}
% ==========================================
% 2. Engine Variables & Flags (Initializers)
@ -250,22 +249,4 @@
\end{tikzpicture}%
\fi
}
}
% --- Custom Command for Discussion Items (Ported for Main Docs) ---
\newcommand{\DiscussionItem}[4]{
\noindent\textbf{\textcolor{primary}{\faAngleLeft\hspace{0.4em}#1}}\par
\vspace{0.05cm}
\noindent\hspace*{0.8cm}%
\begin{minipage}{\dimexpr\linewidth-0.8cm\relax}
\noindent #2\par
\vspace{0.1cm}
\noindent\begin{tabular}{|>{\raggedright\arraybackslash}m{\dimexpr 0.5\linewidth - 2\tabcolsep - 1.5\arrayrulewidth \relax}|>{\raggedright\arraybackslash}m{\dimexpr 0.5\linewidth - 2\tabcolsep - 1.5\arrayrulewidth \relax}|}
\hline
\rowcolor{tablehead} \textbf{مسئول اقدام:} #3 & \textbf{مهلت:} #4 \\
\hline
\end{tabular}
\end{minipage}\par
\vspace{0.5cm}
}

View File

@ -2,7 +2,7 @@
\usepackage{System/team_template}
\addbibresource{Assets/references.bib}
% --- Load User Settings ---
% --- فراخوانی تنظیمات کاربر ---
\input{Config/00_config.tex}
\geometry{top=3.5cm, headsep=1.2cm}
@ -10,18 +10,18 @@
\begin{document}
% ==========================================
% First and Second Page Structure
% ساختار صفحه اول و دوم
% ==========================================
\ifSeparateCover
% --- Separate cover mode ---
% --- حالت کاور مجزا ---
\thispagestyle{cover}
% Adjusting logo position at the top of the page
% تنظیم جایگاه لوگو در بالای صفحه
\vspace*{0.5cm}
\begin{center}
\includegraphics[width=4.0cm]{logo.png}
\end{center}
% Pushing the title to the visual center of the page
% هل دادن عنوان به مرکز بصری صفحه
\vspace*{\stretch{1}}
\begin{center}
\textcolor{accentYellow}{\rule{2.5cm}{1.5pt}} % Subtle gold bridge line
@ -38,7 +38,7 @@
\end{center}
\vspace*{\stretch{2.5}}
\clearpage % End of cover page and go to the second page
\clearpage % اتمام صفحه کاور و رفتن به صفحه دوم
\vspace{0.8cm}
\else
@ -52,7 +52,7 @@
\vspace{0.6cm}
\fi
% --- Document identification table ---
% --- جدول شناسنامه سند ---
\begin{center}
\begin{table}[h!]
\centering
@ -61,7 +61,7 @@
\begin{tabular}{|>{\centering\arraybackslash}p{0.3\linewidth}|>{\centering\arraybackslash}p{0.22\linewidth}|>{\centering\arraybackslash}p{0.3\linewidth}|}
\hline
\rowcolor{tablehead}
شماره سند: \vspace{0.15cm} & نسخه: \vspace{0.15cm} & تاریخ تدوین: \vspace{0.15cm} \\
شماره سند: \vspace{0.15cm} & نسخه: \vspace{0.15cm} & تاریخ تدوین: \vspace{0.15cm} \\
\rowcolor{tablehead}
{\bfseries \DocID} & {\bfseries \lr{\DocVersion}} & {\bfseries \DocDate} \\[0.25cm]
\hline
@ -73,57 +73,57 @@
\end{center}
\arrayrulecolor{black}
% Adjusting the space after the table before starting the content
% تنظیم فاصله بعد از جدول قبل از شروع محتوا
\ifSeparateCover
\vspace{0.5cm}
\else
\vspace{0.1cm} % Very small spacing in non-cover mode
\vspace{0.1cm} % فاصله بسیار کم در حالت بدون کاور
\fi
% --- Automatic document indices section ---
% --- بخش فهرست‌های خودکار سند ---
\newpage
\pdfbookmark[1]{\contentsname}{toc}
\tableofcontents % Table of contents
\tableofcontents % فهرست مطالب
\iftotalfigures
\newpage
\listoffigures
\listoffigures % فهرست نمودارها و تصاویر (خودکار)
\fi
\iftotaltables
\newpage
\listoftables % List of tables (automatic)
\listoftables % فهرست جدول‌ها (خودکار)
\fi
\newpage
% ---------------------------------
% ==========================================
% Include project content files
% فراخوانی فایل‌های محتوای پروژه
% ==========================================
\input{Content/01_project_content.tex} % Main text
\input{Content/01_project_content.tex} % متن اصلی
\ifHasAppendices
\input{Content/02_appendices.tex} % Appendices
\input{Content/02_appendices.tex} % پیوست‌ها
\fi
\ifHasGlossary
\input{Content/03_glossary.tex} % Specialized glossary
\input{Content/03_glossary.tex} % واژه‌نامه تخصصی
\fi
% --- Automatic references section ---
% --- بخش مراجع خودکار ---
\ifHasReferences
\newpage
\phantomsection
\addcontentsline{toc}{section}{منابع و مراجع}
\addcontentsline{toc}{section}{مراجع و منابع}
\nocite{*}
% Print Persian references (right-aligned)
% چاپ منابع فارسی (راست‌چین)
\printbibliography[keyword=persian, title={منابع فارسی}]
\vspace{1cm}
% Print English references (left-aligned)
% چاپ منابع انگلیسی (چپ‌چین)
\begin{latin}
\printbibliography[keyword=english, title={\lr{English References}}, resetnumbers=true]
\end{latin}