-
Notifications
You must be signed in to change notification settings - Fork 13
Milestone: v0.1
The primary goal of version 0.1 was to get support for all the core features of the application implemented. These core features include basic track arbitration (round-robin for now), user queue management, and a working first design.
-
(#8) Dynamic updating of user play queue - When a user takes any action in the web interface to modify his or her play queue, it should update in real time to reflect those changes, rather than waiting for the next page load.
-
(#9) Dynamic updating of global play queue - When another user makes a change to his or her personal play queue, it will affect the global play queue. These changes should propagate to other users in a timely fashion and should not need to wait for subsequent page loads to show global queue updates.
-
(#10) Search view for tracks - Developed a view on the player web page to allow for searching of available tracks and a mechanism to add those tracks to the user's play queue.
-
(#17) Developed a working first design - Spruced up the front-end player design to be more visually appealing as well as easier to navigate.
-
(#20) Implement first track selection scheme - Developed the first track selection scheme: round-robin. This is good research for developing a 'plug-in' themed architecture for arbitrary selection schemes to be implemented (i.e. weighted round-robin, random, etc...)
-
(#21) Move configuration into its own file - Started moving important installation-specific values from being sprinkled in the code to be contained within a separate configuration file (config.py). This is an interim step to having all of the application configuration reside in a database table.
-
(#23) Track Management: Delete - Developed a way for users to remove tracks from their queue
-
(#24) Track Management: Reordering - Developed a way for users to reorder the tracks in their queue
-
(#25, #26) Usable queue design - Developed designs for the user and global play queues that contain a lot of overlap for better maintenance.
-
(#3) Store Passwords as Hashes - Stopped storing passwords as plaintext, started storing them as SHA1 hashes for basic first-line security (I think the mechanism actually HMACs everything as well!)
-
(#11) Implement unit testing - Developed unit tests for all testable aspects of the web application.
-
(#27) Implemented IPC mechanism properly - Fixed a bug with the IPC mechanism which is responsible for tracking when the last Mopidy playlist update happened (assists caching semantics with player polling). Previously the synchronization manager for the IPC dict was throwing an exception at some point (being eaten by the GC, maybe?). Now a set of accessor functions simply provide access to a module-level variable.