ICM Trader یک بروکر بینالمللی بازارهای مالی است که به تریدرها در چند منطقه جغرافیایی سرویس میدهد و بخش قابلتوجهی از رشد مشتریانش از طریق شبکه همکاران معرف (IB) شکل میگیرد. وقتی همکاری تکنوراه با ICM شروع شد، این بروکر با یک پلتفرم قدیمی کار میکرد که در سالهای اول کسبوکار جواب داده بود، اما با بزرگ شدن شبکه کاربران و همکاران، به مانع اصلی رشد تبدیل شده بود. تکنوراه در این پروژه نقش شریک فنی و محصول ICM را بر عهده گرفت؛ یعنی نه فقط پیادهسازی، بلکه تحلیل وضع موجود، طراحی معماری جدید، برنامهریزی مهاجرت و استقرار نهایی.

وضعیت قبل از پروژه
سیستم قدیمی ICM حول محور «حساب معاملاتی» طراحی شده بود، نه «کاربر». این یک تصمیم معماری ساده به نظر میرسد، اما عملاً تمام فرآیندهای بروکر را گروگان گرفته بود. ساخت هر حساب معاملاتی باید بهصورت دستی توسط ادمین انجام میشد؛ زیرمجموعههای یک IB نه از طریق ارتباط کاربر با کاربر، بلکه از طریق رنج شماره حساب متاتریدر به او متصل بودند؛ محاسبه ریبیت (سهم IB از معاملات زیرمجموعهها، تا سه سطح) با کوئری مستقیم روی دیتابیس متاتریدر انجام میشد و یک حساب متاتریدر عملاً نقش کیف پول کاربر را بازی میکرد. نتیجه این ساختار این بود که اگر کاربری میخواست IB خودش را تغییر دهد، باید کل حسابش عوض میشد؛ هر خطای انسانی در ساخت حساب مستقیماً روی محاسبات مالی اثر میگذاشت؛ و تیم عملیات ICM بخش زیادی از وقتش را صرف کارهایی میکرد که باید خودکار میبود.
رویکرد تکنوراه
بهجای وصله کردن سیستم موجود، پلتفرم از پایه و با یک مدل ذهنی جدید بازطراحی شد: کاربر در مرکز سیستم قرار گرفت و حسابهای معاملاتی، کیف پول و روابط IB همگی به کاربر متصل شدند، نه به هم. این تغییر به ظاهر ساده، تمام مشکلات بالا را یکجا حل کرد.
در سیستم جدید، رابطه IB بین دو کاربر تعریف میشود. یک کاربر میتواند چند حساب معاملاتی داشته باشد، همه آنها زیر یک IB قرار میگیرند و تغییر IB بدون دست زدن به هیچ حسابی انجام میشود. هر کاربر یک کیف پول مستقل دارد که واریز، برداشت، انتقال بین حسابها و دریافت ریبیت از طریق آن انجام میشود. ساخت حساب معاملاتی (واقعی و دمو) به پنل کلاینت منتقل شد و کاربر بدون دخالت ادمین حساب میسازد؛ نقش ادمین از اپراتور به ناظر تغییر کرد.
محاسبه ریبیت، که حساسترین بخش مالی پلتفرم است، از سطح دیتابیس به لایه بکاند منتقل شد. موتور ریبیت جدید تا سه سطح زیرمجموعه را پوشش میدهد، هر محاسبه قابل ردیابی و حسابرسی است و منطق آن با تستهای خودکار پوشش داده شده — چیزی که در مدل قبلی (کوئری مستقیم روی دیتای متاتریدر) عملاً ممکن نبود.
آنچه ساخته شد
پلتفرم نهایی از سه بخش اصلی تشکیل شده است:
- وبسایت عمومی سهزبانه (انگلیسی، فارسی، عربی) با ساختار سئومحور، صفحات معرفی حسابها، پلتفرمها، نرخ سوآپ، پروموشنها و اسناد قانونی؛ همه محتوا از پنل ادمین قابل مدیریت است.
- پنل کلاینت برای تریدرها و همکاران: ثبتنام و احراز هویت، ساخت و مدیریت حسابهای معاملاتی، کیف پول، واریز و برداشت از طریق درگاههای متعدد (دستی، رمزارز و درگاههای پرداخت بینالمللی)، و بخش اختصاصی IB با داشبورد زیرمجموعهها، درآمد و گزارشها.
- پنل مدیریت برای تیم ICM: مدیریت کاربران و حسابها، تأیید تراکنشها، مدیریت شبکه IB و نرخهای ریبیت، پروموشنها، اسناد قانونی و محتوای سایت.
از نظر فنی، پلتفرم با Laravel و روی زیرساخت کانتینری پیادهسازی شده، دیتابیس PostgreSQL در شبکه داخلی و جدا از سرور اپلیکیشن قرار دارد و استقرار بهصورت خودکار از طریق CI/CD انجام میشود، بهطوری که هر تغییر بعد از تأیید بدون دخالت دستی روی محیط عملیاتی میرود.
مهاجرت بدون توقف سرویس
سختترین بخش پروژه، انتقال هزاران کاربر و IB فعال با تمام سوابق مالیشان از سیستم قدیمی به سیستم جدید بود؛ آن هم در بروکری که نمیتواند سرویسش را متوقف کند. برای این کار، سناریوهای تست دقیق برای همه حالتهای ممکن نوشته شد: کاربر قدیمی با IB قدیمی، کاربر قدیمی با IB جدید، کاربر جدید در ساختار جدید، و ترکیبهای مختلف حساب و کیف پول. صحت دیتای منتقلشده مرحلهبهمرحله و همراه با تیم ICM تأیید شد و مهاجرت با یک تایملاین مشخص و بدون از دست رفتن حتی یک رکورد مالی انجام شد.
نتیجه
ICM امروز پلتفرمی دارد که با رشد شبکه همکارانش بزرگ میشود، نه اینکه جلوی آن را بگیرد. ساخت حساب از یک فرآیند دستی چندمرحلهای به یک کلیک در پنل کلاینت تبدیل شد، محاسبات ریبیت شفاف و قابل حسابرسی شد و بار عملیاتی تیم ادمین بهطور محسوسی کاهش یافت. همکاری تکنوراه با ICM پس از تحویل پروژه، در قالب پشتیبانی و توسعه مستمر ادامه دارد.