یک پلتفرم کامل و امن برای معاملات آپشن ارزهای دیجیتال با معماری میکروسرویس.
- 🔐 احراز هویت امن: JWT با refresh token rotation و 2FA
- 💼 مدیریت چند ارزی: پشتیبانی از BTC، ETH، TRX، USDT
- 🏦 کیفپول امن: تولید آدرسهای منحصر به فرد برای هر کاربر
- 📊 معاملات واقعی: موتور تطبیق سفارش با قیمتگذاری زنده
- 🛡️ امنیت بالا: bcrypt، rate limiting، validation کامل
- 🐳 کانتینریشده: اجرا با Docker/Podman
- 📱 فرانتاند مدرن: Next.js 15 با Tailwind CSS
crypto-exchange/ ├── backend/ │ ├── user-service/ # NestJS - مدیریت کاربران و احراز هویت ✅ │ ├── wallet-service/ # Rust - مدیریت کیفپولها ✅ │ ├── deposit-service/ # Rust - پردازش واریزها │ └── tron-listener/ # Rust - مانیتورینگ بلاکچین ├── frontend/ # Next.js 15 - رابط کاربری ├── docker/ # کانتینرهای Docker/Podman ├── deployment/ # تنظیمات استقرار تولید └── init-db/ # اسکریپتهای راهاندازی دیتابیس
- PostgreSQL 15: دادههای تراکنشی و کاربران
- Redis 7: کش، session، پیامرسانی real-time
- Schema:
cryptoبا 6 جدول اصلی
- Node.js 18+
- Rust 1.70+ (برای سرویسهای مالی)
- Podman 4.0+ یا Docker
- PostgreSQL 15 (با Podman خودکار نصب میشود)
-
کلون ریپازیتوری: git clone https://github.com/pprofessor/Crypto.git cd Crypto
-
راهاندازی دیتابیس (با Podman): cd docker podman-compose -f docker-compose-simple.yml up -d
-
راهاندازی سرویس کاربران: cd backend/user-service npm install cp .env.example .env # تنظیم متغیرهای محیطی npx ts-node src/main.ts
-
راهاندازی سرویس کیفپول: cd backend/wallet-service cargo build cp .env.example .env # تنظیم متغیرهای محیطی cargo run
-
تست APIها:
curl -X POST http://localhost:3001/api/auth/register -H "Content-Type: application/json" -d '{"email":"test@example.com","username":"testuser","password":"Test@1234"}'
curl -X POST http://localhost:8080/api/users/{user_id}/wallets -H "Content-Type: application/json" -d '{"user_id":"uuid-v4-string","currency_symbol":"BTC","public_address":"optional-address"}'
- 📋 چکلیست پیشرفت پروژه - وضعیت فعلی و نقشه راه
- 🔧 مرجع API - مستندات کامل endpoints
- 🗃️ طرح دیتابیس - جداول و روابط
- ⚙️ راهنمای استقرار - استقرار روی سرور اوبونتو
- 👛 مستندات کیف پول - راهنمای سرویس کیف پول
POST /register- ثبتنام کاربر جدیدPOST /login- ورود با ایمیل یا نام کاربریPOST /refresh- تمدید توکن دسترسیPOST /logout- خروج و باطلسازی توکنPOST /change-password- تغییر رمز عبورGET /profile- دریافت پروفایل کاربرPUT /profile- بهروزرسانی پروفایل
POST /- ایجاد کیف پول جدیدGET /- دریافت لیست کیفپولهای کاربرGET /{wallet_id}- دریافت اطلاعات یک کیف پول خاصGET /health- سلامت سرویس
GET /health- سلامت سرویس (در هر دو سرویس)
- users - اطلاعات کاربران (تأیید هویت، KYC، محدودیتها)
- cryptocurrencies - ارزهای پشتیبانیشده
- wallets - کیفپولهای کاربران
- transactions - تراکنشهای مالی
- orders - سفارشهای معاملاتی
- refresh_tokens - توکنهای بازنشانی
- کپی فایل env: cd backend/user-service cp .env.example .env
cd backend/wallet-service cp .env.example .env
-
ویرایش فایلهای
.envبا مقادیر مناسب -
نصب وابستگیها:
cd backend/user-service npm install
cd backend/wallet-service cargo build
- راهاندازی سرویسها:
cd backend/user-service npm run start:dev
cd backend/wallet-service cargo run
- ساختار پروژه و ریپازیتوری GitHub
- راهاندازی PostgreSQL و Redis با Podman
- طراحی کامل schema دیتابیس
- سرویس کاربران (NestJS) با احراز هویت کامل
- سرویس کیفپول (Rust) با APIهای اصلی
- مستندات API و طرح دیتابیس
- تنظیمات Docker/Podman
- سرویس واریز (Rust)
- فرانتاند Next.js
- موتور معاملاتی
- تستهای واحد سرویس کیفپول
- تستهای واحد و یکپارچهسازی
- سیستم KYC/AML
- اعلانهای real-time
- استقرار تولید با SSL
- Fork ریپازیتوری
- ایجاد Branch جدید (
git checkout -b feature/AmazingFeature) - Commit تغییرات (
git commit -m 'Add some AmazingFeature') - Push به Branch (
git push origin feature/AmazingFeature) - باز کردن Pull Request
این پروژه تحت لایسنس MIT منتشر شده است. جزئیات بیشتر در فایل LICENSE.
- گزارش باگ یا درخواست قابلیت جدید: Issues
- سؤالات فنی: Discussions
- ایمیل: [اطلاعات تماس]
- توسعهدهنده اصلی: [اطلاعات شما]
- GitHub: @pprofessor
- ریپازیتوری: https://github.com/pprofessor/Crypto
آخرین بروزرسانی: 2026-01-05
ورژن: 2.1.0
وضعیت: در حال توسعه فعال - wallet-service اضافه شد