Compare commits

...

4 Commits

Author SHA1 Message Date
Master 2372ab4b84 update to version3
Build Overleaf Release / build-and-release (push) Successful in 8s Details
2026-06-14 09:56:24 +03:30
Master dfe12fc9b5 update the workflow
Build Overleaf Release / build-and-release (push) Successful in 8s Details
2026-06-13 17:50:01 +03:30
Master e3b82c6509 update the workflow
Build Overleaf Release / build-and-release (push) Successful in 5s Details
2026-06-13 17:41:19 +03:30
Master a118ea5c94 fix the workflow
Build Overleaf Release / build-and-release (push) Failing after 1m42s Details
2026-06-13 17:28:20 +03:30
15 changed files with 773 additions and 211 deletions

View File

@ -9,8 +9,11 @@ jobs:
build-and-release: build-and-release:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout Code - name: Checkout Code (Intranet Workaround)
uses: actions/checkout@v3 run: |
# Bypass external GitHub Actions by manually cloning from the local Gitea instance
git clone https://oauth2:${{ secrets.GITHUB_TOKEN }}@git.amirkabirpark.ir/${{ gitea.repository }}.git .
git checkout ${{ gitea.ref_name }}
- name: Create Clean ZIP for Overleaf - name: Create Clean ZIP for Overleaf
run: | run: |
@ -18,9 +21,25 @@ jobs:
# Exclude the .git folder and any github/gitea workflow files # Exclude the .git folder and any github/gitea workflow files
zip -r Overleaf_Park__ReportTemplate-${{ gitea.ref_name }}.zip . -x "*.git*" -x "*.gitea*" zip -r Overleaf_Park__ReportTemplate-${{ gitea.ref_name }}.zip . -x "*.git*" -x "*.gitea*"
- name: Upload to Gitea Release - name: Upload to Gitea Release (Intranet Workaround)
uses: softprops/action-gh-release@v1 run: |
with: ZIP_NAME="Overleaf_Park__ReportTemplate-${{ gitea.ref_name }}.zip"
files: Overleaf_Park__ReportTemplate-${{ gitea.ref_name }}.zip API_BASE="https://git.amirkabirpark.ir/api/v1/repos/${{ gitea.repository }}"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # 1. Fetch the Release ID associated with this tag using Gitea's local API
RELEASE_DATA=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" "$API_BASE/releases/tags/${{ gitea.ref_name }}")
RELEASE_ID=$(echo "$RELEASE_DATA" | jq -r '.id')
# 2. If a release record doesn't exist yet, create an empty one
if [ "$RELEASE_ID" == "null" ] || [ -z "$RELEASE_ID" ]; then
CREATE_DATA=$(curl -s -X POST -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"tag_name\": \"${{ gitea.ref_name }}\", \"name\": \"${{ gitea.ref_name }}\"}" \
"$API_BASE/releases")
RELEASE_ID=$(echo "$CREATE_DATA" | jq -r '.id')
fi
# 3. Upload the ZIP artifact directly to the release attachment endpoint
curl -s -X POST -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-F "attachment=@$ZIP_NAME" \
"$API_BASE/releases/$RELEASE_ID/assets?name=$ZIP_NAME"

30
.github/workflows/build-release.yml vendored Normal file
View File

@ -0,0 +1,30 @@
name: Build Overleaf Release
on:
push:
tags:
- 'v*' # Triggers on any tag starting with 'v'
# Required to allow the GITHUB_TOKEN to create releases and upload assets
permissions:
contents: write
jobs:
build-and-release:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Create Clean ZIP for Overleaf
run: |
# Zip everything in the current directory (.) without a wrapper folder
# Exclude the .git folder and github workflow files
zip -r Overleaf_Park__ReportTemplate-${{ github.ref_name }}.zip . -x "*.git*" -x "*.github*"
- name: Upload to GitHub Release
uses: softprops/action-gh-release@v2
with:
files: Overleaf_Park__ReportTemplate-${{ github.ref_name }}.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

BIN
Assets/Image/XeLaTex.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

BIN
Assets/Image/clear.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

BIN
Assets/Image/releases.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

BIN
Assets/Image/share.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

BIN
Assets/Image/upload.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

View File

