https://github.com/mindlessmuse666/client-data-analysing-tool
Инструмент для анализа данных. Приложение позволяет пользователям загружать данные в формате CSV, фильтровать их, визуализировать ключевые показатели с помощью графиков и создавать отчеты.
https://github.com/mindlessmuse666/client-data-analysing-tool
data-analysis desktop-application matplotlib pandas pyqt6 pyqt6-desktop-application python sqlite student-project
Last synced: about 2 months ago
JSON representation
Инструмент для анализа данных. Приложение позволяет пользователям загружать данные в формате CSV, фильтровать их, визуализировать ключевые показатели с помощью графиков и создавать отчеты.
- Host: GitHub
- URL: https://github.com/mindlessmuse666/client-data-analysing-tool
- Owner: MindlessMuse666
- License: mit
- Created: 2024-12-16T06:04:10.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-01-27T17:44:59.000Z (5 months ago)
- Last Synced: 2026-01-28T04:06:31.428Z (5 months ago)
- Topics: data-analysis, desktop-application, matplotlib, pandas, pyqt6, pyqt6-desktop-application, python, sqlite, student-project
- Language: Python
- Homepage:
- Size: 1.91 MB
- Stars: 2
- Watchers: 1
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Клиентский инструмент для анализа данных 
     
Этот инструмент предназначен для анализа данных, загруженных из CSV-файлов, их отображения, сортировки, построения графиков и создания отчетов. Приложение написано на **Python** с использованием библиотеки **PyQt6** для графического интерфейса, **pandas** для обработки данных и **matplotlib** для отрисовки графиков, **reportlab** для генерации отчётов.
---
## Особенности
- **Загрузка данных:** Загрузка данных из CSV-файлов с разделителем `;`.
- **Отображение данных:** Отображение загруженных данных в виде таблицы с возможностью редактирования.
- **Сортировка данных:** Сортировка данных по выбранному столбцу в порядке возрастания или убывания.
- **Построение графиков:**
- Гистограмма
- Диаграмма рассеяния
- Линейный график
- Столбчатая диаграмма
- Круговая диаграмма
- **Генерация отчетов:** Создание отчетов в формате `PDF` с данными из таблицы.
- **Сохранение:** Сохранение данных в базу данных `SQLite`.
- **Открытие последнего файла:** Автоматическое открытие последнего использованного `CSV-файла` при запуске приложения.
---
## Структура проекта
```txt
client_data_analysing_tool/
├──📁core/
│ ├── main.py # Точка входа в приложение
│ ├── main_window.py # Основное окно приложения
│ └── table_window.py # Отдельное окно таблицы данных
├──📁data_processing/
│ ├── data_handler.py # Загрузка, сохранение, сортировка данных
│ └── report_handler.py # Обработчик отчётов
├──📁frontend/
│ ├── gui_main_window.py # UI-макет приложения
│ └── align_delegate.py # Делегат выравнивания текста в таблице
├──📁model/
│ └── pandas_model.py # Модель отображения DataFrame в QTableView
├──📁plotting/
│ └── plot_handler.py # Обработка и отрисовка графиков
├──📁static/
│ ├──📁fonts/
│ │ └── Secession_Text.ttf
│ ├──📁resources/
│ │ ├──📁resource_pathes/
│ │ │ └── resource_pathes.py # Пути к иконкам
│ │ ├── arrow_down_24dp.svg
│ │ ├── choice_24dp.svg
│ │ ├── delete_24dp.svg
│ │ ├── file_path_24dp.svg
│ │ ├── fullscreen_24dp.svg
│ │ ├── graph_24dp.svg
│ │ ├── main_icon.ico
│ │ ├── report_24dp.svg
│ │ ├── save_24dp.svg
│ │ └── sort_24dp.svg
│ └──📁styles/
│ └── styles.py # CSS-стили UI-элементов
└──
```
---
## Зависимости
- PyQt6
- pandas
- matplotlib
- reportlab
## Установка
**1. Клонируйте репозиторий:**
```bash
git clone <ваш_репозиторий>
cd client_data_analysing_tool
```
**2. Создайте виртуальное окружение:**
```bash
python -m venv .venv
source venv/bin/activate # Для Linux/macOS
venv\Scripts\activate # Для Windows
```
**3. Установите зависимости:**
```bash
pip install -r requirements.txt
```
**4. Запустите приложение:**
```bash
python core/main.py
```
---
## Использование
**Загрузка данных:**
- Нажмите кнопку "Выбрать файл" и выберите `CSV-файл` для загрузки.
- Путь к выбранному файлу отобразится в верхней части окна.
- Данные из файла отобразятся в таблице.
- Примечание: Файл должен быть в кодировке `utf-8`.
**Сохранение данных:**
- Нажмите кнопку `Сохранить данные` для сохранения изменений в базу данных.
**Сортировка данных:**
- Выберите столбец для сортировки из выпадающего списка.
- Выберите порядок сортировки (возрастание или убывание) из выпадающего списка.
- Нажмите кнопку `Отсортировать` для сортировки данных.
**Построение графиков:**
- Выберите тип графика из выпадающего списка `Тип графика:`.
- В зависимости от типа графика:
- Для гистограммы, столбчатой и круговой диаграмм: выберите столбец для построения графика из выпадающего списка `Столбец:`.
- Для диаграммы рассеяния и линейного графика: выберите ось `X` и `Y` из выпадающих списков.
- Нажмите кнопку `Построить график` для отображения графика в отдельном окне.
**Создание отчета:**
- Нажмите кнопку `Создать отчёт` для создания отчета в формате `PDF`.
- Выберите место для сохранения отчета.
**Раскрытие таблицы:**
- Нажмите кнопку `Раскрыть таблицу` для отображения данных в отдельном окне.
---
## GUI приложения

