FinAnalyzer یک پلتفرم تحلیل مالی است که به کاربران امکان میدهد:
- تراکنشهای مالی خود را به صورت هوشمند دستهبندی کنند
- تحلیلهای دقیق از درآمد و هزینهها دریافت کنند
- گزارشهای حرفهای PDF تولید کنند
- از هوش مصنوعی برای کشف الگوهای مالی استفاده کنند
FinAnalyzer/
├── app.py # اپلیکیشن اصلی Streamlit
├── core/
│ ├── __init__.py
│ ├── data_processor.py # پردازش و تحلیل دادههای مالی
│ ├── ml_engine.py # موتور یادگیری ماشین
│ └── report_generator.py # تولید گزارش PDF
├── utils/
│ ├── __init__.py
│ ├── currency.py # تبدیل ارزهای فیات و دیجیتال
│ └── notifications.py # سیستم اعلانها
├── data/
│ └── sample_data.csv # دادههای نمونه
├── requirements.txt # وابستگیهای پروژه
└── README.md # مستندات
- پشتیبانی از فرمتهای مختلف: CSV, Excel, JSON, Parquet
- استانداردسازی دادهها: تبدیل نام ستونها به فرمت یکپارچه
- تبدیل ارز: پشتیبانی از ارزهای فیات و دیجیتال
- تشخیص الگوها: شناسایی تراکنشهای تکراری، اشتراکها و هزینههای غیرمعمول
- تحلیلهای مالی: محاسبه شاخصهایی مانند نرخ پسانداز، نسبتهای مالی
-
روشهای دستهبندی چندگانه:
- Rule-based: استفاده از الگوهای regex برای دستهبندی
- Machine Learning: مدل RandomForest آموزشدیده
- Zero-shot: استفاده از مدل BART برای دستهبندی بدون نیاز به دادههای آموزشی
- Hybrid: ترکیب چند روش برای بهترین نتیجه
-
دستهبندیهای پشتیبانی شده:
- درآمد، خرید، قبوض، حمل و نقل، غذا
- سرمایه گذاری، سلامت، آموزش، تفریح، سایر
- فرمتهای خروجی: PDF, HTML, Excel
- پشتیبانی از زبان فارسی: استفاده از فونتهای مناسب برای متون فارسی
- نمودارهای تعاملی: ایجاد نمودارهای مالی با matplotlib و seaborn
- قالبهای قابل شخصیسازی: استفاده از Jinja2 برای قالبهای HTML
- تحلیلهای پیشرفته: شامل تحلیل فصلی، روندها و اهداف مالی
- پشتیبانی از ارزهای فیات: USD, EUR, GBP, JPY, IRR, TRY, CNY, RUB
- پشتیبانی از ارزهای دیجیتال: BTC, ETH, BNB, ADA, DOT, XRP
- کش کردن نرخها: ذخیره موقت نرخها برای بهبود عملکرد
- حالت آفلاین: استفاده از نرخهای پیشفرض در صورت عدم دسترسی به اینترنت
- محاسبه نوسانات: تحلیل نوسانات ارزها در دورههای زمانی مختلف
- کانالهای اطلاعرسانی:
- ایمیل (با قالبهای HTML)
- تلگرام (از طریق ربات)
- وبهوک (برای یکپارچهسازی با سیستمهای دیگر)
- مدیریت صف: پردازش نامتقارن اعلانها
- سیستم تلاش مجدد: ارسال مجدد در صورت شکست
- لاگگیری کامل: ثبت تمام فعالیتهای سیستم اعلانها
- کارتهای خلاصه وضعیت مالی:
- درآمد کل
- هزینه کل
- تراز خالص
- نرخ پسانداز
- نمودار خطی: روند مالی ماهانه
- نمودار دایرهای: توزیع هزینهها بر اساس دستهبندی
- جدول تراکنشها: نمایش فیلتر شده تراکنشها با قابلیتهای:
- فیلتر تاریخ
- فیلتر دستهبندی
- فیلتر نوع تراکنش
- آپلود فایل: پشتیبانی از فایلهای CSV
- دادههای نمونه: استفاده از دادههای پیشفرض در صورت عدم آپلود فایل
- تولید گزارش: ایجاد گزارش PDF با یک کلیک
- نمایش بینشها: نمایش تحلیلهای هوش مصنوعی به صورت JSON
- Python 3.8+: زبان برنامهنویسی اصلی
- Pandas: پردازش و تحلیل دادهها
- NumPy: محاسبات عددی
- Scikit-learn: الگوریتمهای یادگیری ماشین
- Transformers: مدلهای پیشرفته NLP (BART)
- PyTorch: فریمورک یادگیری عمیق
- Streamlit: ساخت رابط کاربری وب
- Plotly: نمودارهای تعاملی
- Matplotlib/Seaborn: نمودارهای آماری
- FPDF2: تولید فایلهای PDF
- Jinja2: موتور قالبسازی HTML
- ReportLab: پیشرفتهتر برای گزارشهای پیچیده
- Requests: ارتباط با APIها
- CurrencyConverter: تبدیل ارز
- python-dateutil: پردازش تاریخها
- Threading: پردازش نامتقارن
streamlit==1.28.0
pandas==2.0.3
numpy==1.24.3
plotly==5.17.0
scikit-learn==1.3.0
transformers==4.35.2
torch==2.1.0
fpdf2==2.7.6
requests==2.31.0
python-dateutil==2.8.2
CurrencyConverter==0.17.4
- Python 3.8+
- pip
# کلون ریپازیتوری
git clone https://github.com/arash-aryapour/FinAnalyzer.git
cd FinAnalyzer
# ایجاد محیط مجازی
python -m venv venv
source venv/bin/activate # در ویندوز: venv\Scripts\activate
# نصب وابستگیها
pip install -r requirements.txt
# اجرای برنامه
streamlit run app.py
پروژه شامل یک فایل sample_data.csv
در پوشه data
است که میتوانید برای تست برنامه از آن استفاده کنید.
- فایل CSV خود را آپلود کنید (با ستونهای Date, Description, Amount, Category, Currency)
- یا از دادههای نمونه استفاده کنید
- خلاصه وضعیت مالی در کارتهای بالا
- نمودارهای تحلیلی در بخش میانی
- جدول تراکنشها با فیلترهای مختلف
- روی دکمه "تولید گزارش PDF" کلیک کنید
- گزارش را دانلود کنید
config = {
'api_key': 'YOUR_API_KEY',
'base_currency': 'USD',
'cache_duration': 60 # دقیقه
}
config = {
'email': {
'smtp_server': 'smtp.gmail.com',
'smtp_port': 587,
'username': 'your_email@gmail.com',
'password': 'your_password'
},
'telegram': {
'bot_token': 'YOUR_BOT_TOKEN',
'chat_id': 'YOUR_CHAT_ID'
}
}
- دستهبندی خودکار هزینههای ماهانه
- شناسایی الگوهای مصرف
- پیشنهاد برای بهینهسازی هزینهها
- تحلیل درآمد و هزینههای شرکت
- گزارشگیری مالیاتی
- پیشبینی روندهای مالی
- ردیابی تراکنشهای ارز دیجیتال
- تحلیل نوسانات بازار
- محاسبه سود و زیان
ما از مشارکتها استقبال میکنیم! لطفاً قبل از ارسال Pull Request:
- ریپازیتوری را فورک کنید
- یک شاخه برای ویژگی خود ایجاد کنید
- تغییرات خود را کامیت کنید
- شاخه را پوش کنید
- یک Pull Request باز کنید
این پروژه تحت مجوز MIT منتشر شده است.
اگر این پروژه برای شما مفید بوده، لطفاً با دادن یک ⭐️ به آن حمایت کنید!