Dragon Beats: Stream, organize, and share the ultimate study and coding playlists.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
- Spotify for Developers Documentation
- Code Commerce's Tailwind Guide
- Scott Chacon's "So You Think You Know Your Git?"
- NPM
To get started with Dragon Beats, just follow these steps:
- npm
npm install npm@latest -g
-
Get a free Spotify API Key at https://developer.spotify.com/documentation/web-api
-
Clone the repo
git clone https://github.com/wickhill/dragon-beats.git
-
Install NPM packages
npm install npm i dotenv npm i axios npm i mongoose
-
Enter your Spotify Developer Client ID and Client secret into an
.env
file you create in your frontend root directory. You can find these Client parameters by going to:
- Spotify Developer's Dashboard --->
- Select your app --->
- Settings --->
- Client ID + click on 'View client secret'
Then, this is what the code in your frontend .env
should look like:
VITE_APP_CLIENT_ID='ENTER YOUR CLIENT_ID';
VITE_APP_CLIENT_SECRET='ENTER YOUR CLIENT_SECRET';
Find Your Focus with Dragon Beats.
Dragon Beats harmonizes your study and coding sessions with curated playlists that sharpen focus without distraction. It's where music transforms from mere background noise to a productivity-boosting soundscape.
-
See our Lucid Board for our ERD and Routes Table.
-
See our Lucid Board for a comprehensive list of our Wireframe and Proposed Features.
-
See our Trello Board for MVP and stretch goals.
DragonBeats originated from our motivation to create a useful application for students who are seeking music to enhance extended study sessions. Built using Spotify's API, DragonBeats integrates our knowledge of third-party APIs, authorization flows, and user accessibility. DragonBeats features genres like Classical, Jazz, and Nature Sounds, with curated playlists designed to support focused study environments.
Account Management: As a user, I want to be able to create an account and update my profile, so that I can personalize my experience and manage my information securely.
Genre Browsing: As a student, I want to easily browse through main study-centric genres like ambient, chill, classical, and jazz, so that I can find music that helps me concentrate and enhances my study sessions.
Music Discovery: As a user, I want to access detailed information about Spotify artists, songs, and albums, so that I can discover new music and deepen my understanding of what I’m listening to.
Sub-genre Exploration: As a user, I want to explore sub-genres of my favorite study-centric music categories, so that I can diversify my musical selections and enhance my focus during study.
Spotify's API uses OAuth 2.0 for authentication. Developers implement the API by obtaining an access token, and then use the token to make authorized requests to various endpoints for data retrieval, data modification (saved tracks, playlists), or even playback.
Spotify's API implements an additional security measure to protect user data and li unauthorized access: access tokens are valid for only one hour. This is common industry practice, reducing the potential for the misuse of tokens.
For additional technical information, please refer to Spotify's API Documentation
From Authorization Code Flow to Client Credentials Flow.
Spotify's API offers comprehensive documentation that supports a variety of integrations, from accessing saved songs to managing playlists. Implementing its full capabilities, such as user-specific data access, typically requires authentication steps including user login via the robust "Authorization Code Flow". This flow, while offering extensive access to user resources and requiring token refresh mechanisms, was initially considered for our project.
However, given its complexity and our project's timeframe, we opted for the more accessible "Client Credentials Flow". This approach, which only requires a secret key and is executed server-side, provides access to a more lied set of features but is significantly easier to implement, fitting our need for simplicity and quick integration.
The design of our app is flexible enough that, with our growing understanding, we feel confident in our ability to implement the full "Authorization Code Flow" and its extensive features in future iterations.
Distributed under the License. See LICENSE.txt
for more information.
- Karina Nova: kbmelody8
- David Lesesne: dlesesne23
- Wick Hill: @wickstarter