---
## Построение графиков
### Гистограмма

### Диаграмма рассеяния

### Линейный график

### Столбчатая диаграмма

### Круговая диаграмма

---
## Генерация отчетов
### Пример сгенерированного отчёта

Полный сгенированный отчет можно посмотреть [по этой ссылке](https://drive.google.com/file/d/1mxVdWQeT_ldl8Lcv4AjMIe8qELf0FjDQ/view?usp=drive_link).
---
## Планы на будущее
- Разработка установщика для удобной установки приложения.
- Разработка тёмной темы.
- Расширить обрабатываемые форматы.
---
## Полученный опыт
- Умение работы в команде.
- Работа с Python-фреймворком (PyQt6).
- Ведение проектной и технической документации.
- Управление контролем версий проекта (Git, GitHub).
- Разработка десктоп фронтенд макета приложения (Qt Designer).
- Управление базой данных (SQLite).
- Разработка баз данных (Excel).
- Построение графиков по CSV-данным (pandas, matplotlib).
- Генерация отчётов по CSV-данным (reportlab).
---
## Авторы проекта
- [Бедин Владислав](https://github.com/MindlessMuse666 "Владислав: https://github.com/MindlessMuse666"):
- Team Lead
- Backend
- Frontend
- [Киян Георгий](https://github.com/nineteentearz "Егор: https://github.com/nineteentearz"):
- Backend
- Frontend
- [Вельдяева Александра](https://github.com/FrierenWay "Александра: https://github.com/FrierenWay"):
- Analyst
- Software Tester
- Documentation
- Database
- [Букарев Кирилл](https://github.com/bukabtw "Кирилл: https://github.com/bukabtw"):
- Analyst
- Software Tester
- Documentation
- Database
- [Гаврилова Дженнет](https://github.com/Jenko-zhulenko "Дженнет: https://github.com/Jenko-zhulenko"):
- Frontend
- UI-Designer
- Project Designer
---
## Лицензия
Этот проект распространяется под лицензией MIT - смотри файл [LICENSE](LICENSE) для деталей.
---