# سپیدار فان‌زون — سیستم حسابداری (FunZone Accounting) یک سیستم حسابداری یکپارچه با الهام از نرم‌افزار **سپیدار**، طراحی‌شده برای مجموعه FunZone. رابط کاربری کاملاً فارسی و راست‌به‌چپ (RTL) با تجربه کاربری مدرن و ساده. ## امکانات (ماژول‌ها) مطابق ساختار «سیستم»‌های سپیدار: | ماژول | توضیح | |-------|-------| | **داشبورد** | شاخص‌های کلیدی، نمودار روند فروش/خرید، هشدار موجودی، ترازنامه فشرده | | **حساب‌ها (کدینگ)** | کدینگ استاندارد حساب‌ها (دارایی، بدهی، سرمایه، درآمد، هزینه) با گروه و معین | | **اسناد حسابداری** | ثبت سند دوطرفه با کنترل تراز بدهکار/بستانکار و وضعیت پیش‌نویس/قطعی | | **مشتریان و فروش** | مدیریت مشتریان و صدور فاکتور فروش با محاسبه تخفیف و مالیات | | **تأمین‌کنندگان و خرید** | مدیریت تأمین‌کنندگان و ثبت فاکتور خرید | | **انبارداری** | تعریف کالا، قیمت‌گذاری، کنترل موجودی و تعدیل انبار | | **دریافت و پرداخت** | خزانه‌داری نقدی، بانکی و چک | | **حقوق و دستمزد** | مدیریت کارکنان و صدور فیش حقوقی | | **مالکان مجموعه‌ها** | اطلاعات مالی واقعی صاحبان مجموعه‌ها (از اپ مالکان): موجودی کیف پول، گردش حساب، برداشت‌ها | | **کاربران** | اطلاعات مالی واقعی مشتریان (از اپ مشتریان): موجودی، پرداخت‌ها و بازپرداخت‌ها | | **گزارش‌ها** | تراز آزمایشی، دفتر کل، صورت سود و زیان، ترازنامه | | **تنظیمات** | اطلاعات شرکت، سال مالی، نرخ مالیات، اتصال به سرور | ## اتصال به داده‌های واقعی (بک‌اند فان‌زون) دو بخش «مالکان مجموعه‌ها» و «کاربران» داده‌ها را به‌صورت زنده از بک‌اند `funzone-backend` می‌خوانند (از همان APIهای مدیریتی پنل ادمین). برای اتصال: 1. مطمئن شوید بک‌اند Django در حال اجراست (مثلاً روی `http://localhost:8000`). 2. در برنامه به **تنظیمات ← اتصال به سرور فان‌زون** بروید. 3. آدرس سرور (پیش‌فرض `http://localhost:8000/api`) و نام کاربری/رمز عبور **مدیر (admin)** را وارد و «اتصال» را بزنید. به‌صورت اختیاری می‌توانید آدرس سرور را در فایل `.env` نیز تنظیم کنید: ```bash VITE_API_BASE_URL=http://localhost:8000/api ``` > توکن دسترسی و آدرس سرور در مرورگر ذخیره می‌شوند. APIهای مورد استفاده فقط خواندنی هستند > (لیست مالکان/کاربران، تراکنش‌ها، پرداخت‌ها و برداشت‌ها) و نیاز به دسترسی مدیر دارند. ## پشته فناوری - React 18 + TypeScript (strict) - Vite 5 - Tailwind CSS 3 - React Router 6 - ذخیره‌سازی محلی (localStorage) — بدون نیاز به بک‌اند ## اجرا ```bash npm install npm run dev ``` برنامه روی پورت **5176** اجرا می‌شود: دستورهای دیگر: ```bash npm run build # بیلد تولیدی npm run preview # پیش‌نمایش بیلد روی پورت 5176 npm run lint # بررسی نوع‌ها (type-check) ``` ## Docker ```bash docker compose up -d --build ``` The container serves the production build on **http://localhost:3006**. Build-time API URLs (FunZone backend + accounting service): ```bash VITE_API_BASE_URL=http://localhost:8001/api \ VITE_ACCOUNTING_BASE_URL=http://localhost:8010/api \ docker compose up -d --build ``` ## معماری - `src/types` — مدل‌های دامنه با تایپ قوی - `src/data` — لایه ذخیره‌سازی و داده‌های نمونه - `src/store` — مدیریت وضعیت سراسری (Context) با CRUD تایپ‌شده و ذخیره خودکار - `src/utils` — محاسبات حسابداری (تراز، دفتر کل، سود و زیان)، قالب‌بندی اعداد و تاریخ شمسی - `src/components/ui` — کیت رابط کاربری قابل استفاده مجدد - `src/components/layout` — چیدمان، نوار کناری و نوار بالا - `src/components/business` — ماژول مشترک فروش/خرید - `src/pages` — صفحات هر ماژول > داده‌ها در مرورگر ذخیره می‌شوند. برای بازگشت به داده‌های نمونه از «تنظیمات ← بازنشانی» استفاده کنید.