⚡
چالشها
- نیاز به سیستم احراز هویت امن با دو مرحله تایید (ایمیل + Google Authenticator)
- مدیریت سطوح دسترسی متعدد برای ادمینها
- پیادهسازی سیستم KYC با تصویر کارت ملی و تایید هویت
- مدیریت تراکنشهای ارز دیجیتال با پشتیبانی از بلاکچینهای مختلف
- نیاز به API برای ارتباط با سرویسهای خارجی
- تولید QR Code برای راهاندازی Google Authenticator
- ارسال ایمیل امن با Gmail SMTP و App Password
- مدیریت همزمان ادمینها، مشتریان و تراکنشهای مالی
💡
راهحلها
- استفاده از django-otp و django-two-factor-auth برای پیادهسازی 2FA
- پیادهسازی TOTPDevice برای ذخیره کلیدهای Google Authenticator
- تولید QR Code با کتابخانه qrcode و نمایش با base64
- استفاده از django.contrib.auth برای احراز هویت پایه
- طراحی مدل User سفارشی با فیلدهای KYC و دسترسی
- پیادهسازی API با DRF و permission_classes برای امنیت
- استفاده از SMTP Gmail با App Password برای ارسال ایمیل
- پیادهسازی serializer برای تبدیل مدلها به JSON
- استفاده از OTPMiddleware برای اجبار به تایید 2FA
- طراحی پنل مدیریتی اختصاصی با jQuery و AJAX
📚
دستاوردها
- سامانه کامل مدیریت مالی با امنیت بالا
- سیستم احراز هویت دو مرحلهای با ایمیل و Google Authenticator
- مدیریت چند سطحی دسترسی ادمینها
- سیستم KYC کامل برای احراز هویت مشتریان
- مدیریت تراکنشهای ارز دیجیتال
- API قدرتمند برای توسعههای آینده
- پنل مدیریتی اختصاصی و کاربرپسند
- ارسال ایمیل امن و حرفهای
🔧
نکات فنی برجسته
- Django 5.2.5 و Python 3
- پایگاه داده MySQL با pymysql
- django-otp و django-two-factor-auth برای 2FA
- pyotp برای تولید TOTP
- qrcode و pypng برای تولید QR Code
- Django REST Framework 3.16 برای API
- Pillow برای پردازش تصویر
- سیستم CustomUser با فیلدهای KYC و امنیتی
- استفاده از OTPMiddleware
- Google Authenticator برای احراز هویت دوم
- ارسال ایمیل با Gmail SMTP + App Password
- تایید کد 6 رقمی با ایمیل
- مدیریت چند بلاکچین (BEP20, TRC20, Polygon)
- سطوح دسترسی مختلف برای ادمینها
🏗️
معماری پروژه
پروژه فوچیس فایننس بر پایه معماری MVT (Model-View-Template) جنگو ساخته شده و از دو اپلیکیشن اصلی تشکیل شده است:
۱. users: مسئول مدیریت کاربران، احراز هویت و پنل ادمین
- مدل User سفارشی با فیلدهای KYC، دسترسی و امنیتی
- ویوهای login_admin, enable_totp در پروژه اصلی
- ویوهای admin_manager, add_admin, alluser, user_information
- ویوهای deposite, witheraw برای مدیریت تراکنشها
- API endpoints برای customer_list و customer_checkin
- serializer برای تبدیل User به JSON
- permissions برای کنترل دسترسی
۲. web: مسئول مدیریت لندینگ پیجها
- مدل Lp برای ذخیره اطلاعات لندینگ پیج
- قابلیت اضافه کردن نام، امتیاز، لوگو و توضیحات
فایل views.py اصلی شامل:
- login_admin: ورود سه مرحلهای (ایمیل/کد، OTP، 2FA)
- enable_totp: راهاندازی Google Authenticator با QR Code
پروژه در حالت DEBUG اجرا میشود و از SQLite برای توسعه و MySQL برای تولید استفاده میکند.
📐
مقیاس پروژه
- ۲ اپلیکیشن اصلی (users, web)
- ۲ مدل دادهای اصلی (User, Lp)
- سیستم احراز هویت سه مرحلهای
- پنل ادمین اختصاصی
- سیستم KYC کامل
- API با DRF
- مدیریت تراکنشهای ارز دیجیتال
- پشتیبانی از ۳ بلاکچین (BEP20, TRC20, Polygon)
- ۳ سطح دسترسی ادمین
- Google Authenticator + ایمیل 2FA