team-work-ai-Iaroslav.Kharlov
4 месяца назад
4 месяца назад
4 месяца назад
4 месяца назад
4 месяца назад
4 месяца назад
4 месяца назад
4 месяца назад
4 месяца назад
4 месяца назад
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/
Пример запроса:
Подробная документация в файле dev/README.md
Основные возможности
✅ Анализ артистов - ранжирование по популярности с фильтрацией по жанру и периоду
✅ Анализ жанров - эволюция популярности жанров по неделям
✅ Статистика треков - детальная аналитика по каждому треку
✅ Обработка 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
Лицензия
Учебный проект