Giter VIP home page Giter VIP logo

album-drop's Introduction

Hi! I'm Chase, and I am a Full-Stack Web Developer!

I've been coding for over 15 years in the web development industry, primarily building websites and web applications with PHP and JavaScript (and many popular frameworks/libraries), but you can check out a more of my technical skills below!

I am currently working as a software developer for Lighthouse Compliance Solutions.


Back-End Skills

PHP Laravel Node MySQL Linux Apache NGINX Wordpress Joomla Test Driven Development

Front-End Skills

CSS HTML JavaScript React Vue SASS Tailwind


Feel free to reach out to me on any of the platforms below!

        

An image of @cdterry87's Holopin badges, which is a link to view their full Holopin profile

Bottom Image

album-drop's People

Contributors

cdterry87 avatar

Watchers

 avatar  avatar

album-drop's Issues

Playlist limit reached; Accounts can create playlist profiles?

Playlists on Spotify seem to be limited to around ~11,000 songs / ~680 hours and results in an error if that limit is reached and that limit is easy to reach if the site adds songs from every album for every artist the user tracks.

A possible solution is to allow the user to create Playlist Profiles. The user can create a profile and give it a name (ex. the genre of music they want to add) and upload an image if they want. When a profile is created it will create the playlist on spotify with the same name and a description of "Created by Album Drop".

A new page called Playlist Profiles will be created to allow the user to create a playlist profile and it will also show all of the user's playlist profiles. Click on a playlist profile to go to a new page that will allow adding your tracked artists to that playlist profile. This page will also show a list of artists already in that profile with a delete button to easily remove them from the playlist profile.

Then the jobs will need to be modified that add items to playlists to instead handle adding items to playlists for each profile a user has only for the artists in that profile.

Album Drop Playlist vs Album Drop Mega Playlist

Create a new user setting for "new releases" playlist. This option will create a new playlist for the user specifically for "album drops".

The album drop job will then add new songs to the playlist and they will stay there for 30 days. Anything older than 30 days will get removed automatically by the same job.

The current "Album Drop" playlist will be called "Album Drop Mega Playlist" and will be a separate user setting to enable. That way you can have a mega playlist but also have a playlist just to listen to your artists new music.

View album tracks and add to spotify playlist

Spotify::albumTracks('album_id')->get();

This could either be its own page or just a modal window on the album page.

Each track will be listed and an icon will appear next to each track to add to playlist. See if I can implement an "Add All To Playlist" button. User must create playlist on spotify then we can get their playlist with the following code:

Spotify::userPlaylists('user_id')->get();

In the user profile, the user will need to select the playlist they want to link to their account. This is the playlist that will be used when they add a track to their playlist. If the user doesnt have a playlist linked, clicking the add to playlist button should take them to their profile then try to navigate them back when they have a playlist linked.

Create a new user option to create a randomized weekly playlist

The new option will create a new playlist in spotify for the user. This playlist will consist of 100 songs. The songs will be pulled randomly from the user's tracked artists track list and added to the playlist. If the playlist already has existing tracks, they will all be deleted and the new 100 tracks will be added. This job will be run once a week on Mondays early in the morning.

Allow user to subscribe and unsubscribe from the service.

On the edit profile page, add a checkbox add an "I would like to receive emails about upcoming album releases from my tracked artists" checkbox. The field is subscribed and defaults to false. If the box is checked, it will send emails for album drops for the user's tracked artists. If the user unchecks this box they will no longer receive emails.

On the home page, if the user is NOT subscribed (default), a notification will be displayed letting the user know they are not currently subscribed and if they want to receive emails they must subscribe. It will have a "Yes, I would like to receive emails" and a "No, I would not like to receive emails" confirmation buttons.

In the email sent, add an "Unsubscribe" link which has the user's email and unsubscribe token in it which will go to a route defined that checks the user's email and token and sets the subscribed field to false with one click.

Opt-in Album Drop Playlist Creation and Automatically Add Tracks

Create a user setting the user can enable to have Album Drop create a playlist for them on Spotify. Album Drop will then run a job every night for users with this setting enabled. This job will go through the user's tracked artists and start adding tracks from their albums to the Album Drop playlist. Only 100 tracks can be added at 1 time, so multiple calls will be necessary.

When the job runs to send an email of new album releases, those tracks will also be automatically added to the Album Drop playlist.

If the playlist gets deleted in Spotify, turn off the user setting and the user can enable it again to create a new Album Drop playlist.

https://developer.spotify.com/documentation/web-api/reference/#/operations/get-list-users-playlists
https://developer.spotify.com/documentation/web-api/reference/#/operations/create-playlist
https://developer.spotify.com/documentation/web-api/reference/#/operations/add-tracks-to-playlist

Handle case if Spotify doesn't get an album within the first week it's released.

Currently I'm pulling albums and sending an email if they are released that week. If Spotify gets the album a month later for example, an email won't be sent because the release date is more than a week in advance.

Might need another job that will track what albums have been sent to a user in an email and if one hasn't been sent for a new release send it in a separate email.

Friends and Sharing

Add a new friends table and a "Friends" page on the sidebar.

Allow searching for a friend's account to send them a friend request.


Add a share button in the top right corner of albums and artist cards and a new "Shared" page on sidebar

New tables for users_shared_artists and users_shared_albums.

Clicking the share button opens a popup to let the user select one of their friends and it adds the from_user_id, to_user_id, and artist_id/album_id to the respective table. The "Shared" page will display all these entries.


Should we allow users to see their friends tracked artists?

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.