wavy's People
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?
Move playlist functions from user context to playlist context
Build track player queue, with add to queue, replace queue functionality
For now store queue in local storage.
Add nav buttons to top bar
Home/Search
Playlists
Following
Favourites
Review gql schema, delete redundancies
Add ogg support for browsers that don't natively support it
https://github.com/brion/ogv.js/
Safari doesn't natively support ogg, and others I believe. Most do however.
Speed up Search
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.
Simplify graphql type typescript sequelize model repetition
update ui with mui theme,grid,typography,container etc
add circle ci
Description
Screenshots
Decide how to properly link user to playlists
User has playlist_ids
Playlist has user_ids
Bidirectional connection not necessary
Most likely switch to:
Playlist:{
...
owner: id,
collaborators: id,
}
optimize usage of context
Add graphql subscriptions
https://www.smashingmagazine.com/2018/12/real-time-app-graphql-subscriptions-postgres/
https://www.graphile.org/postgraphile/subscriptions/
https://github.com/GraphQLCollege/graphql-postgres-subscriptions
User
Following
Favourites
Recently Played
Playlists
Playlists
Songs
Following - UI + Query + Mutations
Fix play state issues, pause, seeking, playing all should work
Create reuseable ui components for artist/album screens
Album
Song
Album with songs.
Make all routes private unless alpha code verified
At this early stage we only want people who have the alpha code to be able to use the app.
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.
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)
Figure out new design that doesn't skew header images - Responsive
Implement Tags table
SongTagTable - relating songs to tags
songId
tagId
TagTable - list of all tags
tagId
use transaction to add/remove songs to/from playlist
Move from pre push to pre commit and use lint staged
Description
Screenshots
Finish implementing auth - login + logout
Update bottom bar UI
Fix spacing, font sizing, make it scale properly
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
Switch to either TypeORM or Objection
Fix screen layout
Top and botom bar always visible, content is scrollable in between
split search into song/artist/album/playlist
When a user searches there should be 4 tabs of search results defaulting to song.
fix pre commit hooks, stopped working
Description
Screenshots
add password encrypting via bcrypt with hash/salt - Graphql
Add playlisting
Allow skip previous to go to beginning of track
TBD skip previous go to beginning or previous track
Be explicit with graphql keys
song_ids = [ID]
songs = [Song]
Add queue screen
Seed development with more demo songs/artists/albums
Add context menu for albums, songs, artists,
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]
fix eslint
Description
Screenshots
Favouriting - UI + Query + Mutations
Add Album screen
click on album -> album screen
click on song -> album screen
Unify data key naming across gql queries
id -> song_id etc.
figure out if duration is necessary
Speed up image loading
Implement supporting artists on songs
move ids to uuid v4
Fix eslint pre commit issue
Figure out how to import local packages into other local packages
Specific use case would be to re use types defined in graphql in web
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.