{"id":23443434,"url":"https://github.com/mindlessmuse666/client-data-analysing-tool","last_synced_at":"2026-04-26T22:03:05.371Z","repository":{"id":268340181,"uuid":"904034664","full_name":"MindlessMuse666/client-data-analysing-tool","owner":"MindlessMuse666","description":"Инструмент для анализа данных. Приложение позволяет пользователям загружать данные в формате CSV, фильтровать их, визуализировать ключевые показатели с помощью графиков и создавать отчеты.","archived":false,"fork":false,"pushed_at":"2026-01-27T17:44:59.000Z","size":2004,"stargazers_count":2,"open_issues_count":0,"forks_count":5,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-28T04:06:31.428Z","etag":null,"topics":["data-analysis","desktop-application","matplotlib","pandas","pyqt6","pyqt6-desktop-application","python","sqlite","student-project"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MindlessMuse666.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-12-16T06:04:10.000Z","updated_at":"2026-01-27T17:46:55.000Z","dependencies_parsed_at":"2025-08-26T05:31:26.610Z","dependency_job_id":"82251f63-0677-452d-b225-693adfd5fc2b","html_url":"https://github.com/MindlessMuse666/client-data-analysing-tool","commit_stats":null,"previous_names":["mindlessmuse666/client-data-analysing-tool"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/MindlessMuse666/client-data-analysing-tool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindlessMuse666%2Fclient-data-analysing-tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindlessMuse666%2Fclient-data-analysing-tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindlessMuse666%2Fclient-data-analysing-tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindlessMuse666%2Fclient-data-analysing-tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MindlessMuse666","download_url":"https://codeload.github.com/MindlessMuse666/client-data-analysing-tool/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindlessMuse666%2Fclient-data-analysing-tool/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32314118,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T21:09:39.134Z","status":"ssl_error","status_checked_at":"2026-04-26T21:09:21.240Z","response_time":129,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-analysis","desktop-application","matplotlib","pandas","pyqt6","pyqt6-desktop-application","python","sqlite","student-project"],"created_at":"2024-12-23T18:19:22.038Z","updated_at":"2026-04-26T22:03:05.364Z","avatar_url":"https://github.com/MindlessMuse666.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Клиентский инструмент для анализа данных \u003ca href=\"https://opensource.org/licenses/MIT\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-yellow.svg\" alt=\"MIT-License image\"\u003e\u003c/a\u003e\n\n![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge\u0026logo=python\u0026logoColor=ffdd54) ![Qt](https://img.shields.io/badge/Qt-%23217346.svg?style=for-the-badge\u0026logo=Qt\u0026logoColor=white) ![NumPy](https://img.shields.io/badge/numpy-%23013243.svg?style=for-the-badge\u0026logo=numpy\u0026logoColor=white) ![Matplotlib](https://img.shields.io/badge/Matplotlib-%23ffffff.svg?style=for-the-badge\u0026logo=Matplotlib\u0026logoColor=black) ![SQLite](https://img.shields.io/badge/sqlite-%2307405e.svg?style=for-the-badge\u0026logo=sqlite\u0026logoColor=white) ![Visual Studio Code](https://img.shields.io/badge/Visual%20Studio%20Code-0078d7.svg?style=for-the-badge\u0026logo=visual-studio-code\u0026logoColor=white)\n\nЭтот инструмент предназначен для анализа данных, загруженных из CSV-файлов, их отображения, сортировки, построения графиков и создания отчетов. Приложение написано на **Python** с использованием библиотеки **PyQt6** для графического интерфейса, **pandas** для обработки данных и **matplotlib** для отрисовки графиков, **reportlab** для генерации отчётов.\n\n---\n\n## Особенности\n\n- **Загрузка данных:** Загрузка данных из CSV-файлов с разделителем `;`.\n- **Отображение данных:** Отображение загруженных данных в виде таблицы с возможностью редактирования.\n- **Сортировка данных:** Сортировка данных по выбранному столбцу в порядке возрастания или убывания.\n- **Построение графиков:**\n  - Гистограмма\n  - Диаграмма рассеяния\n  - Линейный график\n  - Столбчатая диаграмма\n  - Круговая диаграмма\n- **Генерация отчетов:** Создание отчетов в формате `PDF` с данными из таблицы.\n- **Сохранение:** Сохранение данных в базу данных `SQLite`.\n- **Открытие последнего файла:** Автоматическое открытие последнего использованного `CSV-файла` при запуске приложения.\n\n---\n\n## Структура проекта\n\n```txt\nclient_data_analysing_tool/\n├──📁core/\n│  ├── main.py             # Точка входа в приложение\n│  ├── main_window.py      # Основное окно приложения\n│  └── table_window.py     # Отдельное окно таблицы данных\n├──📁data_processing/\n│  ├── data_handler.py     # Загрузка, сохранение, сортировка данных\n│  └── report_handler.py   # Обработчик отчётов\n├──📁frontend/\n│  ├── gui_main_window.py  # UI-макет приложения \n│  └── align_delegate.py   # Делегат выравнивания текста в таблице\n├──📁model/\n│  └── pandas_model.py     # Модель отображения DataFrame в QTableView\n├──📁plotting/\n│  └── plot_handler.py     # Обработка и отрисовка графиков\n├──📁static/\n│  ├──📁fonts/\n│  │  └── Secession_Text.ttf\n│  ├──📁resources/\n│  │  ├──📁resource_pathes/\n│  │  │  └── resource_pathes.py   # Пути к иконкам\n│  │  ├── arrow_down_24dp.svg\n│  │  ├── choice_24dp.svg\n│  │  ├── delete_24dp.svg\n│  │  ├── file_path_24dp.svg\n│  │  ├── fullscreen_24dp.svg\n│  │  ├── graph_24dp.svg\n│  │  ├── main_icon.ico\n│  │  ├── report_24dp.svg\n│  │  ├── save_24dp.svg\n│  │  └── sort_24dp.svg\n│  └──📁styles/\n│    └── styles.py    # CSS-стили UI-элементов\n└──\n```\n\n---\n\n## Зависимости\n\n- PyQt6\n- pandas\n- matplotlib\n- reportlab\n\n## Установка\n\n**1. Клонируйте репозиторий:**\n\n```bash\ngit clone \u003cваш_репозиторий\u003e\ncd client_data_analysing_tool\n```\n\n**2. Создайте виртуальное окружение:**\n\n```bash\npython -m venv .venv\n\nsource venv/bin/activate # Для Linux/macOS\nvenv\\Scripts\\activate    # Для Windows\n```\n\n**3. Установите зависимости:**\n\n```bash\npip install -r requirements.txt\n```\n\n**4. Запустите приложение:**\n\n```bash\npython core/main.py\n```\n\n---\n\n## Использование\n\n**Загрузка данных:**\n\n- Нажмите кнопку \"Выбрать файл\" и выберите `CSV-файл` для загрузки.\n- Путь к выбранному файлу отобразится в верхней части окна.\n- Данные из файла отобразятся в таблице.\n- Примечание: Файл должен быть в кодировке `utf-8`.\n\n**Сохранение данных:**\n\n- Нажмите кнопку `Сохранить данные` для сохранения изменений в базу данных.\n\n**Сортировка данных:**\n\n- Выберите столбец для сортировки из выпадающего списка.\n- Выберите порядок сортировки (возрастание или убывание) из выпадающего списка.\n- Нажмите кнопку `Отсортировать` для сортировки данных.\n\n**Построение графиков:**\n\n- Выберите тип графика из выпадающего списка `Тип графика:`.\n- В зависимости от типа графика:\n  - Для гистограммы, столбчатой и круговой диаграмм: выберите столбец для построения графика из выпадающего списка `Столбец:`.\n  - Для диаграммы рассеяния и линейного графика: выберите ось `X` и `Y` из выпадающих списков.\n- Нажмите кнопку `Построить график` для отображения графика в отдельном окне.\n\n**Создание отчета:**\n\n- Нажмите кнопку `Создать отчёт` для создания отчета в формате `PDF`.\n- Выберите место для сохранения отчета.\n\n**Раскрытие таблицы:**\n\n- Нажмите кнопку `Раскрыть таблицу` для отображения данных в отдельном окне.\n\n---\n\n## GUI приложения\n\n![final-program](https://github.com/user-attachments/assets/7b1dcf1e-290a-4d54-842c-7e7d49dea4a9)\n\n---\n\n## Построение графиков\n\n### Гистограмма\n\n![histogram](https://github.com/user-attachments/assets/fc3e63f3-1884-4833-a9d2-92f0ac970f79)\n\n### Диаграмма рассеяния\n\n![scatterplot](https://github.com/user-attachments/assets/ba62677f-4d8c-4fab-9586-946f6cf1bd37)\n\n### Линейный график\n\n![line-chart](https://github.com/user-attachments/assets/9fb356e8-845a-4f79-b8a4-74d8cf46fe44)\n\n### Столбчатая диаграмма\n\n![bar-diagram](https://github.com/user-attachments/assets/359bc1cd-2fc3-4725-8bf9-d8ed32dae141)\n\n### Круговая диаграмма\n\n![pie-diagramm](https://github.com/user-attachments/assets/78d5fdb0-3d20-475a-85a3-99388661bdb8)\n\n---\n\n## Генерация отчетов\n\n### Пример сгенерированного отчёта\n\n![generated-report](https://github.com/user-attachments/assets/c79e57b6-71fd-464d-8028-acf112725c4f)\n\nПолный сгенированный отчет можно посмотреть [по этой ссылке](https://drive.google.com/file/d/1mxVdWQeT_ldl8Lcv4AjMIe8qELf0FjDQ/view?usp=drive_link).\n\n---\n\n## Планы на будущее\n\n- Разработка установщика для удобной установки приложения.\n- Разработка тёмной темы.\n- Расширить обрабатываемые форматы.\n\n---\n\n## Полученный опыт\n\n- Умение работы в команде.\n- Работа с Python-фреймворком (PyQt6).\n- Ведение проектной и технической документации.\n- Управление контролем версий проекта (Git, GitHub).\n- Разработка десктоп фронтенд макета приложения (Qt Designer).\n- Управление базой данных (SQLite).\n- Разработка баз данных (Excel).\n- Построение графиков по CSV-данным (pandas, matplotlib).\n- Генерация отчётов по CSV-данным (reportlab).\n\n---\n\n## Авторы проекта\n\n- [Бедин Владислав](https://github.com/MindlessMuse666 \"Владислав: https://github.com/MindlessMuse666\"):\n  - Team Lead\n  - Backend\n  - Frontend\n- [Киян Георгий](https://github.com/nineteentearz \"Егор: https://github.com/nineteentearz\"):\n  - Backend\n  - Frontend\n- [Вельдяева Александра](https://github.com/FrierenWay \"Александра: https://github.com/FrierenWay\"):\n  - Analyst\n  - Software Tester\n  - Documentation\n  - Database\n- [Букарев Кирилл](https://github.com/bukabtw \"Кирилл: https://github.com/bukabtw\"):\n  - Analyst\n  - Software Tester\n  - Documentation\n  - Database\n- [Гаврилова Дженнет](https://github.com/Jenko-zhulenko \"Дженнет: https://github.com/Jenko-zhulenko\"):\n  - Frontend\n  - UI-Designer\n  - Project Designer\n\n---\n\n## Лицензия\n\nЭтот проект распространяется под лицензией MIT - смотри файл [LICENSE](LICENSE) для деталей.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmindlessmuse666%2Fclient-data-analysing-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmindlessmuse666%2Fclient-data-analysing-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmindlessmuse666%2Fclient-data-analysing-tool/lists"}