Skip to content

Commit

Permalink
Dotnet core (#23)
Browse files Browse the repository at this point in the history
* Removed project

* Updated docs to barebones

* Updated project title

* Added issue templates

* Updated README

* Created a CONTRIBUTING document

* Created PR template

* Moved templates to docs folder

* Created solution file

* Added WPF project

* Created authentication web application project

* Updated azure pipelines build to basic .NET Desktop template

* Added prism packages

* Updated to prism application

* Updated project metadata

* Updated version

* Created packaging project

* Removed packaging project

* Added code analyser

* Renamed shell to remove conflict

* Configured prism automatic view model locator

* Created resource manifest

* Added replace tokens step to build pipeline

* Added archive files step to build pipeline

* Updated archive files build step to publish drop

* Updated vsbuild build step to dotnet core cli

* Added desktop application location variable

* Added full desktop app path

* Updated dotnet core build step

* Updated dotnet core build step

* Updated dotnet core build step to use variable

* Added web application build step

* Updated README docs

* Added spotify client id and secret app settings

* Added testing text to check app settings post CI build

* Created smallify core project

* Created smallify settings module project

* Updated text formatting

* Added prism dependencies

* Created settings shell

* Created settings button view

* Updated settings shell formatting

* Created region name configuration for settings module

* Registered settings module

* Updated app formatting

* Added settings module content region

* Updated settings module region

* Added editorconfig to appropriate projects

* Removed boilerplate comments

* Created settings button view model and registered with the view

* Created clean outputs script

* Updated README

* Updated README

* Created group names config

* Renamed region names

* Created settings shell view model

* Created section names config

* Added basic content to setting shell

* Added section names to settings shell

* Created general section view

* Registered general section view

* Registered default view for section region

* Created authentication section view

* Registered authentication section view

* Added dependency on smallify core project

* Created simple general settings

* Created smallify settings

* Registered smallify settings as a singleton

* Updated settings shell to manage new region

* Created general section view model

* Created authentication settings

* Removed smallify settings

* Updated general settings

* Registered setting instances

* Updated settings shell width

* Removed testing text from smallify shell

* Updated smallify shell layout

* Registered general settings view model

* Registered authentication settings view model

* Added authentication settings to view

* Installed app center packages

* Start app center with provided id

* Hooked up property changed events to settings

* Subscribed to access token changes

* Added jot to track and persist settings

* Created notifications module

* Created notification region names

* Registered notifications button launch region

* Created notifications button view model

* Created notifications shell

* Updated notifications button to shell

* Created notifications shell view model

* Created notifications content view

* Created notifications content view model

* Created notifications event

* Created player model

* Created player view

* Created player region names

* Registered player content region

* Created player view model

* Added authorisation code setting

* Added authentication token to settings

* Enabled csharp 8 and non-nullable types

* Updated authentication setting view

* Updated assembly name

* Added redirect uri config property

* Added spotify api wrapper library

* Created basic spotify service with authentication

* Registered spotify service

* Added to authentication settings view

* Set default always on top to be false

* Added display name and username properties to authentication view

* Updated styling

* Added application setting changes to git ignore

* Updated git ignore

* Updated documentation

* Updated authentication view

* Updated notifications view

* Created default theme resource

* Updated shell view

* Created button styles

* Updated title buttons

* Added clean outputs script to solution

* Created windows style

* Updated shell style

* Updated settings shell style

* Created window border style

* Updated notifications shell style

* Updated window styles and applied templates to shell and notifications

* Updated settings style

* Updated notifications view

* Updated authentication view and flow

* Updated dependencies

* Updated authentication view to display action based on user

* Updated default style names and colours

* Created basic buttons in the spotify style

* Updated buttons to use templates

* Created about section view

* Updated notifications view

* Updated colour styles

* Created icons dictionary with smallify logo

* Updated nullable feature and set general settings

* Added player functionality

* Updated player commands

* Updated player view with icons

* Initial spotify service refactor to remove external model dependencies

* Interfaced spotify service

* Updated player view

* Added authentication events

* Updated dependencies

* Setup react project

* Added app layout to react project

* Updated home and callback pages

* Updated pages

* Updated footer

* Added github SPA scripts

* Updated pipeline

* Updated config

* Updated msbuild publish step

* Updated the web build step to publish

* Updated build pipeline

* Removed testing function

* Updated spa root

* Updated csproj root

* Updated target files for token replace

* Added smallify icon svg to docs

* Updated favicon

* Updated svg data paths

* Added smallify icon to desktop application

* Updated desktop app to publish as a single exe

* Updated application variables

* Updated build pipeline

* Updated README

* Updated README

* Updated docs

* Updated version

* Updated build trigger
  • Loading branch information
hypzeh authored Dec 2, 2019
1 parent 7e0883e commit 3c0bd4f
Show file tree
Hide file tree
Showing 199 changed files with 18,383 additions and 3,261 deletions.
36 changes: 36 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
name: Bug report
about: Create a report to help us improve
title: "[BUG]"
labels: bug
assignees: hypzeh

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Version [e.g. 22]

**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Version [e.g. 22]

**Additional context**
Add any other context about the problem here.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: "[FEATURE]"
labels: enhancement
assignees: hypzeh

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
8 changes: 5 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,8 @@ paket-files/
__pycache__/
*.pyc

# React build outputs
**/wwwroot/index.html
**/wwwroot/main.js
# wwwroot output
**/wwwroot/
!**/wwwroot/fonts/
!**/wwwroot/404.html
!**/wwwroot/CNAME
34 changes: 15 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,29 @@
![Smallify](./docs/assets/project-title.png)
![Smallify](./docs/.assets/project-title.png)

[![Build Status](https://nick-smirnoff.visualstudio.com/smallify/_apis/build/status/build/smallify-CI?branchName=master)](https://nick-smirnoff.visualstudio.com/smallify/_build/latest?definitionId=13?branchName=master)

---

Smallify is a simple WPF application built to provide a small music player for Spotify.
_Smallify is a WPF application built with .NET Core 3, aiming to provide a simple and minimalistic Spotify experience._

## Usage
![Smallify Screenshot](./docs/.assets/smallify-screenshot.png)

Smallify requires an `Access Token`, which can be generated on user request from `Spotify Accounts Service`, by connecting to a Spotify account, see [Smallify authentication site](https://hypzeh.github.io/smallify).
## Installation

### Requirements
Download the latest [Smallify release](https://github.com/hypzeh/smallify/releases/latest).

## Usage

- Windows 10
- .NET Framework v4.7.2
- Spotify Premium
Smallify is **NOT** a standalone Spotify device, this means that an official Spotify client will be required for audio playback. Spotify Premium is required for modifying playback state.

### Notes
Smallify uses the [Authorization Code Flow](https://developer.spotify.com/documentation/general/guides/authorization-guide/#authorization-code-flow) for authentication. Connect to a Spotify account through the authentication tab in the settings menu.

- Smallify is **NOT** a standalone Spotify device, users will need to have an official Spotify device/application on standby (this will be the audio source)
- Smallify uses [Implicit grant flow](https://developer.spotify.com/documentation/general/guides/authorization-guide/#implicit-grant-flow) for authentication
- Users are directed to `Spotify Accounts Service` with a request for the following permission scopes:
- `user-modify-playback-state`
- `user-read-playback-state`
- `user-read-currently-playing`
- Tokens last one hour
## Contributing

## Screenshots
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

![player-screenshot](./docs/assets/screenshots/player-screenshot.png)
Please reference the [contributing](docs/CONTRIBUTING.md) docs for more information.

## Related Projects
## Similar Projects

- ['Spofy' by eltoncezar](https://github.com/eltoncezar/Spofy) - A Spotify mini player and notifier for Windows
80 changes: 46 additions & 34 deletions Smallify.sln
Original file line number Diff line number Diff line change
@@ -1,58 +1,70 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.28307.168
# Visual Studio Version 16
VisualStudioVersion = 16.0.29209.152
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E3F7BEFD-5048-4056-A38D-F2A38C3CFE53}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{A2A3FE0C-3833-4203-8A56-DE7DBCFA28BE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Smallify.GUI", "src\Smallify.GUI\Smallify.GUI.csproj", "{03065F69-11F8-423D-9E67-0259127D36AE}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Smallify.GUI", "src\Smallify.GUI\Smallify.GUI.csproj", "{07C9AE95-D5D9-4F94-9198-A7AAFE9B0396}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Smallify.Module.Player", "src\Smallify.Module.Player\Smallify.Module.Player.csproj", "{162BD37B-7BF9-43E0-AF85-2D8B9C5ABD1C}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Smallify.Authentication.Web", "src\Smallify.Authentication.Web\Smallify.Authentication.Web.csproj", "{9F79A448-5AD1-444C-85E4-2903DE8333BB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Smallify.Module.Core", "src\Smallify.Module.Core\Smallify.Module.Core.csproj", "{5F8C2791-3D5F-420F-9AB7-4874E2CB5C77}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Smallify.Core", "src\Smallify.Core\Smallify.Core.csproj", "{94E0BA7A-ABC5-4A5A-9BC5-8F71D4BD64F3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Smallify.Module.Notifications", "src\Smallify.Module.Notifications\Smallify.Module.Notifications.csproj", "{519018FC-B512-4CCF-AE34-809524E9DF85}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Smallify.Module.Settings", "src\Smallify.Module.Settings\Smallify.Module.Settings.csproj", "{DDC591BD-B04C-4D30-851C-60BB8D4455F5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Smallify.Module.Settings", "src\Smallify.Module.Settings\Smallify.Module.Settings.csproj", "{167A71C7-F26F-4B84-8BE8-78149BE03FA4}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Smallify.Module.Notifications", "src\Smallify.Module.Notifications\Smallify.Module.Notifications.csproj", "{DF0DCE0F-4297-4DA1-B1EC-7622348CD0DB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Smallify.Module.Player", "src\Smallify.Module.Player\Smallify.Module.Player.csproj", "{21AD1154-2491-4C21-9D12-A7C9CCA687EE}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "scripts", "scripts", "{74AA8BAB-9651-474B-8A8C-BBCDBC328A87}"
ProjectSection(SolutionItems) = preProject
scripts\Clean-Outputs.ps1 = scripts\Clean-Outputs.ps1
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{03065F69-11F8-423D-9E67-0259127D36AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{03065F69-11F8-423D-9E67-0259127D36AE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{03065F69-11F8-423D-9E67-0259127D36AE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{03065F69-11F8-423D-9E67-0259127D36AE}.Release|Any CPU.Build.0 = Release|Any CPU
{162BD37B-7BF9-43E0-AF85-2D8B9C5ABD1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{162BD37B-7BF9-43E0-AF85-2D8B9C5ABD1C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{162BD37B-7BF9-43E0-AF85-2D8B9C5ABD1C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{162BD37B-7BF9-43E0-AF85-2D8B9C5ABD1C}.Release|Any CPU.Build.0 = Release|Any CPU
{5F8C2791-3D5F-420F-9AB7-4874E2CB5C77}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5F8C2791-3D5F-420F-9AB7-4874E2CB5C77}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5F8C2791-3D5F-420F-9AB7-4874E2CB5C77}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5F8C2791-3D5F-420F-9AB7-4874E2CB5C77}.Release|Any CPU.Build.0 = Release|Any CPU
{519018FC-B512-4CCF-AE34-809524E9DF85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{519018FC-B512-4CCF-AE34-809524E9DF85}.Debug|Any CPU.Build.0 = Debug|Any CPU
{519018FC-B512-4CCF-AE34-809524E9DF85}.Release|Any CPU.ActiveCfg = Release|Any CPU
{519018FC-B512-4CCF-AE34-809524E9DF85}.Release|Any CPU.Build.0 = Release|Any CPU
{167A71C7-F26F-4B84-8BE8-78149BE03FA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{167A71C7-F26F-4B84-8BE8-78149BE03FA4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{167A71C7-F26F-4B84-8BE8-78149BE03FA4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{167A71C7-F26F-4B84-8BE8-78149BE03FA4}.Release|Any CPU.Build.0 = Release|Any CPU
{07C9AE95-D5D9-4F94-9198-A7AAFE9B0396}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{07C9AE95-D5D9-4F94-9198-A7AAFE9B0396}.Debug|Any CPU.Build.0 = Debug|Any CPU
{07C9AE95-D5D9-4F94-9198-A7AAFE9B0396}.Release|Any CPU.ActiveCfg = Release|Any CPU
{07C9AE95-D5D9-4F94-9198-A7AAFE9B0396}.Release|Any CPU.Build.0 = Release|Any CPU
{9F79A448-5AD1-444C-85E4-2903DE8333BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9F79A448-5AD1-444C-85E4-2903DE8333BB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9F79A448-5AD1-444C-85E4-2903DE8333BB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9F79A448-5AD1-444C-85E4-2903DE8333BB}.Release|Any CPU.Build.0 = Release|Any CPU
{94E0BA7A-ABC5-4A5A-9BC5-8F71D4BD64F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{94E0BA7A-ABC5-4A5A-9BC5-8F71D4BD64F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{94E0BA7A-ABC5-4A5A-9BC5-8F71D4BD64F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{94E0BA7A-ABC5-4A5A-9BC5-8F71D4BD64F3}.Release|Any CPU.Build.0 = Release|Any CPU
{DDC591BD-B04C-4D30-851C-60BB8D4455F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DDC591BD-B04C-4D30-851C-60BB8D4455F5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DDC591BD-B04C-4D30-851C-60BB8D4455F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DDC591BD-B04C-4D30-851C-60BB8D4455F5}.Release|Any CPU.Build.0 = Release|Any CPU
{DF0DCE0F-4297-4DA1-B1EC-7622348CD0DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DF0DCE0F-4297-4DA1-B1EC-7622348CD0DB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DF0DCE0F-4297-4DA1-B1EC-7622348CD0DB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DF0DCE0F-4297-4DA1-B1EC-7622348CD0DB}.Release|Any CPU.Build.0 = Release|Any CPU
{21AD1154-2491-4C21-9D12-A7C9CCA687EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{21AD1154-2491-4C21-9D12-A7C9CCA687EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{21AD1154-2491-4C21-9D12-A7C9CCA687EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{21AD1154-2491-4C21-9D12-A7C9CCA687EE}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{03065F69-11F8-423D-9E67-0259127D36AE} = {E3F7BEFD-5048-4056-A38D-F2A38C3CFE53}
{162BD37B-7BF9-43E0-AF85-2D8B9C5ABD1C} = {E3F7BEFD-5048-4056-A38D-F2A38C3CFE53}
{5F8C2791-3D5F-420F-9AB7-4874E2CB5C77} = {E3F7BEFD-5048-4056-A38D-F2A38C3CFE53}
{519018FC-B512-4CCF-AE34-809524E9DF85} = {E3F7BEFD-5048-4056-A38D-F2A38C3CFE53}
{167A71C7-F26F-4B84-8BE8-78149BE03FA4} = {E3F7BEFD-5048-4056-A38D-F2A38C3CFE53}
{07C9AE95-D5D9-4F94-9198-A7AAFE9B0396} = {A2A3FE0C-3833-4203-8A56-DE7DBCFA28BE}
{9F79A448-5AD1-444C-85E4-2903DE8333BB} = {A2A3FE0C-3833-4203-8A56-DE7DBCFA28BE}
{94E0BA7A-ABC5-4A5A-9BC5-8F71D4BD64F3} = {A2A3FE0C-3833-4203-8A56-DE7DBCFA28BE}
{DDC591BD-B04C-4D30-851C-60BB8D4455F5} = {A2A3FE0C-3833-4203-8A56-DE7DBCFA28BE}
{DF0DCE0F-4297-4DA1-B1EC-7622348CD0DB} = {A2A3FE0C-3833-4203-8A56-DE7DBCFA28BE}
{21AD1154-2491-4C21-9D12-A7C9CCA687EE} = {A2A3FE0C-3833-4203-8A56-DE7DBCFA28BE}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {0F0DB0EE-6F81-4007-AF03-CB550E87ACB9}
SolutionGuid = {A1064F61-12D7-4255-92BC-71BF30D4D828}
EndGlobalSection
EndGlobal
62 changes: 0 additions & 62 deletions build/azure-pipelines-Smallify-CI.yml

This file was deleted.

54 changes: 54 additions & 0 deletions build/azure-pipelines.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
trigger:
- master

pool:
vmImage: 'windows-latest'

variables:
solution: '**/*.sln'
desktopApplication: '**/Smallify.GUI.csproj'
webApplication: '**/Smallify.Authentication.Web.csproj'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'

steps:
- task: replacetokens@3
displayName: 'Replace Tokens'
inputs:
targetFiles: '**/Resources.resx, **/appsettings.json'
encoding: 'auto'
writeBOM: true
actionOnMissing: 'warn'
keepToken: true
tokenPrefix: '#{'
tokenSuffix: '}'

- task: NuGetToolInstaller@1
displayName: 'Install NuGet tool'

- task: NuGetCommand@2
displayName: 'Restore solution'
inputs:
restoreSolution: '$(solution)'

- task: DotNetCoreCLI@2
displayName: 'Publish desktop application'
inputs:
command: 'publish'
publishWebProjects: false
projects: '$(desktopApplication)'
arguments: '--nologo --no-restore --configuration $(buildConfiguration) --output $(build.artifactStagingDirectory)/desktop'

- task: DotNetCoreCLI@2
displayName: 'Publish web application'
inputs:
command: 'publish'
projects: '$(webApplication)'
arguments: '--nologo --no-restore --configuration $(buildConfiguration) --output $(build.artifactStagingDirectory)/web'

- task: PublishBuildArtifacts@1
displayName: 'Save build artifacts'
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
Binary file added docs/.assets/project-title.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions docs/.assets/smallify-icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.assets/smallify-screenshot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes.
19 changes: 19 additions & 0 deletions docs/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Contributing to Smallify

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

## Getting started

Make sure to check out the [development guide](DEVELOPMENT_GUIDE.md).

## Create a Pull Request

We use [Github Flow](https://guides.github.com/introduction/flow/index.html), so all code changes will happen through pull requests; they are the best way to propose changes to the codebase.

1. Fork the repo and create your branch from `master`.
2. Update the documentation.
3. Create that pull request!

## Any contributions you make will be under the MIT Software License

In short, when you submit code changes, your submissions are understood to be under the same [MIT License](http://choosealicense.com/licenses/mit/) that covers the project. Feel free to contact the maintainers if that's a concern.
23 changes: 23 additions & 0 deletions docs/DEVELOPMENT_GUIDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Development Guide

## Application Settings

Ensure to provide relevant values to the application settings defined in `Resources.resx` and `appsettings.json`, but keep your values secret and out of source control. The CI pipeline replaces token values with a `#{` prefix and a `}` suffix.

- `APP_CENTER_CLIENT_ID` - _(Optional)_ You can get this from [App Center](https://appcenter.ms/)
- `SPOTIFY_CLIENT_ID` - _(Required)_ You can get this from [Spotify Developer Dashboard](https://developer.spotify.com/dashboard/) by registering your personal development client
- `SPOTIFY_CLIENT_SECRET` - _(Required)_ You can get this from [Spotify Developer Dashboard](https://developer.spotify.com/dashboard/) by registering your personal development client
- `SPOTIFY_REDIRECT_URI` - _(Required)_ You define this from [Spotify Developer Dashboard](https://developer.spotify.com/dashboard/) whilst registering your personal development client

You can use the following commands to include/exclude a path from Git's management, this can help keep your secrets out of source control.

```shell
git update-index --skip-worktree src/Smallify.GUI/Properties/*
git update-index --no-skip-worktree src/Smallify.GUI/Properties/*
```

## Scripts

Useful scripts can be found in the `/scripts` folder.

- `Clean-Outputs.ps1` - Run this to clean out all the `bin` and `obj` folders
Loading

0 comments on commit 3c0bd4f

Please sign in to comment.