Github Link: https://github.com/csc301-2024-s/25-pnyx
PNYX is a music platform focused on discovering unreleased and exclusive tracks in a fun and 'gamified' way. This platform aims to present music without the bells and whistles of visual presentation, promotional budgets, and other influencing factors that don't involve content quality. It offers users a unique experience by allowing users to discover music using the ML system, purchase music and merchandise, and partake in a unique listening experience with plenty of options regarding genre, shuffling methods, and song name visibility. The platform uses a machine learning system for better-tailored music recommendations and a fun game-like discovery process using daily regenerating tokens, promoting content quality and discovery.
The introduction does a great job of introducing me to the solution, less so the problem. While I can infer what the problem is given the detailed feature and explanation of what the product is, there should also be a separate section detailing why the music platform exists in isolation from it's larger competitors like Spotify and apple music; why is popularity a bad thing? is the metric not accurate for the most amount of people, or is it that this platform specifically targetting users that want a niche listening experience? that is what I understand from the demo video and readme, but specifically listing the pros and cons as well as target demographics would help paint the whole picture. Other than that, the project demo and general readme are described well; short and sweet, and the feature list is to the point without any needless wording. I was well able to understand what this music platform would look like and its key draws, which is a more honest, gamified, and interactive listening experience with additional functionality surrounding merchandise and payment options. In summary, I think adding a section that can detail the problem that the software aims to solve would be very helpful in understanding the need for this software, and in that section, you can detail the differences between this new platform and existing solutions.
The aesthetics look great, love the purple! the pages are all well-populated and laid out. in terms of the core machine learning feature, it's hard to verify that the algorithm works if all the inputs are pre-set. forward and back buttons are simple functionality which should be included. the blind player looks great! The sound quality is great! song reveal function works just as detailed. images for the song should be implemented as it is also basic functionality. The perks page looks good aesthetically, but why do songs have quantity? is that a specific feature requested? otherwise, I would remove it. does the progression bar represent how far you are in the song move? it starts at seemingly 10% into the song (at least that's what it looks like) but isn't shown to move. I think that the demo is good for the most part, but the actual product leaves a lot to be desired; the app should have probably completed basic functionality before moving on to the more impressive features; as a music-playing app, basic music functionality is a necessity.
The graphic in the video leaves a bit to be desired. I think the breakup makes sense, but can be aesthetically better to represent the information. There are also simple, to-the-point bullet points but then long complicated sentences that throw off my focus. It is also hard to read the longer sentences from the graphic. The frontend, backend, and machine learning explanations were very detailed and helped me understand what the team was doing. The machine learning was a lot more detail, which I think was warranted due to its higher technical nature; however, I wish the frontend and backend had more detailed graphics like the ML side to help better explain each sub-area (the verbal explanations were great though). Key learnings were great, component breakup of react code is a very good thing to learn! backend key learning was fairly general and wasn't a backend key finding but rather a communication problem; this was kinda the same key learning as the machine learning section. I disagree with the "too much research time" key finding; research is VERY important, and there is a fixed amount of research time that is required when learning new technologies. What might be more accurate to the problem is focused research and making sure you are researching what you'll be implementing/using.
The frontend and backend readme do well to detail the installation instructions to get the respective part working locally. I couldn't find a user readme or a developer readme, which does leave a lot to be desired in the documentation aspect. I think for the developer, the code is commented well enough to understand the main features and how to contribute to them, and the demo video does a great job at explaining how to use the app, I just think maybe having a section in your readmes about the features in more granular detail would be helpful. For example, a developer readme could detail the library you guys used and why or maybe areas of the tech that are important for maintenance. The user readme should just be your demo video but written down, less of a need since the video does exist but it is helpful to have it in written format. The backend endpoints are well documented. I think the documentation is very well written and concise, and explains all you need to know as a developer, but less as a user.
Deployment was simple and very well documented. When I inputted an incorrect email, the page just removed the email input form and all text, leaving a blank page. I had to refresh to refresh the page for it to reappear. Verification worked well, the email was sent and the time password worked well. When on the song selection page, why are there two scroll bars for the song input? Also, the text implies you can select more than 1 song but couldn't figure out how. After generating my playlist, the page went blank and was unresponsive. I refreshed the page and had to verify my email again (shouldn't it email me only the first time I registered or logged in?) and picked a different song where the hidden song generation worked. The player worked well, song quality was good; the pause button works, but the skip and rewind song doesn't. The song progress bar seems to be static and doesn't move, and it starts at like 10% into the song. Tap to reveal works to bring me the song information page, but uses ANOTHER player meaning that if I had the song still playing, it would play twice at the same time when I start the other player. I also do not know how to stop the old player and cannot turn off this music. The payment page looks good, a lot of the fields seem to be static and not connected to anything. it properly consumes my 'hidden' currency in the top left. There are no navigation options for me to return to a previous page or a homepage, leaving me forced to refresh the website when on the payment page. Also, the payment page said that more details on the song I just purchased would be sent to my email, but I didn't receive anything. One note is that there is a specific note to use the inspect element to change the webview to a more mobile view which is what is intended for the app; if that's the case what is the point of hosting the frontend on a website at all? an APK with a QR code where users can download the app on their phone would be a more effective implementation, or just limiting the width of the page to the mobile screen size you are trying to use. I think this app needs a lot more core components like proper navigation features and quality of life features to make it easier to use, but that will also come with time as the project further develops.
Great job guys, the app looks amazing but there is area for improvement! Obviously all the changes I suggested would be time consuming and not all of them are expected of you from this course (I think) but are places of improvement if you wanted to better expand your app.