@ -1,34 +1,36 @@
@book{smith2023, % English Book Reference: Official Git Documentation
author = {Smith, John}, @book{chacon2014pro,
title = {Modern Software Architecture}, author = {Chacon, Scott and Straub, Ben},
publisher = {Tech Press}, title = {Pro Git: Everything you need to know about Git},
year = {2023}, publisher = {Apress},
keywords = {english} year = {2014},
} url = {https://git-scm.com/book/en/v2},
@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}
}
@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} 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}
}
% 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},
keywords = {persian}
} }

View File

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

View File

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

View File

@ -1,55 +1,549 @@
\section*{مقدمه و هدف} \newpage
\section*{مستندات پارک امیرکبیر و راهنمای گردش‌کار تیم‌ها}
\phantomsection \phantomsection
\addcontentsline{toc}{section}{مقدمه و هدف} \addcontentsline{toc}{section}{مستندات پارک امیرکبیر و راهنمای گردش‌کار تیم‌ها}
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد.
هدف از تدوین این مستند، یکپارچه‌سازی فرآیندهای توسعه نرم‌افزار و تعیین استانداردهای اولیه است \textbf{هدف:} این مستند رویه‌های عملیاتی استاندارد را برای تنظیم گزارش‌های پروژه و صورتجلسات با استفاده از قالب رسمی \lr{\LaTeX} ما تعیین می‌کند. با توجه به تفاوت ماهیت کاری، این مستند به چهار فصلِ موارد مشترک، راهنمای تیم توسعه (\lr{Devs})، راهنمای تیم تحقیق‌وتوسعه (\lr{R\&D}) و راهنمای مدیران برای صورتجلسات تقسیم شده است.
کتابهای زیادی در شصت و سه درصد گذشته، حال و آینده شناخت فراوان جامعه و متخصصان را می طلبد \cite{smith2023, test_persian}.
\subsection*{پیش‌نیازهای سیستم} % ==========================================
% Chapter 1: Common Items
% ==========================================
\newpage
\section*{فصل اول: موارد مشترک (تمامی تیم‌ها)}
\phantomsection \phantomsection
\addcontentsline{toc}{subsection}{پیش‌نیازهای سیستم} \addcontentsline{toc}{subsection}{فصل اول: موارد مشترک (تمامی تیم‌ها)}
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است. این بخش برای تست طولانی‌تر شدن محتوا و نمایش زیربخش‌ها در فهرست مطالب ایجاد شده است.
\section*{معماری و ساختار فنی} موارد این فصل برای تمامی خروجی‌های تیم‌ها الزامی است تا استاندارد یکپارچه سازمان حفظ شود.
\phantomsection
\addcontentsline{toc}{section}{معماری و ساختار فنی}
\subsection*{ساختار کلی سیستم} \vspace{0.3cm}
\phantomsection \begin{ScoreBox}
\addcontentsline{toc}{subsection}{ساختار کلی سیستم} \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}\ فایل‌های مجاز برای ویرایش (محتوا):}
\begin{itemize} \begin{itemize}
\item \textbf{توسعه بک‌اند:} لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم (به عنوان مثال پیاده‌سازی مدل‌ها در \lr{Django} و توسعه \lr{API}ها \cite{django2024}). \item \lr{Config/00\_config.tex}: تنظیم عنوان و مشخصات سند اصلی.
\item \textbf{توسعه فرانت‌اند:} چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است. \item \lr{Config/00\_minutes\_config.tex}: تنظیم مشخصات صورتجلسات.
\item \textbf{زیرساخت و استقرار (\lr{DevOps}):} مدیریت سرورهای \lr{VPS}، پیکربندی پراکسی‌ها و راه‌اندازی فرآیند \lr{CI/CD}. \item \lr{Content/}: نگارش متن اصلی گزارش‌ها در این پوشه.
\item \lr{Minutes\_Content/}: نگارش متن مصوبات جلسات.
\item \lr{Assets/Image/}: قرار دادن تصاویر اختصاصی پروژه صرفاً در این پوشه.
\item \lr{Assets/references.bib}: درج ارجاعات منابع.
\end{itemize} \end{itemize}
متغیرهای کلیدی سیستم جهت استانداردسازی به شرح زیر تعریف می‌شوند: \vspace{0.2cm}
\noindent\textbf{\textcolor{red}{\faBan}\ فایل‌های غیرمجاز (سیستم و هسته):}
\begin{itemize} \begin{itemize}
\item متغیر اول سیستم: $\boldsymbol{X}$ \item \textbf{فونت‌ها و لوگوها:} فونت‌های پوشه \lr{Assets/Font} و آیکون \lr{logo.png}.
\item متغیر دوم محاسباتی: $\boldsymbol{Y_i}$ (به \textcolor{primary}{\textbf{پیوست ۱: جدول ساختار داده‌ها}} مراجعه شود). \item \textbf{موتور قالب‌دهی:} \lr{System/team\_template.sty} و \lr{System/minutes\_team\_template.tex}.
\item خروجی نهایی پردازش: $\boldsymbol{Z_{total}}$ \item \textbf{مدیریت پروژه و گیت:} پوشه‌های پنهان \lr{.gitea} و \lr{.github}.
\item \textbf{فایل‌های ریشه و کامپایل:} \lr{latexmkrc}، \lr{main.tex} و \lr{minutes\_main.tex}.
\end{itemize} \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{معادلات نمونه:} \\ \textbf{معادلات نمونه:} \\
فرمول محاسبه خروجی بر اساس ورودی‌های سیستم: فرمول محاسبه خروجی بر اساس ورودی‌های سیستم:
\[ \boldsymbol{Z_{total} = \sum_{i=1}^{n} (X \times Y_i)} \] \[ \boldsymbol{Z_{total} = \sum_{i=1}^{n} (X \times Y_i)} \]
درصد بهره‌وری یا توزیع بار در سرور: درصد بهره‌وری یا توزیع بار در سرور:
\[ \boldsymbol{P_n = \frac{Y_n}{Z_{total}}} \] \[ \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} \begin{ScoreBox}
\textbf{امتیاز کلی:} متوسط رو به خوب؛ اما بیشتر مناسب برنامه‌های درون‌سازمانی است. \textbf{\large \textcolor{primary}{\faLaptopCode\ جریان‌کار تیم‌های توسعه}} \\
شما به عنوان برنامه‌نویس، مستندات نرم‌افزار را در کنار کدهای خود توسعه می‌دهید. می‌توانید از محیط محلی خود (\lr{Local}) یا سیستم ابری لاتک برای ویرایش استفاده کنید. در هر دو حالت، سورس فایل‌ها باید در پوشه \lr{docs/} مخزن پروژه‌ی اصلی قرار گیرد و خروجی \lr{PDF} مستقیماً برای مدیر تیم فنی (\lr{Head of T\&T}) ارسال گردد.
\end{ScoreBox} \end{ScoreBox}
\vspace{0.3cm}
% نمونه استفاده از باکس نقل قول \subsection*{۱. راه‌اندازی اولیه و ایجاد گزارش}
\begin{QuoteBox} \begin{itemize}
طراحی خوب یعنی حذف جزئیات غیرضروری تا زمانی که تنها هسته اصلی و ارزشمند باقی بماند. \item \textbf{گام اول - دریافت قالب:} در پوشه ریشه پروژه نرم‌افزاری خود، می‌توانید مخزن مستندات را \lr{Clone} یا \lr{Pull} کنید، و یا فایل \lr{zip} قالب را دانلود کرده و در پروژه اکسترکت کنید. مسیر نهایی حتماً باید پوشه \lr{docs/} باشد:
ما این نقل‌قول را برای جلب توجه بیشتر به این شکل طراحی کرده‌ایم. \begin{latin}
\end{QuoteBox} \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{استقرار پلتفرم اجتماعی}
{نسخه جدید باید از طریق کانتینرهای داکر روی سرور مجازی اصلی مستقر شود تا دسترسی تیم فنی فراهم گردد.}
{علی بدیعی}
{۱۴۰۵/۰۳/۲۰}

