ساختار پوشه

ساختار پوشه‌های قالب ما به‌طور نزدیک به کنوانسیون‌های رسمی ساختار مسیریاب اپ Next.js پیروی می‌کند. در این بخش، ساختار پوشه پایه و همه چیزهایی که برای راه‌اندازی قالب نیاز دارید را پیدا خواهید کرد. هر دو نسخه دمو و استارتر ساختار یکسانی دارند، به جز اینکه نسخه استارتر تعداد کمتری فایل و پوشه نسبت به نسخه دمو خواهد داشت، زیرا آنها در نسخه استارتر لازم نیستند.

زیر یک نمودار شماتیک از ساختار دایرکتوری است:


├── messages                      # پیام‌های محلی
|   ├── en.json                   # فایل JSON محلی
|   └── ...                       # سایر فایل‌های JSON محلی
├── public                        # منبع استاتیک
|   ├── img                       # تصاویر
|   ├── data                      # داده‌های استاتیک
|   └── ...                       # سایر فایل‌های استاتیک
├── src
│   ├── @types                    # فایل‌های نوع که در سراسر قالب به اشتراک گذاشته می‌شوند
│   │   └── ...                   
│   ├── app                       # دایرکتوری اصلی برنامه برای مسیریاب اپ Next.js
│   │   ├── (auth-pages)          # گروه مسیرها برای صفحات احراز هویت
│   │   ├── └── ...               # صفحات احراز هویت
│   │   ├── └── layout.tsx        # طرح پایه برای صفحات احراز هویت
│   │   ├── (protected-pages)     # گروه مسیرها برای صفحات که احراز هویت نیاز دارند
│   │   ├── ├── ...               # صفحات محافظت شده
│   │   ├── └── layout.tsx        # طرح ریشه برای صفحات محافظت شده
│   │   ├── (public-pages)        # گروه مسیرها برای صفحات عمومی
│   │   ├── └── ...               # صفحات عمومی
│   │   ├── api                   # نقطه پایانی API
│   │   |   └── ...               # مسیر و فایل‌های API
│   │   favicon.ico               # فاویکون
│   │   layout.tsx                # طرح ریشه
│   │   not-found.tsx             # صفحه خالی برای 404
│   │   page.tsx                  # صفحه ورود
|   ├── assets                    # منبع استاتیک برنامه
│   │   ├── maps                  # متادیتای نقشه 
│   │   ├── markdown              # فایل‌های مارکداون
│   │   ├── styles                # فایل‌های CSS جهانی
│   │   └── svg	                  # فایل‌های SVG
│   ├── components                # کامپوننت‌های عمومی
│   │   ├── auth                  # کامپوننت‌های مرتبط با احراز هویت
│   │   ├── docs                  # کامپوننت‌های مرتبط با مستندات
│   │   ├── layouts               # کامپوننت‌های طرح
│   │   ├── shared                # کامپوننت‌های سطح بالا که بر اساس کامپوننت‌های ui ساخته شده‌اند
│   │   ├── template              # کامپوننت‌های قالب، مانند هدر، فوتر، ناو، و غیره...
│   │   ├── ui                    # کامپوننت‌های سطح پایین، مانند دکمه، کشویی، و غیره...
│   │   └── view                  # کامپوننت‌های سطح بالا که برای صفحات به اشتراک گذاشته می‌شوند 
│   ├── configs                   # فایل‌های پیکربندی        
│   │   └── ...          
│   ├── constants                 # فایل‌های ثابت
│   │   └── ...      
│   ├── i18n                      # تنظیمات محلی‌سازی
│   │   └── ...                   
│   ├── mock                      # داده‌های نمونه برای تماس‌های API جعلی
│   │   └── data                  # داده‌های نمونه
│   │   |   └── ...               # فایل‌های TS داده‌های نمونه
│   ├── server                    # فایل‌های سمت سرور
│   │   └── actions               # فایل‌های اقدام سمت سرور
│   │   |   └── ...      				
│   ├── services                  # فایل‌های سرویس برای مدیریت یکپارچه‌سازی‌های API مشتری
│   │   ├── ApiService.ts         # دستگیره درخواست و پاسخ API
│   │   ├── axios                 # پیکربندی‌ها و اینترسپتورهای axios
|   |   |   └── ...
│   │   └── ...                   # سایر فایل‌های سرویس
│   ├── utils                     # همه توابع و hook‌های قابل استفاده مجدد
│   │   ├── hooks                 # hook‌ها
│   │   |   └── ...      					
│   │   └── ...                   # توابع قابل استفاده مجدد 
│   |   auth.ts                   # فایل ورود به سیستم اکسپ Next
│   └── middleware.ts             # میان‌افزار Nextjs
├── .env                          # فایل برای ذخیره پیکربندی محیط و اسرار
├── .eslintignore                 # فایل نادیده گرفتن برای eslint  
├── .gitignore                    # فایل نادیده گرفتن برای git
├── .prettierignore               # فایل نادیده گرفتن برای prettier
├── .prettierrc                   # پیکربندی prettier
├── next-env.d.ts                 # اعلام محیط Nextjs
├── next.config.mjs               # فایل پیکربندی Nextjs
├── package.json                  
├── package.lock.json            
├── postcss.config.mjs            # فایل پیکربندی PostCss
├── README.md 
├── tailwind.config.ts            # فایل پیکربندی TailwindCSS
└── tsconfig.json                 # پیکربندی پروژه Typescript

این ساختار پوشه‌ها سازمان‌دهی واضحی از منابع، کامپوننت‌ها، پیکربندی‌ها، و دارایی‌ها را فراهم می‌کند، که مدیریت و مقیاس‌بندی پروژه شما را آسان‌تر می‌کند. هر پوشه و فایل به‌طور عمدی در جای خود قرار گرفته تا یک پایه کد تمیز و قابل نگهداری را تضمین کند.