team-work-ai-Iaroslav.Kharlov

0
README.md

Music Charts Analysis - Team Work AI Project

Проект Django REST API для анализа музыкальных чартов на основе данных Last.fm.

Участники

  • Ревьюер: CW3 [Шевченко Александр]
  • Писал код: tx0 [Тимофей Кулешов]

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

. ├── README.md # Этот файл ├── requirements.txt # Зависимости Python ├── dataset/ # Датасет Last.fm │ └── Last.fm_data.csv ├── spec/ # Спецификации проекта │ ├── codex.md # Общие требования │ ├── dataset.md # Описание датасета │ └── tasks.md # Описание задач ├── tasks/ # Варианты заданий │ └── task_variants.md └── dev/ # 🎯 Django проект (основная реализация) ├── README.md # Подробная документация API ├── examples.py # Примеры использования ├── manage.py # Django management script ├── music_charts/ # Настройки Django проекта └── chart_api/ # REST API приложение ├── analytics/ # Аналитические функции ├── loaders/ # Загрузка данных ├── views.py # API endpoints ├── urls.py # Маршрутизация └── tests.py # Unit тесты

Быстрый старт

1. Установка зависимостей

2. Запуск Django сервера

3. Использование API

API доступно по адресу:

http://127.0.0.1:8000/api/chart/

Endpoints:

  • GET /api/chart/top-artists/
    - топ артистов
  • GET /api/chart/genre-evolution/
    - эволюция жанров
  • GET /api/chart/track-statistics/
    - статистика трека

Пример запроса:

Подробная документация в файле

Основные возможности

Анализ артистов - ранжирование по популярности с фильтрацией по жанру и периоду
Анализ жанров - эволюция популярности жанров по неделям
Статистика треков - детальная аналитика по каждому треку
Обработка multi-genre - корректная работа с треками нескольких жанров
Audio features - анализ музыкальных характеристик треков
Robust error handling - надежная обработка ошибок и edge cases
Unit тесты - comprehensive test coverage

Технологии

  • Python 3.13
  • Django 4.2 - веб-фреймворк
  • Django REST Framework - создание REST API
  • pandas - анализ данных
  • unittest - тестирование

Спецификации

Проект полностью соответствует спецификациям из папки

spec/
:

  • Формат входных данных (CSV) -
    spec/dataset.md
  • Формат выходных данных (JSON) -
    spec/dataset.md
  • Требования к аналитике -
    spec/tasks.md
  • Общие требования -
    spec/codex.md

Тестирование

Тесты покрывают:

  • Загрузку данных
  • Все аналитические функции
  • API endpoints
  • Edge cases и error handling

Автор

Iaroslav Kharlov

Лицензия

Учебный проект