Skip to content

MyData — это веб-приложение, предназначенное для работы с большими объёмами данных. Платформа позволяет обрабатывать данные, визуализировать их и создавать интерактивные дашборды

Notifications You must be signed in to change notification settings

QuaRaion/MyData

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MyData: Платформа для анализа больших объёмов данных

MyData — это веб-приложение, предназначенное для работы с большими объёмами данных. Платформа позволяет загружать данные, фильтровать их, визуализировать и создавать интерактивные дашборды.

Стек технологий

Для разработки платформы использовались следующие технологии и инструменты:

  • Python — основной язык программирования.
  • Django — веб-фреймворк для разработки серверной части.
  • PostgreSQL — система управления базами данных.
  • Plotly.js — библиотека для построения интерактивных графиков.
  • Pandas и PyArrow — библиотеки для обработки данных и сохранения их в формате Parquet.
  • HTML, CSS — для реализации пользовательского интерфейса.

Структура проекта

Проект был реализован с использованием фреймворка Django, который предоставляет удобные инструменты для разработки веб-приложений, включая обработку запросов, маршрутизацию, работу с базой данных и интеграцию с фронтенд-частью. Основная цель заключалась в создании платформы для анализа данных файлов, построения интерактивных графиков и создания дашбордов.

Архитектура проекта

Приложение состоит из пяти модулей/приложений:

  1. registrations — регистрация, авторизация:

    • Использует встроенные возможности Django для обеспечения безопасности и управления сеансами.
  2. main — общие настройки:

    • Реализация главной страницы с информацией о сервисе.
    • Реализация окна профиля пользователя для управления аккаунтом.
    • Смена языка и отображения интерфейса.
  3. files — загрузка и обработка файлов:

    • Загрузка файлов в формате CSV, Excel с последующим сохранением в формате Parquet для повышения эффективности работы с большими данными.
    • Функционал для предобработки файлов (настрока типов данных, удаление явных и неявных дубликатов).
  4. charts — построение графиков/чартов и работа с ними:

    • Построение интерактивных чартов с использованием Plotly.
    • Сохранение чартов в БД.
    • Сохранение параметров чарта в формате JSON для последующего восстановления.
    • Возможность экспорта чартов в формате PNG.
  5. dashboards — создание и отображение дашбордов:

    • Объединение нескольких чартов в интерактивный дашборд.
    • Настройка отображения графиков на дашборде.

Каждое приложение реализует отдельную часть логики, что обеспечивает удобство разработки и поддержку модульной архитектуры.

Особенности реализации

  • Для загрузки и обработки данных из файлов используются библиотеки Pandas и PyArrow, что позволяет эффективно обрабатывать большие файлы и сохранять их в формате Parquet.
  • Графики поддерживают интерактивное изменение типа диаграммы и столбцов для построения в реальном времени благодаря интеграции Plotly.js.
  • Все параметры графиков (название, оси, тип и т.д.) сохраняются в базе данных в формате JSON для дальнейшего редактирования и использования в дашбордах.

Разработка выполнена с акцентом на простоту использования и возможность дальнейшего масштабирования платформы.

Установка и запуск

1. Клонирование репозитория

На локальной устройстве перейдите в каталог, где будет размещен проект.

cd <путь_к_вашей_директории>

Создайте в этой папке локальный репозиторий проекта с помощью следующей команды:

git clone [https://github.com/username/repository.git](https://github.com/QuaRaion/MyData

Перейдите в папку проекта с помощью команды:

cd MyData

2. Настройка виртуального окружения

Создайте виртуальное окружение и активируйте его:

На Windows:

python -m venv venv
venv\Scripts\activate

На macOS и Linux:

python3 -m venv venv
source venv/bin/activate

Установите зависимости:

pip install -r requirements.txt

3. Настройка базы данных

Вы можете подключиьт собсвтенную базу данных, для этого откройте файл my_data/my_data/settings.py и найдите там параметры базы данных DATABASES. Вместо стандартного sqllite3 вы можете ввести параметры своей базы данных.

Например, вот способ для подключения БД PostgreSQL:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'имя_базы_данных',
        'USER': 'имя_пользователя',
        'PASSWORD': 'пароль',
        'HOST': 'хост',
        'PORT': 'порт',
    }
}

4. Применение миграций

Подготовьте базу данных (создайте таблицы, куда будут созраняться данные). Для этого выполните миграции с помощью следующих команд:

cd my_data
python manage.py makemigrations
python manage.py migrate

5. Запуск сервера

Запустите сервер на локальном хосте с помощью команды (вы должны находиться в директории 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 готова к использованию!

About

MyData — это веб-приложение, предназначенное для работы с большими объёмами данных. Платформа позволяет обрабатывать данные, визуализировать их и создавать интерактивные дашборды

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •