A comprehensive, interactive sales analysis dashboard built with Streamlit. This platform provides advanced sales analytics, temporal pattern identification, and regional performance comparison capabilities.
- Performance Metrics: Display key sales and revenue indicators
- Time Trends: Monthly and seasonal sales analysis
- Category Analysis: Product performance comparison
- Sales Heatmap: Sales patterns by days of week and months
- Regional Performance: Cross-region comparison over time
- Regional Champions: Top-performing regions by month
- Regional Heatmap: Visual performance analysis across regions
- Dynamic Filters: Filter by time, category, and region
- Responsive Charts: Full chart interactivity
- Data Download: Export filtered data
- Multi-language: Persian and English support
- Python 3.8 or higher
- pip (Python package manager)
# Clone repository
git clone https://github.com/your-username/sales-dashboard.git
cd sales-dashboard
# Install dependencies
pip install -r requirements.txt
# Generate sample data
python generate_sample_data.py
# Launch dashboard
streamlit run app.py# Create virtual environment
python -m venv venv
# Activate virtual environment
# Windows:
venv\Scripts\activate
# Mac/Linux:
source venv/bin/activate
# Install packages
pip install -r requirements.txt
# Generate data
python generate_sample_data.py
# Run application
streamlit run app.pysales-dashboard/
├── app.py # Main dashboard application
├── generate_sample_data.py # Sample data generator
├── requirements.txt # Python dependencies
├── README.md # Project documentation
├── setup.sh # Setup script (optional)
├── .gitignore # Git ignore file
└── data/
└── sales_data.csv # Sales data (auto-generated)
| Technology | Version | Purpose |
|---|---|---|
| Streamlit | 1.28+ | Web application framework |
| Pandas | 2.0+ | Data processing & analysis |
| Plotly | 5.15+ | Interactive visualizations |
| NumPy | 1.24+ | Numerical computations |
Automatically generated sample data includes:
{
'date': '2023-01-01', # Sales date
'category': 'Electronics', # Product category
'region': 'North', # Sales region
'sales': 142, # Sales quantity
'revenue': 35682.15, # Revenue (USD)
'month': '2023-01', # Month (for grouping)
'quarter': 'Q1-2023' # Quarter (seasonal analysis)
}- One-year data: January to December 2023
- 5 product categories: Electronics, Clothing, Books, Home & Kitchen, Sports
- 5 sales regions: North, South, East, West, Central
- Seasonal patterns: Regional and seasonal variations
-
Filters (Sidebar)
- Date range selection
- Product categories
- Sales regions
-
Key Metrics
- Total sales count
- Total revenue
- Average sale value
- Daily average sales
-
Analytical Charts
- Monthly sales trends
- Revenue by category
- Regional sales distribution
-
Advanced Analysis
- Sales heatmap (Days vs Months)
- Regional performance
- Monthly regional champions
- Use filters to focus on specific data subsets
- Hover over charts for detailed information
- Use download button to export filtered data
- Charts update in real-time with filter changes
# Modify load_data function in app.py
def load_data():
# For real data:
df = pd.read_csv('path/to/your/data.csv')
# Or for database connection:
# df = pd.read_sql('SELECT * FROM sales', connection)
return df# Add in relevant section of app.py
new_chart = px.bar(
data_frame=filtered_df,
x='category',
y='sales',
title='New Chart'
)
st.plotly_chart(new_chart)We welcome contributions! To contribute:
- Fork the repository
- Create a new branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Create a Pull Request
# Fork and clone repository
git clone https://github.com/iyashar/sales-dashboard-by-streamlit.git
cd sales-dashboard
# Create new branch
git checkout -b feature/new-analysis
# Add changes
git add .
git commit -m "Add new analysis feature"
# Push changes
git push origin feature/new-analysis-
Package Errors
# Update pip pip install --upgrade pip # Reinstall packages pip install -r requirements.txt
-
Data Not Loading
- Ensure
sales_data.csvexists indatafolder - Run
python generate_sample_data.py
- Ensure
-
Port Already in Use
# Use different port streamlit run app.py --server.port 8502
# For debugging, add to app.py
import logging
logging.basicConfig(level=logging.DEBUG)
# Or use st.write for debugging
st.write("Debug info:", filtered_df.shape)This project is licensed under the MIT License. See LICENSE file for details.
- Issues: For bug reports or feature requests
- Discussions: For questions and discussions
- Email: yashara@outlook.com
- Added sales heatmaps
- Advanced regional analysis
- Multi-language support
- Data download capability
- Real database integration
- ML-based sales forecasting
- Administrative dashboard
- Automated reporting
یک داشبورد تحلیل فروش تعاملی و جامع ساخته شده با Streamlit. این پلتفرم امکان تحلیل پیشرفته فروش، شناسایی الگوهای زمانی و مقایسه عملکرد مناطق مختلف را فراهم میکند.
- شاخصهای عملکرد: نمایش متریکهای کلیدی فروش و درآمد
- روندهای زمانی: تحلیل فروش ماهانه و فصلی
- تحلیل دستهبندی: مقایسه عملکرد محصولات مختلف
- هیتمپ فروش: نمایش الگوهای فروش بر اساس روزهای هفته و ماهها
- عملکرد مناطق: مقایسه مناطق مختلف در بازههای زمانی
- برترین مناطق: شناسایی منطقه برتر در هر ماه
- هیتمپ منطقهای: تحلیل بصری عملکرد مناطق
- فیلترهای پویا: فیلتر بر اساس زمان، دستهبندی و منطقه
- نمودارهای واکنشگرا: تعامل کامل با نمودارها
- دانلود داده: امکان دریافت دادههای فیلتر شده
- چندزبانه: پشتیبانی از زبان فارسی و انگلیسی
- Python 3.8 یا بالاتر
- pip (مدیریت پکیج پایتون)
# کلون کردن ریپازیتوری
git clone https://github.com/iyashar/sales-dashboard-by-streamlit.git
cd sales-dashboard
# نصب وابستگیها
pip install -r requirements.txt
# تولید دادههای نمونه
python generate_sample_data.py
# اجرای داشبورد
streamlit run app.py# ایجاد محیط مجازی
python -m venv venv
# فعالسازی محیط مجازی
# در ویندوز:
venv\Scripts\activate
# در مک/لینوکس:
source venv/bin/activate
# نصب پکیجها
pip install -r requirements.txt
# تولید دادهها
python generate_sample_data.py
# اجرای برنامه
streamlit run app.pysales-dashboard/
├── app.py # کد اصلی داشبورد
├── generate_sample_data.py # تولید دادههای نمونه
├── requirements.txt # لیست پکیجهای مورد نیاز
├── README.md # مستندات پروژه
├── setup.sh # اسکریپت راهاندازی (اختیاری)
├── .gitignore # فایلهای نادیده گرفته شده توسط Git
└── data/
└── sales_data.csv # دادههای فروش (تولید خودکار)
| تکنولوژی | نسخه | کاربرد |
|---|---|---|
| Streamlit | 1.28+ | فریمورک اصلی وب اپلیکیشن |
| Pandas | 2.0+ | پردازش و تحلیل دادهها |
| Plotly | 5.15+ | نمودارهای تعاملی |
| NumPy | 1.24+ | محاسبات عددی |
دادههای استفاده شده در این داشبورد به صورت خودکار تولید میشوند و شامل:
{
'date': '2023-01-01', # تاریخ فروش
'category': 'Electronics', # دستهبندی محصول
'region': 'North', # منطقه فروش
'sales': 142, # تعداد فروش
'revenue': 35682.15, # درآمد (دلار)
'month': '2023-01', # ماه (برای گروهبندی)
'quarter': 'Q1-2023' # فصل (برای تحلیل فصلی)
}- دادههای یکساله: از ژانویه تا دسامبر 2023
- 5 دستهبندی محصول: الکترونیک، پوشاک، کتاب، خانه و آشپزخانه، ورزشی
- 5 منطقه فروش: شمال، جنوب، شرق، غرب، مرکز
- الگوهای فصلی: تغییرات فصلی و منطقهای
-
فیلترها (سایدبار)
- بازه زمانی
- دستهبندی محصولات
- مناطق فروش
-
متریکهای کلیدی
- تعداد کل فروش
- درآمد کل
- میانگین ارزش فروش
- میانگین فروش روزانه
-
نمودارهای تحلیلی
- روند فروش ماهانه
- درآمد بر اساس دستهبندی
- توزیع فروش منطقهای
-
تحلیلهای پیشرفته
- هیتمپ فروش (روز vs ماه)
- عملکرد منطقهای
- برترین مناطق هر ماه
- از فیلترها برای تمرکز بر دادههای خاص استفاده کنید
- روی نمودارها هاور کنید تا اطلاعات دقیقتر ببینید
- از دکمه دانلود برای دریافت دادههای فیلتر شده استفاده کنید
- نمودارها به صورت real-time با فیلترها بهروز میشوند
# در app.py، تابع load_data را تغییر دهید
def load_data():
# برای دادههای واقعی:
df = pd.read_csv('path/to/your/data.csv')
# یا برای اتصال به دیتابیس:
# df = pd.read_sql('SELECT * FROM sales', connection)
return df# در بخش مربوطه از app.py اضافه کنید
new_chart = px.bar(
data_frame=filtered_df,
x='category',
y='sales',
title='نمودار جدید'
)
st.plotly_chart(new_chart)ما از مشارکتهای شما استقبال میکنیم! برای مشارکت:
- ریپازیتوری را Fork کنید
- Branch جدید ایجاد کنید:
git checkout -b feature/amazing-feature - تغییرات را Commit کنید:
git commit -m 'Add amazing feature' - به Branch اصلی Push کنید:
git push origin feature/amazing-feature - Pull Request ایجاد کنید
# Fork ریپازیتوری و کلون کردن
git clone https://github.com/iyashar/sales-dashboard-by-streamlit.git
cd sales-dashboard
# ایجاد برنچ جدید
git checkout -b feature/new-analysis
# اضافه کردن تغییرات
git add .
git commit -m "Add new analysis feature"
# آپلود تغییرات
git push origin feature/new-analysis-
خطای پکیجها
# آپدیت pip pip install --upgrade pip # نصب مجدد پکیجها pip install -r requirements.txt
-
دادهها لود نمیشوند
- مطمئن شوید فایل
sales_data.csvدر پوشهdataوجود دارد - دستور
python generate_sample_data.pyرا اجرا کنید
- مطمئن شوید فایل
-
پورت در حال استفاده است
# استفاده از پورت متفاوت streamlit run app.py --server.port 8502
# برای دیباگ، در app.py اضافه کنید
import logging
logging.basicConfig(level=logging.DEBUG)
# یا از st.write برای دیباگ استفاده کنید
st.write("Debug info:", filtered_df.shape)این پروژه تحت لایسنس MIT منتشر شده است. برای جزئیات بیشتر فایل LICENSE را مطالعه کنید.
- ایسوها: برای گزارش باگ یا پیشنهاد قابلیت جدید
- دیسکاشنها: برای سوالات و بحثها
- ایمیل: yashara@outlook.com
- اضافه شدن هیتمپ فروش
- تحلیلهای منطقهای پیشرفته
- پشتیبانی از زبان فارسی
- قابلیت دانلود دادهها
- اتصال به دیتابیس واقعی
- پیشبینی فروش با ML
- دشبورد مدیریتی
- گزارشهای خودکار