Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bundit/kord

Spotify, Soundcloud, and YouTube all in one website!
https://github.com/bundit/kord

Last synced: 9 days ago
JSON representation

Spotify, Soundcloud, and YouTube all in one website!

Awesome Lists containing this project

README

        

![kord-logo-small](https://user-images.githubusercontent.com/22352870/103503036-f198e980-4e07-11eb-94a7-e062e8979d36.png)

# Kord App

[Kord](https://www.kord.app): One place for all of your (Spotify | Soundcloud | Youtube) music.

Chromium and Firefox browsers supported only.

## Built With

- [React.js](https://reactjs.org/)
- [Gatsby.js](https://www.gatsbyjs.com/)
- [Redux](https://redux.js.org/)
- [SCSS](https://sass-lang.com/)
- [Express.js](https://expressjs.com/)
- [Postgresql](https://www.postgresql.org/)
- [Passport.js](http://www.passportjs.org/)

## Getting Started

### Prerequisites

- [Node](https://nodejs.org/en/) (v11.12.x)
- [npm](https://www.npmjs.com/get-npm) or [yarn](https://classic.yarnpkg.com/en/docs/install)
- [nvm](https://github.com/nvm-sh/nvm#installing-and-updating)

## Installation and Setup

Express is served on port 8888 (localhost:8888/)

Landing page (Gatsby) is served on port 8000 (localhost:8000/)

Application (Create React App) is served on port 3000 (localhost:3000/app)

### Running The Development Server

Changing your node version (if necessary)

```
$ nvm use 11.12.0
```

Using Yarn:

```
# install dependencies
$ yarn

# start servers
$ yarn dev
```

Using npm:

```
# install dependencies
$ npm install

# start servers
$ npm dev
```

### Environment Variables

#### Server Variables
Development server variables are stored in a ".env" file at root

```
NODE_ENV=development
SPOTIFY_CLIENT_ID=XXXXX
SPOTIFY_CLIENT_SECRET=XXXXX
YOUTUBE_CLIENT_ID=XXXXX
YOUTUBE_CLIENT_SECRET=XXXXX
DATABASE_URL=XXXXX
JWT_SECRET=XXXXX
JWT_TOKEN_EXPIRE=XXXXX

# Callback Variables
SPOTIFY_CALLBACK=XXXXX
SPOTIFY_LINK_CALLBACK=XXXXX
YOUTUBE_CALLBACK=XXXXX
YOUTUBE_LINK_CALLBACK=XXXXX
```

The callback variables handle backend endpoints for Oauth authorization (Redirect URIs). You will need to add these URIs to your list of authorized origins on their respective platforms. Google calls them "Authorized JavaScript origins" and Spotify calls them "Redirect URIs"

```
# Development callback variables
SPOTIFY_CALLBACK=http://localhost:8888/auth/spotify/callback
SPOTIFY_LINK_CALLBACK=http://localhost:8888/auth/spotify/link/callback
YOUTUBE_CALLBACK=http://localhost:8888/auth/youtube/callback
YOUTUBE_LINK_CALLBACK=http://localhost:8888/auth/youtube/link/callback
```
```
# Production callback variables
SPOTIFY_CALLBACK={DOMAIN_BASE}/auth/spotify/callback
SPOTIFY_LINK_CALLBACK={DOMAIN_BASE}/auth/spotify/link/callback
YOUTUBE_CALLBACK={DOMAIN_BASE}/auth/youtube/callback
YOUTUBE_LINK_CALLBACK={DOMAIN_BASE}/auth/youtube/link/callback
```

#### Application Variables
Development app variables are stored in a ".env.development" file in the "client" folder

```
REACT_APP_SC_KEY=XXXX
REACT_APP_YT_KEY=XXXX
REACT_APP_SENTRY_DNS=XXXX
REACT_APP_LAST_FM_KEY=XXXX
```