Feature/odoo sync backend - #11
Open
javadnr wants to merge 19 commits into
Open
Conversation
…i in architecture
…t when seting up the db
…ing one sync log table in models changing repository structure base on needs for cleaner code and changed odoo client for cleaner code too added logging setting to start at startup
…rt script to 1 file instead
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
یکپارچهسازی با Odoo
این پروژه یک سرویس Backend برای همگامسازی اطلاعات بین سیستم ERP اودو (Odoo) و پایگاه داده PostgreSQL پیادهسازی میکند.
در این راهکار، Odoo و پایگاه داده PostgreSQL مربوط به آن با استفاده از Docker اجرا میشوند. سپس Backend از طریق API مبتنی بر XML-RPC به Odoo متصل شده و اطلاعات مربوط به Contacts، Products، Sale Orders و Sale Order Lines را دریافت میکند. پس از دریافت اطلاعات، دادهها به مدلهای داخلی سیستم تبدیل شده و در یک پایگاه داده PostgreSQL مجزا ذخیره میشوند.
نحوه اجرای پروژه
ابتدا پروژه را Clone کنید:
سپس ایمیجهای Docker را بسازید:
کانتینرها را اجرا کنید:
برای ایجاد Migrationهای اولیه، وارد سرویس Backend شوید:
make shell alembic revision --autogenerate -m "init"سپس Migrationها را روی پایگاه داده اعمال کنید:
نحوه عملکرد
پس از اجرای کانتینرها، سرویس Backend به API اودو متصل شده و فرآیند همگامسازی اطلاعات را آغاز میکند.
برای انعطافپذیری بیشتر، دو حالت اجرای فرآیند Sync در نظر گرفته شده است:
نوع اجرای سرویس از طریق فایل
.envقابل تنظیم است. همچنین فایل.env.exampleبهعنوان نمونه در پروژه قرار داده شده است تا متغیرهای مورد نیاز و نحوه مقداردهی آنها مشخص باشد.اجرای تستها
برای اجرای تستهای پروژه:
make testتصمیمات معماری
معماری پروژه بهصورت لایهای (Layered Architecture) طراحی شده است تا مسئولیت هر بخش از سیستم بهصورت شفاف از سایر بخشها جدا باشد.
این ساختار باعث افزایش خوانایی، تستپذیری، توسعهپذیری و نگهداری آسانتر پروژه میشود.
محدودیتهای شناختهشده
اگرچه پروژه تمامی نیازمندیهای اصلی آزمون را پوشش میدهد، اما برای استفاده در محیط عملیاتی (Production) میتوان بهبودهای زیر را اعمال کرد: