team-work-ai-ecxqua

0
README.md

Student 1: ecxqua

Student 2: BendySonic

Student 3: discocat

Моя роль в качестве Student 2 выполнялась у BendySonic


🎵 Анализ музыкальных чартов

Проект представляет собой автономный Python-модуль для анализа динамики популярности музыкальных треков и жанров на основе синтетических данных чартов. Не требует веб-фреймворков — только pandas и стандартная библиотека.


🧠 Как выполнялась работа

Проект был реализован с помощью вайб-кодинга на основе чёткой технической спецификации.
Генерация и отладка кода проводились с использованием Qwen с фокусом на:

  • Корректность логики агрегации данных
  • Производительность (< 2 сек на 50k строк)
  • Устойчивость к ошибкам (некорректные даты, пропуски)
  • Чёткое соответствие формату вывода (JSON)

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


📁 Структура репозитория

music-charts-analysis/ │ ├── spec/ # 📄 Исходная техническая спецификация │ └── codex.md # Полное ТЗ: функции, форматы, ограничения │ ├── dev/ # 💻 Основной код проекта │ ├── analyze_charts.py # Модуль анализа и генерации: загрузка, агрегация, JSON-вывод │ ├── demo/ # 📊 Результаты выполнения (примеры) │ ├── charts_data.csv # Сгенерированный датасет (50k строк) │ ├── top_artists.json # Топ артистов по жанру и периоду │ ├── popular_genres.json # Тренды жанров: "up", "down", "stable" │ └── track_statistics_<...>.json # Статистика по конкретному треку │ └── README.md # Этот файл

🚀 Как запустить

  1. Создайте виртуальное окружение (опционально):

    uv venv

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

    uv pip install -r requirements.txt

  3. Запустите генерацию и анализ:

    python dev/solution.py → Сгенерирует три JSON-файла в корне (или переместите их в demo/ вручную)

  4. Просмотрите результаты:

    • top_artists.json — лидеры по прослушиваниям
    • popular_genres.json — например: {"Hip-Hop": "up", "Pop": "down", "Jazz": "stable"}
    • track_statistics_*.json — полная статистика по случайному треку

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

✅ Модуль анализа и генерации (dev/solution.py)

  • Создаёт реалистичные чарты в стиле Spotify/Last.fm
  • Внедряет управляемые тренды: рост для Hip-Hop, падение для других жанров
  • Корректно форматирует даты (YYYY-MM-DD)
  • Гарантирует совместимость с pandas без ошибок типов
  • load_music_df()
    — безопасная загрузка с очисткой NaN
  • get_top_artists()
    — фильтрация по жанру и периоду
  • get_genre_evolution()
    — определяет тренд на основе сравнения первой/второй половины периода
  • get_track_statistics()
    — агрегирует данные по треку: прослушивания, позиция, недели в чарте
  • Вывод в строго заданном JSON-формате

⚡️ Производительность

  • Обработка 50 000 строк занимает < 1.5 сек на среднем ноутбуке
  • Используются только векторизованные операции pandas — без циклов по строкам

{ "Hip-Hop": "up", "Pop": "down", "Rock": "down", "Electronic": "down", "Country": "down", "Jazz": "stable", "Classical": "stable" }

📎 Лицензия

Проект создан в образовательных целях. Свободно используйте, модифицируйте и распространяйте.