پرش به محتوا

ساختار فنی: تفاوت میان نسخه‌ها

از ویکی حسابیکس
MDK (بحث | مشارکت‌ها)
ایجاد یک نسخه اولیه برای توضیح ساختار فنی آرک. WIP و به زودی آن را بهبود خواهم داد.
 
MDK (بحث | مشارکت‌ها)
توضیح پیش‌نیازها و فرانت‌اند. بهبود جزیی فرمتینگ.
 
(یک نسخهٔ میانیِ ایجادشده توسط همین کاربر نشان داده نشد)
خط ۱: خط ۱:
'''''حسابیکس آرک''''' یک سیستم حسابداری کامل و مدرن است که از معماری میکروسرویس‌گونه برای ارائه قابلیت‌های قدرتمند و انعطاف‌پذیر استفاده می‌کند.
'''''حسابیکس آرک''''' یک سیستم حسابداری کامل و مدرن است که از معماری میکروسرویس‌گونه برای ارائه قابلیت‌های قدرتمند و انعطاف‌پذیر استفاده می‌کند.


== ۱. ترکیب سیستم سطح بالا ==
== ترکیب سیستم سطح بالا ==
سیستم از اجزای اصلی زیر تشکیل شده است:
سیستم از اجزای اصلی زیر تشکیل شده است:
    ‘’‘بک‌اند API’‘’: با استفاده از FastAPI و PostgreSQL، وظیفه مدیریت داده‌ها، منطق تجاری و ارائه API را بر عهده دارد.
# '''فرانت‌اند''': یک رابط کاربری وب مدرن که با Flutter پیاده‌سازی شده است و تجربه کاربری واکنش‌گرا و جذاب را ارائه می‌دهد.
    ‘’‘فرانت‌اند وب’‘’: یک رابط کاربری وب مدرن که با Flutter Web پیاده‌سازی شده است و تجربه کاربری واکنش‌گرا و جذاب را ارائه می‌دهد.
# '''بک‌اند''': با استفاده از FastAPI و PostgreSQL، وظیفه مدیریت داده‌ها، منطق تجاری و ارائه API را بر عهده دارد. همچنین صفحات و عناصر وب را برای فرانت‌اند تولید می‌کند.
    ‘’‘زیرساخت’‘’: شامل مؤلفه‌های خارجی است که برای استقرار و اجرای سیستم ضروری هستند:


== ۲. پشته فناوری (Technology Stack) ==
== فرانت‌اند ==
پروژه از پشته فناوری‌های زیر برای پیاده‌سازی اجزای مختلف استفاده می‌کند:
فرانت‌اند حسابیکس آرک مبتنی بر Flutter Web، فریمورک گوگل برای ساخت رابط کاربری وب زیبا و بومی از یک کد بیس واحد است. بنابراین کاربر می‌تواند به حسابیکس آرک بدون هیچ پیش‌نیازی بجز دسترسی به یک مرورگر و شبکه متصل به سرور بک‌اند، دسترسی داشته و از آن استفاده نماید.


=== بک‌اند ===
طراحی بصری فرانت‌اند آرک بر اساس الگوی راهنمای Material Design برای ایجاد رابط کاربری مدرن و سازگار با محیط‌های مختلف است. همچنین طراحی فنی واکنش‌گرا (Responsive Design) تضمین می‌کند که رابط کاربری در دستگاه‌ها و اندازه‌های صفحه نمایش مختلف به درستی نمایش داده شود.
    ‘’‘FastAPI’‘’: فریمورک وب پایتون برای ساخت APIهای سریع و با کارایی بالا.
    ‘’‘PostgreSQL’‘’: پایگاه داده قدرتمند و قابل اطمینان برای ذخیره‌سازی داده‌ها.
    ‘’‘SQLAlchemy’‘’: ORM (Object-Relational Mapper) برای تعامل با پایگاه داده.
    ‘’‘Alembic’‘’: ابزار مهاجرت پایگاه داده برای مدیریت تغییرات شمای پایگاه داده.
    ‘’‘Python 3.10+’‘’: زبان برنامه‌نویسی بک‌اند.


