Code Monkey home page Code Monkey logo

dragon-beats's Introduction

Contributors Forks Stargazers Issues MIT License LinkedIn


Icon

Dragon Beats

Dragon Beats: Stream, organize, and share the ultimate study and coding playlists.
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap to Dragon Beats: ERD, Route Table, Trello, and More!
  5. Screenshots
  6. License
  7. Contact
  8. Acknowledgments

About The Project


"Tune in. Code out. Study smarter."

Project Team:

Quick Links:

(back to top)

Built With

  • React
  • Tailwind CSS
  • Spotify
  • NPM
  • jQuery
  • ChatGPT
  • DallE

(back to top)

Getting Started

To get started with Dragon Beats, just follow these steps:

Prerequisites

  • npm
    npm install npm@latest -g

Installation

  1. Get a free Spotify API Key at https://developer.spotify.com/documentation/web-api

  2. Clone the repo

    git clone https://github.com/wickhill/dragon-beats.git
  3. Install NPM packages

    npm install
    npm i dotenv
    npm i axios
    npm i mongoose
  4. 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';

(back to top)

Usage

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.

(back to top)

Roadmap

  • 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.

(back to top)

Project Origins

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.

(back to top)

User Stories

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.

(back to top)

Spotify API

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

(back to top)

Hurdles

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.

(back to top)

Screenshots

Dragon Beats Playlists

Dragon Beats Login Page

(back to top)

License

Distributed under the License. See LICENSE.txt for more information.

(back to top)

Contact

(back to top)

Acknowledgments

  • General Assembly Class #1204
  • Digital Dragons Code Crew
  • Caffeine

(back to top)

dragon-beats's People

Contributors

wickhill avatar kbmelody8 avatar dlesesne23 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.