ساختار فنی
حسابیکس آرک یک سیستم حسابداری کامل و مدرن است که از معماری میکروسرویسگونه برای ارائه قابلیتهای قدرتمند و انعطافپذیر استفاده میکند.
ترکیب سیستم سطح بالا
سیستم از اجزای اصلی زیر تشکیل شده است:
- فرانتاند: یک رابط کاربری وب مدرن که با Flutter پیادهسازی شده است و تجربه کاربری واکنشگرا و جذاب را ارائه میدهد.
- بکاند: با استفاده از FastAPI و PostgreSQL، وظیفه مدیریت دادهها، منطق تجاری و ارائه API را بر عهده دارد. همچنین صفحات و عناصر وب را برای فرانتاند تولید میکند.
فرانتاند
فرانتاند حسابیکس آرک مبتنی بر Flutter Web، فریمورک گوگل برای ساخت رابط کاربری وب زیبا و بومی از یک کد بیس واحد است. بنابراین کاربر میتواند به حسابیکس آرک بدون هیچ پیشنیازی بجز دسترسی به یک مرورگر و شبکه متصل به سرور بکاند، دسترسی داشته و از آن استفاده نماید.
طراحی بصری فرانتاند آرک بر اساس الگوی راهنمای Material Design برای ایجاد رابط کاربری مدرن و سازگار با محیطهای مختلف است. همچنین طراحی فنی واکنشگرا (Responsive Design) تضمین میکند که رابط کاربری در دستگاهها و اندازههای صفحه نمایش مختلف به درستی نمایش داده شود.
پشته فناوری بکاند
پروژه از پشته فناوریهای زیر برای پیادهسازی اجزای مختلف استفاده میکند:
- FastAPI: فریمورک وب پایتون برای ساخت APIهای سریع و با کارایی بالا.
- PostgreSQL: پایگاه داده قدرتمند و قابل اطمینان برای ذخیرهسازی دادهها.
- SQLAlchemy ORM: یک ابزار تناظر روابط اشیاء (Object-Relational Mapper) برای تعامل با پایگاه داده.
- Alembic: ابزار مهاجرت پایگاه داده برای مدیریت تغییرات شمای پایگاه داده.
- Nginx: برای مسیریابی درخواستها، بارگذاری متعادل و ارائه محتوای استاتیک.
- JWT (JSON Web Tokens): برای احراز هویت و رمزنگاری دادهها برای حفظ حریم خصوصی.
- SSL/TLS (Let’s Encrypt): برای تأمین امنیت ارتباطات بین کاربران و سرور.
- Systemd: برای راهاندازی، مدیریت و نظارت بر سرویسها و فرایندهای بکاند و Nginx
پیشنیازها
بستههای نرمافزاری زیر برای راهاندازی بکاند حسابیکس آرک مورد نیاز هستند که توسط اسکریپت نصب به صورت خودکار نصب میشوند.
- Git: برای مدیریت سورس و دریافت کد بکاند
- Python 3.10+: زبان مورد استفاده در بکاند از جمله فریمورک FastAPI
- PostgreSQL: پایگاه داده
- Nginx: مسیریابی و ارایه محتوا به درخواستها
- Flutter SDK: تولید صفحات و عناصر رابط کاربری برای فرانتاند
- Certbot: امنیت و رمزنگاری ارتباط
همچنین کتابخوانههای دیگری مانند FastAPI در پایتون و فلاتر بکار گرفته میشوند که آنها نیز توسط اسکریپت نصب به صورت خودکار دریافت و نصب میگردند.
سیستم عامل
- Ubuntu 22.04+
- Debian 12+