=== فرانت‌اند ===
== پشته فناوری بک‌اند ==
    ‘’‘Flutter Web’‘’: فریمورک گوگل برای ساخت رابط کاربری وب زیبا و بومی از یک کد بیس واحد.
پروژه از پشته فناوری‌های زیر برای پیاده‌سازی اجزای مختلف استفاده می‌کند:
    ‘’‘Material Design’‘’: راهنمای طراحی برای ایجاد رابط کاربری مدرن و سازگار.
# '''FastAPI''': فریمورک وب پایتون برای ساخت APIهای سریع و با کارایی بالا.
    ‘’‘طراحی واکنش‌گرا (Responsive Design)’‘’: تضمین می‌کند که رابط کاربری در دستگاه‌ها و اندازه‌های صفحه نمایش مختلف به درستی نمایش داده می‌شود.
# '''PostgreSQL''': پایگاه داده قدرتمند و قابل اطمینان برای ذخیره‌سازی داده‌ها.
 
# '''SQLAlchemy ORM''': یک ابزار تناظر روابط اشیاء (Object-Relational Mapper) برای تعامل با پایگاه داده.
=== زیرساخت ===
# '''Alembic''': ابزار مهاجرت پایگاه داده برای مدیریت تغییرات شمای پایگاه داده.
    ‘’‘Nginx’‘’: برای مسیریابی درخواست‌ها، بارگذاری متعادل و ارائه محتوای استاتیک.
# '''Nginx''': برای مسیریابی درخواست‌ها، بارگذاری متعادل و ارائه محتوای استاتیک.
    ‘’‘SSL/TLS (Let’s Encrypt)’‘’: برای تأمین امنیت ارتباطات بین کاربران و سرور.
# '''JWT (JSON Web Tokens)''': برای احراز هویت و رمزنگاری داده‌ها برای حفظ حریم خصوصی.
    ‘’‘Systemd’‘’: برای راه‌اندازی، مدیریت و نظارت بر سرویس‌ها و فرایند‌های بک‌اند و Nginx
# '''SSL/TLS (Let’s Encrypt)''': برای تأمین امنیت ارتباطات بین کاربران و سرور.
JWT (JSON Web Tokens) برای احراز هویت و رمزنگاری داده‌ها برای حفظ حریم خصوصی.
# '''Systemd''': برای راه‌اندازی، مدیریت و نظارت بر سرویس‌ها و فرایند‌های بک‌اند و Nginx


== پیش‌نیازهای نرم‌افزاری ==
==== پیش‌نیازها ====
    Git
بسته‌های نرم‌افزاری زیر برای راه‌اندازی بک‌اند حسابیکس آرک مورد نیاز هستند که توسط اسکریپت نصب به صورت خودکار نصب می‌شوند.
    Python 3
# '''Git''': برای مدیریت سورس و دریافت کد بک‌اند
    PostgreSQL
# '''Python 3.10+:''' زبان مورد استفاده در بک‌اند از جمله فریم‌ورک FastAPI
    Nginx
# '''PostgreSQL''': پایگاه داده
    Flutter SDK
# '''Nginx''': مسیریابی و ارایه محتوا به درخواست‌ها
    Certbot
# '''Flutter SDK''': تولید صفحات و عناصر رابط کاربری برای فرانت‌اند
توسط اسکریپت نصب به صورت خودکار نصب می‌شوند.
# '''Certbot''': امنیت و رمزنگاری ارتباط
همچنین کتاب‌خوانه‌های دیگری مانند FastAPI در پایتون و فلاتر بکار گرفته می‌شوند که آن‌ها نیز توسط اسکریپت نصب به صورت خودکار دریافت و نصب می‌گردند.


== سیستم عامل ==
==== سیستم عامل ====
    Ubuntu 22.04+
* Ubuntu 22.04+
    Debian 12+
* Debian 12+

