/spotigrate

🎡 БСрвис для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π’ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ с Spotify

Primary LanguagePythonMIT LicenseMIT

Spotigrate

БСрвис для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π’ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ с Spotify

Spotigrate

Production

https://spotigrate.ru
НСвозмоТно ΠΈΠ·-Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ со стороны Spotify Web API

Π›ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ (Development mode)

ВрСбования ΠΊ сСрвСру, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ локальноС Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅:

  • ОБ Windows ΠΈΠ»ΠΈ Linux
  • Python 3
  • Node.js
  • Git
  • Π Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Ρ‹ΠΉ сСрвСр MongoDB

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ для развСртывания:

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° исходного ΠΊΠΎΠ΄Π° ΠΈΠ· рСпозитория:

git clone https://github.com/kaletise/spotigrate.git

Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈ запуск back-end

Linux:
cd spotigrate/common
pip3 install -r requirements.txt
sh run.sh
Windows:
cd spotigrate/common
pip3 install -r requirements.txt
run.bat

ПослС выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ Π²Ρ‹ΡˆΠ΅, Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ common Π±ΡƒΠ΄Π΅Ρ‚ создан ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» config.json, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π² соотвСтствии с Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»
ПослС заполнСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ back-end сСрвСр Π·Π°Π½ΠΎΠ²ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ sh run.sh для Linux ΠΈΠ»ΠΈ run.bat для Windows

Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈ запуск front-end

cd spotigrate/ui
npm install
npm run serve

Π›ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ (Production mode)

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡΡ Π½Π° Ubuntu 18.04/20.04 Π² соотвСтствии с инструкциСй

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»

common/config.json

ΠžΠΏΡ†ΠΈΡ ОписаниС Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
CALLBACK_URI URL, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ послС Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· Spotify. Π”ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° /callback. Если Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ локально ΠΏΠΎ инструкции Π²Ρ‹ΡˆΠ΅ - ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ http://127.0.0.1:8080/callback
DATABASE_HOST АдрСс MongoDB сСрвСра mongodb://localhost:27017/
DATABASE_NAME НазваниС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ MongoDB spotigrate
LOGGER_ENABLE ΠžΠΏΡ†ΠΈΡ, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ Π»ΠΎΠ³Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ/Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ) true
LOGGER_FILE Π€Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π»ΠΎΠ³Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ пустым, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ запись Π»ΠΎΠ³ΠΎΠ² Π² Ρ„Π°ΠΉΠ») debug.log
LOGGER_LEVEL Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ логгирования (1 - error, 2 - warning, 3 - info, 4 - debug) 3
SPOTIFY_APP_ID Client ID прилоТСния Spotify (см. ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Π½ΠΈΠΆΠ΅)
SPOTIFY_APP_SECRET Client Secret прилоТСния Spotify (см. ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Π½ΠΈΠΆΠ΅)

ui/src/config.json

ΠžΠΏΡ†ΠΈΡ ОписаниС Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
SERVER_URI URL back-end сСрвСра. Если Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ локально ΠΏΠΎ инструкции Π²Ρ‹ΡˆΠ΅ - ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ http://127.0.0.1:5000

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Spotify прилоТСния

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Spotigrate Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Spotify ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ авторизация. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  1. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² панСль управлСния Spotify for Developers ΠΈ авторизуСмся Ρ‡Π΅Ρ€Π΅Π· свой Spotify Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚, Ссли потрСбуСтся
  2. НаТимаСм Create an app, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎ заполняСм поля App name ΠΈ App description, соглашаСмся с условиями ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Create
  3. ПослС создания прилоТСния ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ Client ID ΠΈ Client Secret, вставляСм ΠΈΡ… Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» common/config.json Π² ΠΎΠΏΡ†ΠΈΠΈ SPOTIFY_APP_ID ΠΈ SPOTIFY_APP_SECRET соотвСтствСнно
  4. НаТимаСм Edit settings, добавляСм Callback-ссылку (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ http://127.0.0.1:8080/callback) Π² ΠΏΠΎΠ»Π΅ Redirect URIs. ДобавлСнная Callback-ссылка Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΡ†ΠΈΠΈ CALLBACK_URI Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ common/config.json!
  5. НаТимаСм Save, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния. Настройка Spotify прилоТСния Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°