# Wishlist *Features I would like to add, will be completed in any order* - [ ] Pages of song results, to avoid very long pages and large data being sent - [ ] RESTful design - [ ] Change all necesary POSTs to GET,DELETE (probably not PUT) - [ ] Write an api layout - Despite the fact this isn't necesary (nobody but the app should access any url but root) it's probably still a good idea. It's going to be very simple anyway - [ ] Loading indicator while awaiting server stuff - [ ] Refactoring existing code - [x] Remove old comments - [ ] Update the SQL -> Server -> Client pipeline when searching and building playlist - [ ] Verify all if-else sequences are correct and not redundant - [ ] Security Updates - [x] `.env` file for the api keys and other runtime info to be set, rather than in the `.py` files - [x] Hashing rather than plaintext sending passwords (that way at least the password text itself isn't transmitted over the network) - [ ] Actually use SSL, for posting (CORS seems like an issue) - [ ] Accessibility - [ ] Better use of semantic HTML tags - [ ] Full keyboard control (tab, enter to select, tab between control buttons) - [ ] GUI update for client - [x] Playlist items look cleaner - [x] Dark mode - [ ] New Icons - [ ] Google material design (Not sure I want this anymore) - [ ] "Credit" system so each client can only add a set number of songs - Based on time period, number in queue, other possible ideas for credits - Without a login system there's no easy way to give credits to specific clients (and a login is beyond scope of what I want to do) - Potentially a "redemption code" system, which can be tracked client side - All of this is very hackable without a server-side login. ## Completed Features These will still be updated, but they're in a state that I am happy with them - [x] Admin password - [x] Websockets / some method of updating the time remaining to any client on the playlist screen - [x] Set a timeout to change the time (to start) - [x] Send updates to the playlist in real time when songs are added - [x] Update the playlist's html without destroying it (create 1 new element) - [x] Tell clients looking at the playlist when the song has been paused (so they can pause the local timers) - [x] Settings updates - [x] Without re-posting the server (contain update data in websocket ping)