Skip to content

svgbogdnn/MusicRater

Repository files navigation

MusicRater

project for rate the music overall is a web application developed on the Flask web framework, which was used to create the server part in Python. the code is built using OOP, or more precisely, using methods that make it easy to scale and support the application. the frontend is implemented using HTML and CSS. a combination of SQLAlchemy and PostgreSQL is used to manage data: the first provides ORM for working with the database, and the second acts as the database itself. to check the validity of the data, C# code is used, using libraries for working with PostgreSQL. all this is implemented through the subprocess module in Python.

Ниже приведён полный текст инструкции в формате README:


Инструкция по развертыванию проекта с GitHub на локальном устройстве.


1. Установить необходимые инструменты

  • Git – для клонирования репозитория с GitHub.
  • Python 3.7+ (рекомендуется 3.9 или новее) – основной язык для запуска серверной части (Flask).
  • pip или pipenv/poetry – для управления Python-зависимостями.
  • PostgreSQL (вместе с pgAdmin или любым другим инструментом) – для создания базы данных.
  • .NET SDK (или хотя бы .NET Runtime) – для выполнения кода на C# (validators.cs).
    Если у вас уже установлен Visual Studio или Rider с поддержкой C#, то необходимая среда, скорее всего, уже есть.
  • Любая IDE/редактор (например, PyCharm, VSCode, Visual Studio) – для удобного редактирования кода и запуска.

2. Клонировать репозиторий с GitHub

Откройте терминал (или командную строку) в желаемой папке и выполните команду:

git clone https://github.com/svgbogdnn/MusicRater.git

После этого в вашей локальной папке появится директория MusicRater со всеми исходными файлами проекта.


3. Создать и активировать виртуальное окружение (рекомендуется)

Перейдите в склонированную директорию:

cd MusicRater

Затем создайте виртуальное окружение (пример для Windows):

python -m venv venv

Активируйте его:

venv\Scripts\activate

Примечание: Для macOS/Linux команда активации будет:

source venv/bin/activate

4. Установить зависимости для Python

В проекте может быть файл requirements.txt (либо вы можете установить необходимые библиотеки вручную).

Если есть requirements.txt, то в активированном окружении выполните:

pip install -r requirements.txt

Если requirements.txt отсутствует, то, как минимум, нужно установить Flask и SQLAlchemy:

pip install flask sqlalchemy psycopg2

Примечание: Для psycopg2 на Windows может потребоваться дополнительная установка:

pip install psycopg2-binary

либо использование библиотеки psycopg2 через wheel.


5. Настроить PostgreSQL

  1. Запустите сервер PostgreSQL и войдите в pgAdmin (или используйте любую другую консольную/графическую утилиту).

  2. Создайте базу данных (название по умолчанию в коде – musicspoti, судя по фрагменту из app.py):

    CREATE DATABASE musicspoti;
  3. Убедитесь, что в app.py (или другом файле конфигурации) строка подключения к базе данных (SQLALCHEMY_DATABASE_URI) совпадает с вашими учетными данными. Пример:

    app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://postgres:1234@localhost/musicspoti'
    • postgres – имя пользователя;
    • 1234 – пароль пользователя PostgreSQL;
    • localhost – хост, где запущена БД;
    • musicspoti – название базы данных.

При необходимости измените эти значения, чтобы соответствовали вашим настройкам PostgreSQL.


6. Убедиться в наличии .NET для запуска C#-валидаторов

Проект содержит файл validators.cs (или что-то похожее), который запускается через Python с помощью модуля subprocess.

  • Для успешного запуска кода на C# убедитесь, что у вас установлена .NET SDK или .NET Runtime.

  • Проверить можно командой:

    dotnet --version

Если команда не распознаётся, установите .NET SDK.

Важно:
В самом Python-коде, скорее всего, есть что-то вроде subprocess.run(...) или subprocess.Popen(...), где вызывается компилятор C# или команда dotnet run. Убедитесь, что пути указаны корректно, либо в коде не зашит полный путь к csc.exe.
Если в проекте используется Npgsql, то в файле .csproj (или в самой validators.cs) уже должно быть прописано using Npgsql;. При запуске через dotnet run зависимости подтянутся автоматически, если они прописаны в проекте (либо их нужно добавить вручную).


7. Инициализировать базу данных (если нужно)

Если в проекте предусмотрена автоматическая генерация таблиц через SQLAlchemy, то в коде app.py (или в отдельном скрипте) может быть вызов db.create_all(). Обычно это делается так:

from your_app_folder import db

db.create_all()

Убедитесь, что этот вызов есть либо выполните его вручную (например, в интерактивном режиме Python), чтобы в созданной базе появились необходимые таблицы. Если в коде это уже учтено при первом запуске – тогда данный шаг может не потребоваться.


8. Запустить Flask-приложение

Вариант 1: через Python напрямую

Находясь в папке проекта, выполните:

python app.py

После этого в консоли появится сообщение о том, что приложение запущено по адресу, например:

 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

Перейдите в браузере по указанному адресу (по умолчанию http://127.0.0.1:5000/).

Вариант 2: через команду flask run

Если в проекте есть файл app.py с корректной точкой входа (и в системе или в виртуальном окружении установлен Flask), можно выполнить:

flask run

По умолчанию Flask также стартует на порту 5000, и вы сможете открыть приложение в браузере по адресу http://127.0.0.1:5000/.


9. Проверить, что код на C# (валидаторы) запускается

При запуске Flask-приложения (через app.py) может автоматически вызываться скрипт на C# через subprocess. Убедитесь, что:

  1. В коде Python корректно прописано имя/путь к файлу validators.cs или к скомпилированному .exe.
  2. У вас нет ошибок при компиляции кода на C#.
  3. Подключена библиотека Npgsql (как указано в тексте проекта). Если это не прописано – нужно установить пакет через NuGet (если вы запускаете через dotnet или Visual Studio).

Пример установки:

dotnet add package Npgsql

Либо в файле .csproj укажите:

<PackageReference Include="Npgsql" Version="X.Y.Z" />
  1. Если Python не находит C#-компилятор, проверьте, что переменная окружения PATH содержит путь к dotnet или csc.exe.

10. Проверка работы приложения

  • Браузер:

    • Откройте страницу http://127.0.0.1:5000/ (или адрес, который укажет Flask) и проверьте, что главная страница (index.html) доступна.
    • Перейдите на другие маршруты (/songs, /artists, /albums и т. д.), чтобы убедиться, что всё работает.
  • База данных:

    • Убедитесь, что при добавлении/редактировании записей данные корректно попадают в PostgreSQL.
  • Валидаторы на C#:

    • Проверьте, что при добавлении некорректных данных валидатор выдаёт ошибки или предупреждения (как описано в коде).

11. Возможные дополнительные настройки

  • Изменение порта: Если хотите запустить Flask на другом порту (например, 8080), можно указать:

    flask run --port=8080
  • Изменение окружения: Для режима отладки (Debug Mode) задайте переменную среды FLASK_ENV=development или в коде app.debug = True.

  • Развёртывание на реальном сервере: Для продакшена Flask часто используют gunicorn + nginx или подобные решения. Но в рамках локального запуска это не требуется.

About

project for rate the music overall

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published