Giter Club home page Giter Club logo

wavy's People

Contributors

jamescraig avatar rtman avatar

Stargazers

 avatar

Watchers

 avatar

wavy's Issues

Add content to home screen

Friends playlists?
Recently played?
Favourite artists?
play it again?
Subscriptions?
Most Played
New Artists/Labels (in genres you like)

Maybe random groupings of artists form different genres?

Add play count to songs

Probably need a transaction to update an playCount: int.

30 seconds of a 5 minute song is 10%
30 seconds of consecutive play (no skipping) = 1 play

Can use audio events to measure this.

Fix search - requires raw sql query (for zdb) and sequelize include

Description

Something like this...

      const sqlQuery = `
      SELECT *
      FROM songs
      WHERE songs ==> '*${query}*';`;
        const options = {
          // model: Models.Song,
          // hasJoin: true,
          type: QueryTypes.SELECT,
          include: [
            {
              model: Models.Artist,
              as: 'artist',
            },
            {
              model: Models.Album,
              as: 'album',
            },
            {
              model: Models.User,
              as: 'usersFavourited',
            },
            {
              model: Models.Artist,
              as: 'supportingArtists',
            },
          ],
        };
        ctx.models.Song._validateIncludedElements(options);
        const result = await sequelizeInstance.query(sqlQuery, options);

Currently the include is not working. Might be impossible in sequelize, still looking.

sequelize/sequelize#1830 (comment)
sequelize/sequelize#1875

Figure out how to keep playlists up to date

Subscriptions would be the way, but for now on the playlist context have an update call back that can be used when needed (after creating a playlist so it appears in the context menu for adding songs to playlists)

Implement Tags table

SongTagTable - relating songs to tags
songId
tagId

TagTable - list of all tags
tagId

Add alpha signup code

generateable codes that auth a user to use the alpha, store in local storage once verified.

Add record label table

schema

id: uuidv4
name: string
albums: [album_ids]
songs: [song_ids]
artists: [artist_ids]
description: string

Fix screen layout

Top and botom bar always visible, content is scrollable in between

Add user table/accounts

schema

id: uuidv4
email: string
name: string
following: [artist_ids]
favourites: [song_ids]
playlists: [playlist_ids]
queue: [song_ids]
recentlyPlayed: [song_ids]

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.