Skip to content

Latest commit

 

History

History
147 lines (102 loc) · 7.15 KB

File metadata and controls

147 lines (102 loc) · 7.15 KB

Интерактивный Дашборд Продаж

Описание проекта

Данный проект представляет собой интерактивный дашборд для анализа продаж в велосипедном магазине. Дашборд создан с использованием современных инструментов анализа данных и предназначен для визуализации и исследования различных аспектов продаж, таких как объемы продаж по продуктам, клиентам, магазинам и категориям продуктов.

Автор проекта: Behzod Jumaev Цель проекта: Создание интерактивного дашборда и его деплой в рамках курсового проекта по курсу "Анализ Данных".


Используемые инструменты

  • DuckDB: Колонко-ориентированная СУБД для хранения и обработки данных.
  • Pandas: Библиотека для обработки и анализа данных в Python.
  • Plotly: Библиотека для создания интерактивных графиков и диаграмм.
  • Streamlit: Фреймворк для создания веб-приложений для машинного обучения и анализа данных на Python.

Описание содержимого

  • README.md: Этот файл с описанием проекта, его целей, используемых инструментов и инструкций по запуску.
  • source/: Папка с исходными данными в формате CSV:
    • brands.csv
    • categories.csv
    • customers.csv
    • orders.csv
    • order_items.csv
    • products.csv
    • staffs.csv
    • stores.csv
    • stocks.csv
  • queries/: Папка с SQL-скриптами:
    • create_tables.sql: Скрипт создания таблиц в базе данных.
    • create_views.sql: Скрипт создания представлений (вьюшек).
    • select_queries.sql: Скрипты запросов к вьюшкам для создания датафреймов.
  • my.db: Локальный файл базы данных DuckDB.
  • ddl.py: Модуль для создания таблиц и загрузки данных из файлов источников в базу данных.
  • etl.py: Модуль для извлечения данных из базы данных и создания pandas DataFrame.
  • main.py: Модуль для создания и запуска интерактивного дашборда с использованием Streamlit.
  • requirements.txt: Файл со списком используемых библиотек и их версий.

Инструкции по запуску

1. Клонируйте репозиторий

git clone https://github.com/behzod33/course_project_lib.git

2. Перейдите в папку проекта

cd course_project_lib

3. Установите виртуальное окружение (опционально)

python -m venv venv
source venv/bin/activate  # Для Linux/MacOS
venv\Scripts\activate     # Для Windows

4. Установите зависимости

pip install -r requirements.txt

Создайте базу данных и загрузите данные

python ddl.py

Запустите дашборд

streamlit run main.py

Описание дашборда

Дашборд включает в себя следующие элементы:

Заголовок дашборда

  • "Интерактивный Дашборд Продаж"

Элементы управления (фильтры)

  1. Период заказа: Фильтр по диапазону дат заказов.
  2. Имя клиента: Фильтр по имени клиента.
  3. Название магазина: Выбор магазина из списка.
  4. Название продукта: Множественный выбор продуктов.
  5. Категория продукта: Множественный выбор категорий продуктов.

Диаграммы

  1. Общий объем продаж по продуктам: Столбчатая диаграмма.
  2. Общий объем продаж по клиентам: Столбчатая диаграмма.
  3. Количество заказов по датам: Линейный график.
  4. Средняя скидка по продуктам: Столбчатая диаграмма.
  5. Общий объем продаж по магазинам: Столбчатая диаграмма.
  6. Общий объем продаж по категориям: Столбчатая диаграмма.

Таблица

  • Детали заказов: Отображение данных о заказах в табличном формате.

Использование

  1. Фильтрация данных:

    • Используйте элементы управления на боковой панели для фильтрации данных на дашборде.
    • Изменения фильтров автоматически обновляют диаграммы и таблицу.
  2. Интерактивность диаграмм:

    • Наведите курсор на элементы диаграмм, чтобы увидеть подробные данные.
    • Вы можете увеличивать и уменьшать масштаб графиков для удобства анализа.
  3. Обновление данных:

    • Если вы изменили данные в исходных CSV-файлах, запустите ddl.py снова, чтобы обновить базу данных и дашборд.

Требования к окружению

  • Python: Версия 3.12.3 или выше.
  • Установленные библиотеки: Все зависимости перечислены в файле requirements.txt.

Дополнительная информация

Документирование кода: Каждый модуль, функция и переменная в проекте задокументированы для облегчения понимания и поддержки кода. Стиль кодирования: Код форматирован в соответствии со стандартами PEP 8 для Python. Обработка ошибок: В коде предусмотрена базовая обработка ошибок и вывод информативных сообщений.

Ссылка на streamlit проекта

https://github.com/behzod33/course_project_lib.git