MyData — это веб-приложение, предназначенное для работы с большими объёмами данных. Платформа позволяет загружать данные, фильтровать их, визуализировать и создавать интерактивные дашборды.
Для разработки платформы использовались следующие технологии и инструменты:
- Python — основной язык программирования.
- Django — веб-фреймворк для разработки серверной части.
- PostgreSQL — система управления базами данных.
- Plotly.js — библиотека для построения интерактивных графиков.
- Pandas и PyArrow — библиотеки для обработки данных и сохранения их в формате
Parquet. - HTML, CSS — для реализации пользовательского интерфейса.
Проект был реализован с использованием фреймворка Django, который предоставляет удобные инструменты для разработки веб-приложений, включая обработку запросов, маршрутизацию, работу с базой данных и интеграцию с фронтенд-частью. Основная цель заключалась в создании платформы для анализа данных файлов, построения интерактивных графиков и создания дашбордов.
Приложение состоит из пяти модулей/приложений:
-
registrations — регистрация, авторизация:
- Использует встроенные возможности
Djangoдля обеспечения безопасности и управления сеансами.
- Использует встроенные возможности
-
main — общие настройки:
- Реализация главной страницы с информацией о сервисе.
- Реализация окна профиля пользователя для управления аккаунтом.
- Смена языка и отображения интерфейса.
-
files — загрузка и обработка файлов:
- Загрузка файлов в формате
CSV,Excelс последующим сохранением в форматеParquetдля повышения эффективности работы с большими данными. - Функционал для предобработки файлов (настрока типов данных, удаление явных и неявных дубликатов).
- Загрузка файлов в формате
-
charts — построение графиков/чартов и работа с ними:
- Построение интерактивных чартов с использованием
Plotly. - Сохранение чартов в БД.
- Сохранение параметров чарта в формате
JSONдля последующего восстановления. - Возможность экспорта чартов в формате
PNG.
- Построение интерактивных чартов с использованием
-
dashboards — создание и отображение дашбордов:
- Объединение нескольких чартов в интерактивный дашборд.
- Настройка отображения графиков на дашборде.
Каждое приложение реализует отдельную часть логики, что обеспечивает удобство разработки и поддержку модульной архитектуры.
- Для загрузки и обработки данных из файлов используются библиотеки
PandasиPyArrow, что позволяет эффективно обрабатывать большие файлы и сохранять их в форматеParquet. - Графики поддерживают интерактивное изменение типа диаграммы и столбцов для построения в реальном времени благодаря интеграции
Plotly.js. - Все параметры графиков (название, оси, тип и т.д.) сохраняются в базе данных в формате
JSONдля дальнейшего редактирования и использования в дашбордах.
Разработка выполнена с акцентом на простоту использования и возможность дальнейшего масштабирования платформы.
На локальной устройстве перейдите в каталог, где будет размещен проект.
cd <путь_к_вашей_директории>
Создайте в этой папке локальный репозиторий проекта с помощью следующей команды:
git clone [https://github.com/username/repository.git](https://github.com/QuaRaion/MyData
Перейдите в папку проекта с помощью команды:
cd MyData
Создайте виртуальное окружение и активируйте его:
На Windows:
python -m venv venv
venv\Scripts\activate
На macOS и Linux:
python3 -m venv venv
source venv/bin/activate
Установите зависимости:
pip install -r requirements.txt
Вы можете подключиьт собсвтенную базу данных, для этого откройте файл my_data/my_data/settings.py и найдите там параметры базы данных DATABASES. Вместо стандартного sqllite3 вы можете ввести параметры своей базы данных.
Например, вот способ для подключения БД PostgreSQL:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'имя_базы_данных',
'USER': 'имя_пользователя',
'PASSWORD': 'пароль',
'HOST': 'хост',
'PORT': 'порт',
}
}
Подготовьте базу данных (создайте таблицы, куда будут созраняться данные). Для этого выполните миграции с помощью следующих команд:
cd my_data
python manage.py makemigrations
python manage.py migrate
Запустите сервер на локальном хосте с помощью команды (вы должны находиться в директории MyData/my_data, где находится файл manage.py):
python manage.py runserver
В терминале должен быть вывод следующего вида:
System check identified no issues (0 silenced).
December 24, 2024 - 21:16:31
Django version 5.1.2, using settings 'my_data.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Чтобы начать работу с приложением перейдите по ссылке, которая отобразилась в терминале, либо откройте в браузере адрес http://127.0.0.1:8000/.
Теперь MyData готова к использованию!