Skip to content

An online music streaming modern windows application made using WinUI3.

License

Notifications You must be signed in to change notification settings

FallenDeity/Rhythm

Repository files navigation

Logo

RHYTHM

A simple music player app for Windows 10 and above using WinUI3

Features

  • Built using WinUI3, sports modern fluent design.
  • Windows OS responsive theme and accent color support.
  • Play, Pause, Next, Previous, Shuffle, Repeat, Seek, Volume controls.
  • Realtime music streaming
  • Customized recommendations based on user's listening history.
  • User authentication and profile management.
  • User can create and manage playlists.
  • User can like, follow and save albums, artists and songs.

Screenshots

Main Page Themes
Main Page Themes
Playlist Page Search Page
Playlist Page Search Page
Album Page Artist Page
Album Page Artist Page

Demo

Base WinUi App Setup.

rhythm.mp4

Demo

Setup Repository

You need to add a secret to your github repository to get the workflow actions up and working. Follow the given steps to do so:

  • Right click on your solution folder and click Package and Publish > Create App Packages...

Package

  • For now during development we will use sideloading to distribute artifacts from builds and releases.

SideLoad

Note

SideLoading here enables us to install the app on our local machine without the need of a store. This is useful for development and testing purposes.

  • Click Create and then Yes, select a certificate and then Create again. A pop-up will appear asking for a password. Leave it empty and click OK.

Create

  • Once the process is complete, It will show the following screen and a file named <ProjectName>_TemporaryKey.pfx will be created in your solution folder. Once you have the file, you can close the window by canceling the process.

Cancel

  • Now, you need to get a Base64 encoded string of the certificate file. You can use the following command in windows powershell to get the Base64 encoded string of the certificate file.
$cert = Get-Content -Path "<ProjectName>_TemporaryKey.pfx" -Encoding Byte
[System.Convert]::ToBase64String($cert) | Out-File -FilePath "<ProjectName>_TemporaryKey.txt"

Pfx

Note

Replace <ProjectName> with your project name. The above command will create a file named <ProjectName>_TemporaryKey.txt in your solution folder.

  • Now that you have the Base64 encoded string of the certificate file, you need to add it as a secret to your github repository. Follow the given steps to do so:

    • Go to your repository on github and click on Settings > Secrets > New repository secret.
    • Add a secret with the name BASE64_ENCODED_PFX and paste the Base64 encoded string of the certificate file in the value field.
    • Click Add secret to save the secret.
    • Now, the secret is added to your repository and the workflow actions will be able to use it.

Secrets

Once you have completed all the above steps, you can now delete the certificate file and the Base64 encoded string of the certificate file from your solution folder. Do not commit the certificate file or the Base64 encoded string of the certificate file to your repository.

Installation Instructions

On a successful build, the artifacts will be available in the workflow actions. You can download the artifacts and install the app on your local machine using the following steps:

Go to your repository on github and click on Actions > Latest workflow run.

Artifact

Install the artifact based on your architecture. For example, if you are using a x64 machine, you can install the x64 artifact. Click on the artifact to download it.

Once the artifact is downloaded, extract the contents of the zip file.

Install

Right click on the Add-AppDevPackage.ps1 file and click Run with PowerShell. Grant the necessary permissions and the app will be installed on your local machine.

Run

Note

This process may require you to enable Developer Mode on your machine. You can enable Developer Mode by going to Settings > Update & Security > For developers and then selecting Developer mode.

Environment Setup

You need a working oracle database to run the application. Replace ORACLE_CONNECTION_STRING in DatabaseService.cs with your connection string. Replace SUPABASE_KEY and SUPAEBASE_URL in StorageService.cs with your supabase key and url respectively.