یک وباپلیکیشن فارسی (Flask) برای مدیریت داراییها و محاسبه ارزش آنها به تومان، دلار و یورو، با بروزرسانی آنلاین قیمتها از بازارهای ایران و نمودار روند ارزش کل در طول زمان.
- محاسبهی لحظهای ارزش هر دارایی و مجموع کل به تومان، دلار و یورو.
- بروزرسانی آنلاین قیمتها از:
- TGJU برای طلا، سکه، ارز و ارز دیجیتال.
- بورس تهران (TSETMC) برای سهام شرکتها.
- افزودن از بازار: جستجوی زنده در بورس، طلا، ارز و ارز دیجیتال و افزودن هر نماد با قیمت زنده.
- افزودن دستی برای داراییهایی که منبع آنلاین ندارند (سپرده، صندوق و ...).
- نمودار روند ارزش کل که هر روز یک نقطه از ارزش کل داراییها را ثبت و رشد آن را در زمان نمایش میدهد (با امکان نمایش به تومان/دلار/یورو).
- نمودار ترکیب دارایی (سهم هر دارایی از کل).
- ذخیرهی همهی دادهها در
localStorageمرورگر.
flask_app.py برنامهی Flask و مسیرها (نقطهی ورود)
providers.py توزیع جستجو/قیمت بین ارائهدهندهها
tgju.py کاتالوگ و دریافت قیمت طلا/ارز/کریپتو از TGJU
tsetmc.py جستجو و قیمت سهام از بورس تهران
wsgi_pythonanywhere.py نمونهی فایل WSGI برای PythonAnywhere
requirements.txt وابستگیها (Flask, requests)
templates/index.html رابط کاربری
static/styles.css استایل
static/app.js منطق سمت کلاینت
pip install -r requirements.txt
python flask_app.pyسپس این آدرس را باز کنید:
http://127.0.0.1:5000/
برای پورت دیگر، متغیر PORT را تنظیم کنید:
PORT=8000 python flask_app.py- فایلهای پروژه را در پوشهای مثل
/home/yourusername/AssetManagmentآپلود کنید (یا باgit clone). - در یک Bash console وابستگیها را نصب کنید:
pip install --user -r requirements.txt
- در تب Web یک وباپ جدید از نوع Manual configuration (با همان نسخهی پایتون) بسازید.
- در بخش Code، فایل WSGI را باز کنید و محتوای آن را با محتوای
wsgi_pythonanywhere.pyجایگزین کنید (و مسیرPROJECT_DIRرا اصلاح کنید). - Reload بزنید.
توجه دربارهی بروزرسانی آنلاین: حسابهای رایگان PythonAnywhere فقط اجازهی اتصال به سایتهای داخل allowlist را دارند و درخواستها از طریق پراکسی آنها عبور میکنند. اگر
tgju.orgیاtsetmc.comدر allowlist نباشند، بخش بروزرسانی آنلاین کار نمیکند؛ در این حالت قیمتها را دستی وارد کنید یا از حساب پولی (که محدودیت ندارد) استفاده کنید. کتابخانهیrequestsبهصورت خودکار از پراکسی PythonAnywhere استفاده میکند.
GET /api/search?q=<query>— جستجوی نمادها در همهی بازارها. هر نتیجه شاملprovider،code،symbol،name،market،currencyوunitاست.POST /api/quote— دریافت همزمان قیمت چند نماد. بدنه:{"items": [{"id": "...", "provider": "tgju|tsetmc", "code": "..."}]}پاسخ:{"results": {"<id>": {"value": ..., "currency": "IRR|USD"}}, "failed": [...]}
قیمتهایی که با واحد ریال خوانده میشوند (TGJU و بورس) در سرور به تومان تبدیل میشوند. ارزهای دیجیتال با قیمت دلاری برگردانده میشوند.
برای افزودن طلا/ارز/کریپتوی جدید، یک ردیف به CATALOG در tgju.py اضافه کنید (با code معادل slug صفحهی پروفایل TGJU، name فارسی، unit، kind برابر irr یا usd و category). سهام بورس نیازی به افزودن دستی ندارند چون از API زندهی TSETMC جستجو میشوند.