Team Members: James Baker, Grace Thanglerdsumpan, Angie Cao, Jasper Zhu, Namita Sajai, Avi Upadhyaula
Description:
Loopify is a music discovery platform that uses crowdsourcing to categorize songs into specific vibes. Users create theme-based playlist names, such as “road trip anthems” or “late-night thoughts,” and can vote on whether assigned songs fit the vibe. This platform allows users to collaboratively define playlist moods, making music discovery more community-driven and accurate.
Loopify addresses the challenge of finding music that fits specific moods or themes, which can be limited in traditional, algorithm-driven music platforms. By integrating user-driven playlists with mood-based song matching, Loopify creates a personalized, community-centered music discovery experience.
Crowdsourcing platform
Music lovers of all ages who enjoy exploring and sharing music through mood-specific playlists. This includes anyone from teens to adults who want a more curated way to find songs that match their mood.
Active users gain vibe-matched song recommendations and can earn badges like "Playlist Pro" or "Vibe Guru," rewarding participation and building a music-based community.
Our quality control and aggregation modules can be found in src/backend/quality_control.py
and src/backend/aggregate.py
respectively.
The quality control module implements a two-step approach to ensure data quality:
-
Worker Quality Assessment:
- Identifies low-quality workers by comparing their votes against majority opinions
- Workers with agreement rates below 30% are flagged and their votes are filtered out
- This helps remove potentially random or malicious voting patterns
-
Song Validation:
- For each playlist, calculates the ratio of positive votes for each song
- Songs must receive at least 60% positive votes to be considered valid for a playlist
- Returns validated songs with their confidence scores
Future improvements planned:
- Implement weighted voting based on worker reputation
- Add time-based analysis to detect rapid, potentially low-quality submissions
- Include song metadata analysis to detect outliers
The aggregation module processes validated song data to generate playlist recommendations:
-
Data Processing:
- Takes validated songs from the QC module as input
- Requires minimum 5 votes per song for consideration
- Sorts songs by confidence scores within each playlist
-
Recommendation Generation:
- Creates top 10 song recommendations for each playlist
- Maintains confidence scores for all songs
- Tracks total number of validated songs per playlist
Future improvements planned:
- Implement collaborative filtering for enhanced recommendations
- Add genre and mood-based weighting
- Include popularity metrics in aggregation logic
Point Value: 3
Description:
Loopify's UI/UX is essential for user engagement, enabling users to interact with vibe-based playlists, vote on songs, and tag songs according to moods. An intuitive design encourages more participation.
Milestones:
- Design wireframes for main screens: Playlist Discovery, Song Voting, and Playlist Creation.
- Build interactive elements for playlist creation and voting.
- Gather and apply user feedback to optimize layout and usability.
Point Value: 4
Description:
This component allows users to create, tag, and vote on playlists based on specific moods or themes. A community voting system ensures high-quality recommendations by highlighting top-voted playlists.
Milestones:
- Implement tagging and playlist creation system.
- Build a voting mechanism for playlist and song validation.
- Add moderation features to maintain quality and relevance.
Point Value: 4
Description:
The AI recommendation engine uses user input to suggest songs that match popular vibes, refining recommendations based on voting patterns.
Milestones:
- Develop a machine learning model to suggest songs based on community-curated themes.
- Incorporate feedback loops to improve recommendation accuracy.
- Fine-tune the model to enhance vibe matching precision.
Point Value: 2
Description:
Loopify includes badges and reputation points to incentivize participation. Badges like "Vibe Guru" or "Playlist Pro" recognize user contributions.
Milestones:
- Design badge system and establish tiers (e.g., Playlist Curator, Mood Expert).
- Implement points system for user recognition.
- Define thresholds for badge achievements.
Point Value: 2
Description:
Quality control tools let users report "off-vibe" tags, ensuring that playlists remain on-theme and accurate.
Milestones:
- Build tools for flagging irrelevant content.
- Require a minimum upvote threshold for playlists to be published.
- Use moderation to remove misfit songs and playlists based on community feedback.
Point Value: 3
Description:
A robust backend infrastructure supports playlist data management, user voting, and AI model data, ensuring scalability for high user activity.
Milestones:
- Set up a scalable database to store playlists, tags, and votes.
- Develop APIs to handle data fetching and posting.
- Optimize database performance for real-time user interactions.
Point Value: 2
Description:
This component tracks user engagement, playlist quality, and recommendation accuracy, enabling Loopify to evaluate its success.
Milestones:
- Track metrics like playlist votes, recommendation accuracy, and retention rates.
- Create analytics dashboards to monitor engagement and playlist quality.
- Implement feedback mechanisms to improve the AI model.
Total Point Value: 20
- Frontend and Backend Setup - Initialize basic UI and backend infrastructure.
- Playlist Curation System - Develop the core features for playlist tagging and voting.
- AI Recommendation Engine - Train the AI model with initial user data.
- Gamification and Quality Control - Add badge and moderation systems.
- Data Management and Optimization - Build robust backend data handling for real-time interactions.
- Analytics Integration - Track and analyze user engagement and feedback.
Loopify's success will be measured by:
- User Engagement: Number of active users and playlist contributors.
- Recommendation Quality: Accuracy of vibe-matched playlists based on user feedback.
- Content Quality: Effectiveness of moderation in maintaining playlist relevance.
- Retention Rates: Long-term user engagement and repeat visits.
- Voting System Misuse: Risk of users voting for popular songs rather than vibe-specific matches.
- AI Limitations: Ensuring the recommendation model accurately captures nuanced moods.
- Data Scaling: Managing a large volume of user contributions without compromising performance.
- /backend This folder contains the
aggregate.py
,demo.py
, andquality_control.py
functions; implementing the logic needed to complete the aggregation and QC logic. In order to run these folders, make sure you're currently in the folder (cd backend
) and callpython3 file_name.py
. In this casemfile_name.py
would be eitheraggregate.py
,demo.py
, orquality_control.py
. - /data This folder currently contrains the test data, but we plan to include all relevant data as .csv files inside this folder as well.
- /docs This folder contains relevant submission files related to the screenshot mockups, flowcharts, and this README.md file.
- /frontend This folder contains all files related to rendering and running the frontend of our web-app. The
/public
folder contains images and icons related , while the/src
file contains codes in Javascript and CSS that uses React to render and style different frontend components of Loopify. In order to run this, make sure that you're currently in the folder (cd frontend
), then use node to run:npm install
npm start
.
Welcome to Loopify, where your music expertise helps shape collaborative playlists! Whether you’re a seasoned playlist curator or just a music enthusiast, this step-by-step guide will show you how to contribute effectively to our crowdsourcing efforts. Let’s get started!
Loopify allows you to:
- Select a playlist category (e.g., "hitting the gym").
- Vote on whether specific songs fit that playlist.
- Help create a vibe-packed playlist for the community!
Your input will directly impact the final playlists shared with Loopify users.
- Open your browser and navigate to Loopify.
- You’ll land on the Home Page, which displays playlist categories and a search bar.
- In the search bar, type a keyword related to a playlist you’d like to contribute to (e.g., "gym" or "breakup").
- Select the desired playlist from the dropdown menu.
- Click the Vote button to start voting on songs for that playlist.
- Scroll down to see the playlist categories displayed as cards.
- Click on the card that matches your desired playlist category.
- You’ll be redirected to the voting interface for that playlist.
-
Listen to the Song Preview: - If a song has a preview, you can listen to it directly on the platform by clicking the play button in the embedded audio player. - If no preview is available, click the Listen on Spotify link to hear the full song.
-
Cast Your Vote: - Click Yes if the song fits the playlist’s theme. - Click No if the song doesn’t match the playlist’s vibe. - If you’re unsure, click Skip to move on to the next song.
-
After voting, the platform will automatically load the next song for your feedback.
- Continue voting on as many songs as you like.
- You can revisit other playlists anytime by clicking the Back button or navigating to the Home Page.
- Make sure your device’s volume is not muted.
- If the song preview isn’t available, click the Listen on Spotify link to hear the full track.
- Ensure your internet connection is stable.
- Refresh the page or try accessing the platform on a different browser (e.g., Chrome, Firefox).
- Click the Back button at the top left corner to return to the Home Page.
- Choose a different playlist from the cards or search bar.
If you encounter issues or have questions, don’t hesitate to reach out:
- Email: [email protected]
Your input helps us crowdsource the ultimate playlists for every mood, activity, and vibe. Each vote you cast brings us closer to creating the perfect listening experience for our community.
Thank you for helping build the music magic on Loopify! 🎶