View File

@ -1,88 +1,50 @@
% ==========================================
% Appendix: User Accounts List
% ==========================================
\newpage \newpage
\section*{پیوست ۱: جداول نمونه (ساختار داده‌ها و تسک‌ها)} \section*{پیوست: لیست حساب‌های کاربری سیستم ابری}
\phantomsection \phantomsection
\addcontentsline{toc}{section}{پیوست ۱: جداول نمونه (ساختار داده‌ها و تسک‌ها)} \addcontentsline{toc}{section}{پیوست: لیست حساب‌های کاربری سیستم ابری}
جدول زیر به عنوان یک نمونه استاندارد برای نمایش اطلاعات، تسک‌ها یا ساختار داده در مستندات تیم تدوین شده است. این جدول در فهرست جداول نیز نمایش داده خواهد شد.
تمامی اعضای تیم‌ها می‌توانند وضعیت حساب کاربری و ایمیل ثبت‌شده خود را در جدول زیر مشاهده کنند. با توجه به طولانی بودن لینک‌های امنیتی، برای ورود به سیستم کافیست روی عبارت \textbf{لینک فعال‌سازی} مربوط به خود کلیک نمایید.
\vspace{0.5cm} \vspace{0.5cm}
\renewcommand{\arraystretch}{1.6} \renewcommand{\arraystretch}{1.5}
\begin{longtable}{|>{\centering\arraybackslash}p{0.1\textwidth}|p{0.6\textwidth}|>{\centering\arraybackslash}p{0.2\textwidth}|} \begin{center}
\caption{ساختار داده‌ها و زمان‌بندی تسک‌های فاز اول} \\ \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}|}
\hline \hline
\rowcolor{tablehead} \rowcolor{tablehead}
\textbf{ردیف} & \multicolumn{1}{c|}{\textbf{عنوان بخش / تسک}} & \textbf{مقدار / وضعیت} \\ \textbf{ردیف} & \textbf{نام و نام‌خانوادگی} & \textbf{ایمیل سازمانی} & \textbf{دسترسی مستقیم} \\
\hline \hline
\endfirsthead \endfirsthead
\multicolumn{3}{c}%
{{\bfseries \tablename\ \thetable{} -- ادامه از صفحه قبل}} \\
\hline \hline
\rowcolor{tablehead} \rowcolor{tablehead}
\textbf{ردیف} & \multicolumn{1}{c|}{\textbf{عنوان بخش / تسک}} & \textbf{مقدار / وضعیت} \\ \textbf{ردیف} & \textbf{نام و نام‌خانوادگی} & \textbf{آدرس ایمیل} & \textbf{دسترسی مستقیم} \\
\hline \hline
\endhead \endhead
\hline
\hline \multicolumn{3}{|r|}{{\textcolor{gray}{ادامه در صفحه بعد...}}} \\ \hline
\endfoot \endfoot
\hline \hline
\endlastfoot \endlastfoot
% --- فاز اول --- ۱ & آریان اسدی & \lr{asadii.aryan@gmail.com} & \href{https://latex.amirkabirpark.ir/user/activate?token=c5a4e84ee9a4901bee6cb9661521bf50bd269660518ea5473141eed747935672&user_id=6a2d8011dbf62861554f9712}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
\rowcolor{tablephase} ۲ & پارسا رضایی & \lr{pars82648@gmail.com} & \href{https://latex.amirkabirpark.ir/user/activate?token=be45da39abc96641f853e47250a4bf774fc23e065b6c360767c405fef4a64d06&user_id=6a2d8012dbf62861554f971a}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
\multicolumn{3}{|c|}{\textbf{بخش اول: لورم ایپسوم متن ساختگی}} \\ \hline ۳ & رویا حمزه ترکمانی & \lr{torkamaniroya@gmail.com} & \href{https://latex.amirkabirpark.ir/user/activate?token=ab86ea097da6ee783bfb1fa6f24bdd85646f946b1c867ccdc29640a008c8b5bf&user_id=6a2d8012dbf62861554f9722}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
۱ & لورم ایپسوم متن ساختگی با تولید سادگی & \textbf{مقدار نمونه} \\ \hline ۴ & سحر منصوریان & \lr{shinn.m7997@gmail.com} & \href{https://latex.amirkabirpark.ir/user/activate?token=77ea2ccb21c24c0683e9d00a8532c5d077f9480a3cada4f0237adb13510394ad&user_id=6a2d8012dbf62861554f972a}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
۲ & چاپگرها و متون بلکه روزنامه و مجله & \textbf{مقدار نمونه} \\ \hline ۵ & محمد بازیاری & \lr{mohammad.bazyari.2007@gmail.com} & \href{https://latex.amirkabirpark.ir/user/activate?token=9d5dab0022f1c2fe222b532b90621fbad87432dbeb76b51eb5c349f177571ac2&user_id=6a2d8013dbf62861554f9732}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
۳ & برای شرایط فعلی تکنولوژی مورد نیاز & \textbf{مقدار نمونه} \\ \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
\rowcolor{tablephase} ۹ & ایلیا کمالی پور & \lr{iliyakp1@gmail.com} & \href{https://latex.amirkabirpark.ir/user/activate?token=ad216fa4d7d86c3e12e9b8f60ac13fb7cd974b06d134394b204763dfa3584176&user_id=6a2d8014dbf62861554f974b}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
\multicolumn{3}{|c|}{\textbf{بخش دوم: کاربردهای متنوع و ابزارها}} \\ \hline ۱۰ & مهدی باقری & \lr{mahdibagheri@aut.ac.ir} & \href{https://latex.amirkabirpark.ir/user/activate?token=394148051ce36324f98b10e4b28bc30c47bcc9fe3a20cdb38f05d47ce6ff93a2&user_id=6a2d8014dbf62861554f9753}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
۴ & طراحان گرافیک است چاپگرها و متون & \textbf{مقدار نمونه} \\ \hline ۱۱ & ایلیا دستفان & \lr{iliyadastfan@gmail.com} & \href{https://latex.amirkabirpark.ir/user/activate?token=d1a8f7400ae39e47ceecbf83504f3ec74845cbf5672ff0f9d6ff09e4f7d8aa15&user_id=6a2d8015dbf62861554f975b}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
۵ & شناخت فراوان جامعه و متخصصان را می طلبد & \textbf{مقدار نمونه} \\ \hline ۱۲ & محیا دشتیانه & \lr{mahgol8119@gmail.com} & \href{https://latex.amirkabirpark.ir/user/activate?token=e3155de4a07ade402adcae73044dc168584dd2044737989773b0e191419a85d5&user_id=6a2d8015dbf62861554f9763}{\textcolor{primary}{\faLink\ لینک فعال‌سازی}} \\ \hline
۶ & ایجاد با شناخت فراوان جامعه و متخصصان & \textbf{مقدار نمونه} \\ \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\ لینک فعال‌سازی}} \\
\end{longtable} \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,12 +1,15 @@
\clearpage % این دستور باعث می‌شود اگر عکس‌ها جا مانده‌اند، حتماً قبل از ایجاد صفحه جدید چاپ شوند. \clearpage % This command ensures that any pending figures are printed before creating a new page.
\section*{واژه‌نامه تخصصی} \section*{واژه‌نامه تخصصی}
\phantomsection \phantomsection
\addcontentsline{toc}{section}{واژه‌نامه تخصصی} \addcontentsline{toc}{section}{واژه‌نامه تخصصی}
در این بخش کلمات کلیدی فنی و اختصارات به کار رفته در متن گزارش برای درک بهتر ثبت می‌شوند:
در این بخش کلمات کلیدی فنی و اختصارات به کار رفته در متن مستندات برای درک بهتر ثبت می‌شوند:
\begin{center} \begin{center}
\renewcommand{\arraystretch}{1.4} \renewcommand{\arraystretch}{1.4}
\begin{longtable}{|>{\centering\arraybackslash}p{0.2\textwidth}|>{\centering\arraybackslash}p{0.3\textwidth}|p{0.4\textwidth}|} \begin{longtable}{|>{\centering\arraybackslash}p{0.2\textwidth}|>{\centering\arraybackslash}p{0.3\textwidth}|p{0.4\textwidth}|}
\caption{واژه‌نامه تخصصی و اختصارات} \\
\hline \hline
\rowcolor{tablehead} \rowcolor{tablehead}
\textbf{اصطلاح / اختصار} & \textbf{معادل انگلیسی} & \multicolumn{1}{c|}{\textbf{توضیح کوتاه}} \\ \textbf{اصطلاح / اختصار} & \textbf{معادل انگلیسی} & \multicolumn{1}{c|}{\textbf{توضیح کوتاه}} \\
@ -14,9 +17,23 @@
\endfirsthead \endfirsthead
\hline \hline
\lr{VPS} & \lr{Virtual Private Server} & سرور مجازی اختصاصی جهت میزبانی وب‌سایت و سرویس‌ها \\ \hline \rowcolor{tablehead}
\lr{UI} & \lr{User Interface} & رابط کاربری ظاهری که کاربر مستقیماً با آن تعامل دارد \\ \hline \textbf{اصطلاح / اختصار} & \textbf{معادل انگلیسی} & \multicolumn{1}{c|}{\textbf{توضیح کوتاه}} \\
\lr{UX} & \lr{User Experience} & تجربه کاربری و نحوه تعامل و روان بودن کار با سیستم \\ \hline \hline
\lr{API} & \lr{Application Programming Interface} & رابط برنامه‌نویسی کاربردی برای اتصال فرانت‌آند و بک‌آند \\ \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
\end{longtable} \end{longtable}
\end{center} \end{center}

View File

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