-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO
117 lines (99 loc) · 4.19 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
TODO:
todo:
- grouping and community detection/coloring
12/6/22:
In progress:
- load testing
- update max nodes parameter
- still experiencing some occasional rate-limiting problems...
- maybe we can do dynamic rate detection?
Finished:
- size of artist based on number of tracks
- tested scaling feature, decided to disable w/ feature flag for now
- since there are so many nodes, the scaling is not actually very compelling
- I think the more interesting insights are just from the natural clustering in the graph, which already works great
- adding options to use tracks from a playlist instead
- Add dropdown of playlists to retrieve tracks from
- load testing
- update max nodes parameter: getting rate limiting at 1500 nodes, 39 reqs per second.
- should we remove low degree nodes?
- probably not, there aren't that many and they're nicely clustered
- might identify indie artists/your unique taste
- making graph more efficient, so we can support more nodes
- added stabilization call here, need to update time remaining counter properly
- updated physics settings for forceAtlas2Based
12/5/22:
In progress:
Finished:
- checking github actions work
- readme
- deployment
- deploying to firebase hosting. free and easy to use? can also add custom domain later
- also made an auto-generated CD github workflow
- update favico
- use env variables
- add logout button
- base background graph
- UI work
- adding hamburger about menu, feels super clean
- can potentially use for settings/more graph options in the future
- maybe try to get some better color palettes, more colorful or smth
- try to look up some examples
- also update fonts
- working on html templates/structure and css styles
- spotify access token refresh
- how to get graph data without rate limiting
- adding timeouts
- moved graph service into graph component
- don't really need the separate service
- also lets us do loading and time remaining and stuff
- images work pretty easily
12/4/22:
In progress:
- spotify access token refresh
Reflections:
- highly productive day today, went from project initialization to already 50% working in one day
- spotify auth flow was hella aids cuz of the different string encoding stuff
- also doing the hashing was not easy, but esp the encoding breaking the libraries was lame
- apis themselves working nicely
- need to do access token refresh
- graph library turned out to be more or less plug and play, hope it will be robust enough for the desired features
- need to make it look pretty
- need to figure out grouping
- need to see if it can handle the full data amounts (from me is prob like >2k artists)
- had some more practice with angular and observables, honestly seems kinda cringe
App components:
- menu-bar
- graph
- auth-overlay
App services:
- auth service
- handles auth redirect and auth callback (routing)
- graph service
- spotify api service
- wrapper for spotify api requests
- include the auth token state here
- auth service puts token here
- graph service requests will be automatically authorized
Finished:
- spotify api requests working
- spotify auth flow w pkce challenge
- test graph library
- maybe can use test data?
- yes, I think can generate data first before doing full spotify api integration by just downloading json responses from docs for my data
- start angular project setup
- set up typescript linting
- brainstorm components skeleton
12/3/22:
Initial brainstorm:
- Main idea is to visualize your Spotify artists in graph form
- related artists (collected via api) are connected in the graph
- the idea is that artists will be clustered by genre, but there might be interesting connections between certain clusters
Implementation details:
- learning Angular to build webapp
- probably just need the frontend, can probably be single page (login overlay, then when signed in it generates the graph)
- add settings and stuff in a sidebar to make it prettier
- integrate with spotify apis, should be not bad since they have p thorough docs
- find a good graph library, so far visjs looks like it should be good enough
- use artist images as nodes, with hover labels (or toggleable?) of their names
- any cluster/edge coloring?