Initial commit: FunZone accounting frontend with Sepidar-inspired RTL modules

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Shayan Azadi
2026-07-01 00:29:25 +03:30
commit ce6c110e06
52 changed files with 8257 additions and 0 deletions

79
README.md Normal file
View File

@@ -0,0 +1,79 @@
# سپیدار فان‌زون — سیستم حسابداری (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** اجرا می‌شود: <http://localhost:5176>
دستورهای دیگر:
```bash
npm run build # بیلد تولیدی
npm run preview # پیش‌نمایش بیلد روی پورت 5176
npm run lint # بررسی نوع‌ها (type-check)
```
## معماری
- `src/types` — مدل‌های دامنه با تایپ قوی
- `src/data` — لایه ذخیره‌سازی و داده‌های نمونه
- `src/store` — مدیریت وضعیت سراسری (Context) با CRUD تایپ‌شده و ذخیره خودکار
- `src/utils` — محاسبات حسابداری (تراز، دفتر کل، سود و زیان)، قالب‌بندی اعداد و تاریخ شمسی
- `src/components/ui` — کیت رابط کاربری قابل استفاده مجدد
- `src/components/layout` — چیدمان، نوار کناری و نوار بالا
- `src/components/business` — ماژول مشترک فروش/خرید
- `src/pages` — صفحات هر ماژول
> داده‌ها در مرورگر ذخیره می‌شوند. برای بازگشت به داده‌های نمونه از «تنظیمات ← بازنشانی» استفاده کنید.