نسخهٔ کنونی تا ۸ فروردین ۱۴۰۵، ساعت ۲۱:۵۹

حسابیکس آرک یک سیستم حسابداری کامل و مدرن است که از معماری میکروسرویس‌گونه برای ارائه قابلیت‌های قدرتمند و انعطاف‌پذیر استفاده می‌کند.

ترکیب سیستم سطح بالا

سیستم از اجزای اصلی زیر تشکیل شده است:

  1. فرانت‌اند: یک رابط کاربری وب مدرن که با Flutter پیاده‌سازی شده است و تجربه کاربری واکنش‌گرا و جذاب را ارائه می‌دهد.
  2. بک‌اند: با استفاده از FastAPI و PostgreSQL، وظیفه مدیریت داده‌ها، منطق تجاری و ارائه API را بر عهده دارد. همچنین صفحات و عناصر وب را برای فرانت‌اند تولید می‌کند.

فرانت‌اند

فرانت‌اند حسابیکس آرک مبتنی بر Flutter Web، فریمورک گوگل برای ساخت رابط کاربری وب زیبا و بومی از یک کد بیس واحد است. بنابراین کاربر می‌تواند به حسابیکس آرک بدون هیچ پیش‌نیازی بجز دسترسی به یک مرورگر و شبکه متصل به سرور بک‌اند، دسترسی داشته و از آن استفاده نماید.

طراحی بصری فرانت‌اند آرک بر اساس الگوی راهنمای Material Design برای ایجاد رابط کاربری مدرن و سازگار با محیط‌های مختلف است. همچنین طراحی فنی واکنش‌گرا (Responsive Design) تضمین می‌کند که رابط کاربری در دستگاه‌ها و اندازه‌های صفحه نمایش مختلف به درستی نمایش داده شود.

پشته فناوری بک‌اند

پروژه از پشته فناوری‌های زیر برای پیاده‌سازی اجزای مختلف استفاده می‌کند:

  1. FastAPI: فریمورک وب پایتون برای ساخت APIهای سریع و با کارایی بالا.
  2. PostgreSQL: پایگاه داده قدرتمند و قابل اطمینان برای ذخیره‌سازی داده‌ها.
  3. SQLAlchemy ORM: یک ابزار تناظر روابط اشیاء (Object-Relational Mapper) برای تعامل با پایگاه داده.
  4. Alembic: ابزار مهاجرت پایگاه داده برای مدیریت تغییرات شمای پایگاه داده.
  5. Nginx: برای مسیریابی درخواست‌ها، بارگذاری متعادل و ارائه محتوای استاتیک.
  6. JWT (JSON Web Tokens): برای احراز هویت و رمزنگاری داده‌ها برای حفظ حریم خصوصی.
  7. SSL/TLS (Let’s Encrypt): برای تأمین امنیت ارتباطات بین کاربران و سرور.
  8. Systemd: برای راه‌اندازی، مدیریت و نظارت بر سرویس‌ها و فرایند‌های بک‌اند و Nginx

پیش‌نیازها

بسته‌های نرم‌افزاری زیر برای راه‌اندازی بک‌اند حسابیکس آرک مورد نیاز هستند که توسط اسکریپت نصب به صورت خودکار نصب می‌شوند.

  1. Git: برای مدیریت سورس و دریافت کد بک‌اند
  2. Python 3.10+: زبان مورد استفاده در بک‌اند از جمله فریم‌ورک FastAPI
  3. PostgreSQL: پایگاه داده
  4. Nginx: مسیریابی و ارایه محتوا به درخواست‌ها
  5. Flutter SDK: تولید صفحات و عناصر رابط کاربری برای فرانت‌اند
  6. Certbot: امنیت و رمزنگاری ارتباط

همچنین کتاب‌خوانه‌های دیگری مانند FastAPI در پایتون و فلاتر بکار گرفته می‌شوند که آن‌ها نیز توسط اسکریپت نصب به صورت خودکار دریافت و نصب می‌گردند.

سیستم عامل

  • Ubuntu 22.04+
  • Debian 12+