Portify v1.0 is an app that adds links to your Spotify playlists to help you buy the music you love.
Portify v2.0 is a pure JS rewrite of the app's back end. The reasons for its migration can be read about in why I rewrote a TypeScript app in pure JS
The front end is currently minimal: it will be (lavishly) redeveloped in Svelte Kit as soon as it's officially released 😀
In the meantime please dig into the code and feel free to raise issues and ask questions!
To build and run locally
git clone git@github.com:oliverturner/portify.git
cd ./portify
npm install
- Rename
demo.env
to.env
- Log in to Spotify's developer portal
- Create a new application and make a note of the resulting
Client ID
andClient Secret
values. - In your renamed
.env
file replace the dummyxxx...xxx
values forSPOTIFY_CLIENT_ID
andSPOTIFY_CLIENT_SECRET
with the values you copied in the previous step
- Run
npm start
to bootstrap the application (check out the architecture explainer if you're interested in what happens in this step) - Open http://localhost:3333 and click "log in" to authenticate with Spotify
- Use the resulting links to see the JSON output from the API endpoints
If you've completed the steps above...
- Run
npm run coverage
to get an idea of what's under test - Run
npm run test:types
to trigger type checking on./src
- no output means everything's working!
If using VSCode these settings enable deeper TS integration
- Open preferences (
cmd + ,
) - Search for
implicitProjectConfig
and enable "Check JS", "Strict Function Types" and "Strict Null Checks" - Search for
implementationsCodeLens
and enable it
Installing the suggested plugins is also helpful