Software Design Description - CankayaUniversity/ceng-407-408-2024-2025-EmoTagger-A-Community-driven-Emotion-Annotation-Tool GitHub Wiki

Software Design Description

1. INTRODUCTION

1.1 Purpose

The purpose of this document is to outline the design for developing a web application where users label music files based on their emotional impact. This project leverages crowdsourcing to gather a diverse range of interpretations regarding the emotional content of music, ultimately creating a comprehensive dataset that reflects how different listeners respond emotionally to the same pieces of music. Our goal is to compile a dataset of over 100 labeled music files, representing a wide spectrum of emotional reactions from users.

To maintain high levels of user engagement, the application will incorporate gamification elements such as points, badges, and levels. These features aim to make the labeling process more enjoyable and rewarding, encouraging active participation. Users will be able to track their progress, join challenges, and view their rankings on leaderboards, introducing a competitive and entertaining aspect to the experience. This approach is designed to foster sustained engagement, contributing to the project's goal of gathering an extensive and accurate set of emotion-based music labels.

1.2 Scope of the Project

The core functionality of this application is to provide a platform where users can listen to curated music tracks and express their emotional responses by selecting from a range of predefined emotion categories. This process aims to capture diverse emotional feedback that will help create a comprehensive dataset, useful for understanding how different types of music affect listeners emotionally. The platform appeals to a wide range of users, from casual listeners seeking self-reflection to music enthusiasts, researchers, and those interested in exploring how music influences emotional well-being.

By allowing users to select from a set of emotion tags such as "Happy," "Sad," "Energetic," or "Relaxed," the application provides a structured, yet user-centered way of recording emotional data. This dataset serves as the foundation for future analysis and research across fields like music therapy, psychology, and data science, offering insights into patterns like common emotional responses to certain genres, tempos, or lyrical themes. It is designed to allow for in-depth exploration of how demographics and personal background may impact emotional responses to various music elements.[4]

Key features of the app include:

  • Emotion Labeling and Survey Feedback Collection: Users listen to each music file and choose an emotion that aligns with their experience. Additionally, they have the option to provide more detailed feedback, describing how the song impacted them personally. This data captures not only immediate emotional reactions but also in-depth, nuanced responses that contribute to a richer understanding of music’s emotional impact.

  • Gamification Elements: By integrating points, badges, levels, and leaderboards, the app encourages ongoing participation, making the labeling process more engaging and rewarding. These elements help foster a competitive and fun environment, where users are motivated to track their progress, participate in challenges, and view their standings on leaderboards. Gamification not only boosts engagement but also aids in collecting a larger, more accurate dataset.[2]

  • Interactive User Profiles and Emotion Tagging: Each user’s emotional responses and survey results are saved in a personalized profile, which includes interactive elements like mood charts, timelines, and visual graphs. This profile allows users to reflect on their emotional journey through music over time, identifying trends, such as times when they feel more relaxed or energized, or observing preferences for certain genres. Users can filter their emotional data by genre, song, or artist, helping them gain insight into how music impacts their mood.

  • Data Analytics and Reporting for Researchers and Administrators: Administrators and researchers can use the collected data to perform real-time emotional trend analysis. A comprehensive analytics dashboard enables detailed reporting, with options to view data filtered by demographics, music genre, emotion tags, and more. Advanced tools like heat maps and emotion-based charts provide a visual representation of emotional trends, helping to identify patterns and refine music selection or emotional tags. The data insights derived from this analysis could prove valuable in music therapy, entertainment, advertising, and other fields interested in the psychological impact of music.

  • Personalized Music Recommendation Engine: Based on users' emotional responses, the app will offer tailored music recommendations. For instance, if a user frequently tags songs as "Energetic" or "Happy," the system will recommend more upbeat tracks that align with these emotions. Conversely, if the user selects "Calm" or "Reflective," they will receive suggestions for more introspective or soothing music. The recommendation engine adapts over time, becoming increasingly personalized as it learns from users' ongoing feedback.

  • Community and Social Features: To foster a sense of community, the app includes social features where users can connect with friends, share emotional responses, compare profiles, and join discussions on how music influences emotions. Features like shared playlists or collaborative surveys, where users create and share music lists focused on specific emotions (e.g., "Relaxing Tunes" or "Energetic Beats"), add an interactive and social aspect to the platform, enhancing user engagement.

  • Privacy and Data Security: Given the sensitivity of emotional and personal data, robust security measures are implemented. The application will comply with data privacy regulations (e.g., GDPR), ensuring responsible data handling practices. Users have control over their data and may delete their accounts if desired.[5]

This document provides essential guidelines for developers, project managers, and stakeholders to ensure clarity on the project’s purpose, functions, and objectives. It aligns all phases of development to meet user needs and deliver an engaging, user-centered experience. Ultimately, this project aims to gather valuable emotional data and enhance users’ understanding of how music affects their emotions.



1.3 Glossary

Term Definition
AI (Artificial Intelligence) The simulation of human intelligence by machines, often used in data analysis, pattern recognition, and emotion prediction. AI enables EmoTagger to process and analyze emotional data to improve recommendations.
API (Application Programming Interface) A set of protocols and tools allowing different software applications to communicate and share data, enabling EmoTagger to integrate with third-party services like music platforms.
Annotation The process of labeling or tagging data (in this case, music) with relevant information, such as emotions, to make it useful for machine learning and analytics.
Backend The server-side part of EmoTagger, where data processing, storage, and retrieval are managed. This supports functionalities such as data storage, emotion analysis, and user management.
Crowdsourcing The process of gathering input from a large group of people online, used in EmoTagger to collect emotional labels from a diverse user base, enhancing the emotional dataset and improving machine learning models through varied perspectives.
Community Engagement A feature allowing users to interact, share, and discuss their emotional responses to music within EmoTagger, creating a social and interactive experience.
Classification In the context of EmoTagger, the grouping of music based on emotions, moods, or other factors for easier recommendation and analysis.
Data Annotation Specifically for audio and music, this involves categorizing and tagging audio files based on predefined emotional criteria, which becomes valuable training material for AI and ML applications.
Data Privacy Measures ensuring that user information and emotional responses are protected from unauthorized access, adhering to legal and ethical standards.
Data Repository A centralized storage within EmoTagger that contains emotional responses and related data for analysis and visualization.
DBMS (Database Management System) Software used to create, manage, and interact with databases, where EmoTagger’s user and survey data is stored and managed.
Emotion Annotation Tagging songs with specific emotions, such as happiness or sadness, based on user feedback. This helps in understanding and analyzing the emotional effects of music.
Emotion Spectrum A range of emotions (e.g., joy, calmness, nostalgia) that users can select to describe their reactions to a song, allowing EmoTagger to capture complex emotional responses.
Frontend The client-side or user-facing part of EmoTagger, where users interact with the application through interfaces such as forms, buttons, and visualizations.
FTP (File Transfer Protocol) A network protocol used to transfer files between computers, which may be used in managing EmoTagger’s server files.
Gamification Using game-like elements (e.g., points, badges, challenges) in EmoTagger to increase user engagement, motivating users to actively participate in the survey and data labeling.
Interface The visual and interactive components of EmoTagger (e.g., buttons, menus, survey forms) that allow users to interact with the application.
JSON (JavaScript Object Notation) A lightweight data format used for exchanging structured data between EmoTagger’s client and server, making it easier to send user feedback and emotional data.
Leaderboard A ranking system within EmoTagger that displays top contributors, encouraging users to engage more actively by ranking based on contributions like surveys and annotations.
Machine Learning (ML) A subset of AI that enables EmoTagger to learn from data and predict trends in emotional responses, supporting emotion analysis and improving recommendation systems.
Metadata Data about data. For EmoTagger, metadata may include song details like title, artist, and genre, which help in organizing and analyzing user responses.
Primary Emotions Basic emotions such as happiness, sadness, anger, or fear, which are universally recognized and easy to identify.
Profile A personal section where users can manage their EmoTagger account, view past activity, and track engagement metrics.
Real-Time Data Processing The ability of EmoTagger to analyze and process data as soon as it is inputted, allowing users to see immediate feedback or trends.
Registered Users Individuals who create an account in EmoTagger, enabling them to participate in surveys, earn rewards, and access exclusive community features.
Secondary Emotions More complex emotions, such as nostalgia or serenity, providing a nuanced view of user responses beyond basic emotions.
Survey A set of questions provided to users to gather feedback on their emotional response to specific songs, creating a foundation for emotion annotations.
Tagging The process of labeling music with emotional markers, helping EmoTagger to categorize songs based on emotional responses for analysis and recommendations.
Trend Graphs Visual representations of patterns within EmoTagger that show how users’ emotional responses to songs change over time, allowing insights into popular emotional trends.
UI (User Interface) The visual components of EmoTagger, such as buttons, forms, and graphics, that users interact with.
User Experience (UX) The overall experience and satisfaction a user has while interacting with EmoTagger, impacted by design, usability, and system performance.
Web Application The web-based version of EmoTagger accessible through browsers, designed to offer similar functionalities to the mobile application for desktop users.
XML (Extensible Markup Language) A markup language used to structure data, often for data interchange between EmoTagger and other applications.

--

1.4 Overview of the Document

The EmoTagger project is an innovative and comprehensive music survey application designed to deeply explore and understand the emotional connections users have with music. By allowing users to listen to a variety of songs and tag their emotional responses, the app builds a rich, extensive, and diverse dataset of these reactions. This valuable dataset serves multiple purposes, both personal and academic, enabling detailed study and analysis of how different types of music impact individuals emotionally.

The project leverages crowdsourcing techniques to gather a wide array of emotional interpretations from a diverse and varied group of users, thereby enhancing the dataset's accuracy, cultural depth, and richness. Gamification elements are thoughtfully integrated into the platform to keep users engaged, motivated, and encouraged to contribute regularly, ensuring that the dataset remains robust, comprehensive, and high-quality.

The resulting extensive dataset supports significant advancements in AI-driven emotional music analysis, which can be applied in various areas such as personalized music recommendation systems, therapeutic music interventions, and cultural studies. By offering users a platform to reflect on, share, and analyze their emotional responses to music, EmoTagger bridges the gap between music and emotions, providing a rich, engaging, and immersive experience for anyone interested in exploring this dynamic and multifaceted relationship. The app not only facilitates personal exploration and discovery but also contributes to academic research and understanding, making it a valuable tool for both individual users and researchers alike.


2. ARCHITECTURE DESIGN

2.1 General Design Approach of the Project

The project focuses on creating an intuitive and emotionally engaging user experience. A user-centered design ensures the platform is simple, accessible, and tailored to user needs. With a clean, minimalist interface, users can easily navigate features such as search, filtering, and emotional tagging, making interactions seamless and meaningful.

The recommendation system leverages crowdsourced emotional tags to offer personalized song suggestions. The backend architecture efficiently supports a database of over 100 songs and scales to accommodate future growth. Responsive design ensures optimal usability across all devices, while real-time features like instant playback and tagging enhance engagement.

Data privacy and security are prioritized, safeguarding user information and fostering trust. Visually appealing elements complement the emotional essence of the project, enhancing the overall user experience. Regular testing and feedback ensure continuous improvement and feature refinement.

Analytics guide optimization efforts, improving recommendations and user satisfaction. The modular design allows for easy integration of future enhancements, ensuring adaptability. Collaboration among all stakeholders drives a cohesive and innovative approach, delivering a platform that deeply connects users with music.

2.2 Architecture Design of the Webpage

The webpage’s architecture is designed to provide an efficient and seamless user experience while maintaining scalability and reliability. The system is organized into three primary layers: the frontend, backend, and database.

The frontend layer utilizes modern web technologies to build a responsive and visually appealing interface, ensuring it works smoothly across various devices, including desktops, tablets, and smartphones. This layer facilitates user interactions such as search, filtering, and tagging, offering an engaging and user-friendly experience.

The backend layer functions as the system’s core, handling user requests, executing business logic, and managing secure interactions with the database. Designed for scalability, the backend efficiently handles high traffic and large data volumes, ensuring consistent performance. It also incorporates the recommendation engine, which analyzes emotional tags to deliver personalized content to users.

The database layer is responsible for storing and organizing essential data, such as song metadata, user profiles, and emotional tags. The design emphasizes fast and reliable data retrieval to support real-time functionalities. Strong measures are implemented to safeguard data privacy and security, including encryption and controlled access protocols to protect user information.

APIs connect these layers, facilitating smooth communication and ensuring modularity and adaptability. This design supports future feature enhancements and integrations, enabling the platform to grow while maintaining dependability and high performance.


3. SYSTEM DESIGN

3.1 UML Diagram

Class Diagram
Figure 1: Class Diagram

3.1.1 User Interface

HomePage of User Interface Figure 2: HomePage of User Interface

Login Page of User Interface Figure 3: Login Page of User Interface

Register Page of User Interface
Figure 4: Register Page of User Interface

Home Page 2 of User Interface Figure 5: Home Page 2 of User Interface

Profile Page of User Interface
Figure 6: Profile Page of User Interface

Settings Page of User Interface
Figure 7: Settings Page of User Interface

Listening Page User Interface
Figure 8: Community Page of User Interface

Community Page of User Interface
Figure 9: Community Page of User Interface

3.1.2 Admin Interface

Admin Page Interface
Figure 10: Admin Page Interface


3.2 Decomposition Description

3.2.1 User Registration and Profile Management

Activity Diagram for User Registration and Profile
Figure 11: Activity Diagram for User Registration and Profile

Sequence Diagram for User Registration and Profile
Figure 12: Sequence Diagram for User Registration and Profile

3.2.2 Emotional Tagging of Songs

Activity Diagram for Emotional Tagging of Songs
Figure 13: Activity Diagram for Emotional Tagging of Songs

Sequence Diagram for Emotional Tagging of Songs
Figure 14: Sequence Diagram for Emotional Tagging of Songs

3.2.3 View Emotional Trends

Activity Diagram for View Emotional Trends
Figure 15: Activity Diagram for View Emotional Trends

Sequence Diagram for View Emotional Trends
Figure 16: Sequence Diagram for View Emotional Trends

3.2.4 Crowdsourced Data Collection

Activity Diagram for Crowdsourced Data Collection
Figure 17: Activity Diagram for Crowdsourced Data Collection

Sequence Diagram for Crowdsourced Data Collection
Figure 18: Sequence Diagram for Crowdsourced Data Collection

3.2.5 Gamification for User Engagement

Activity Diagram for Gamification for User Engagement
Figure 19: Activity Diagram for Gamification for User Engagement

Sequence Diagram for Gamification for User Engagement
Figure 20: Sequence Diagram for Gamification for User Engagement

3.2.6 Settings and Preferences Management

Activity Diagram for Options Menu
Figure 21: Activity Diagram for Options Menu

Sequence Diagram for Option Menu
Figure 22: Sequence Diagram for Option Menu

3.2.7 Access Privacy Settings

Activity Diagram for Access Privacy Settings
Figure 23: Activity Diagram for Access Privacy Settings

Sequence Diagram for Access Privacy Settings
Figure 24: Sequence Diagram for Access Privacy Settings

3.2.8 Song and Emotion Data Analysis

Activity Diagram for Song and Emotion Data Analysis
Figure 25: Activity Diagram for Song and Emotion Data Analysis

Sequence Diagram for Song and Emotion Data Analysis
Figure 26: Sequence Diagram for Song and Emotion Data Analysis


3.3 Performance Requirements

The project needs to be optimized for a large music database and high traffic volume. The website should ensure a fast and seamless user experience, especially when users are searching for songs, filtering, and interacting with the system. Given the 10,000+ songs and millions of user interactions, database queries and user actions must be processed with low latency. Additionally, since users will label songs based on the emotions they experience while listening, the tagging system should function quickly and accurately.

3.3.1 Database and Server Performance

The website's database must be capable of providing fast data access during each user interaction. This requires a high-performance, scalable database infrastructure. Data queries, especially for song searches, filtering, and tagging, must return results promptly. The user interaction history for song recommendations should be processed with minimal delay. The server infrastructure must be scalable to accommodate increasing user traffic and data volume. Load balancing and caching techniques should be implemented to distribute traffic evenly across servers, ensuring high performance even during peak traffic periods.

3.3.2 AI and Data Processing

The AI algorithms used to analyze the emotional tone of songs must be both accurate and fast. The AI model must be trained to quickly process vast amounts of data and make emotion-based predictions in real-time. This process should be optimized so that it does not result in delays, as this could affect the user experience. The AI's ability to link songs with specific emotional tags needs to be robust, enabling users to label songs effectively while also improving the system’s recommendations based on these labels.

3.3.3 User Experience and Response Times

Users expect fast and accurate results when searching for songs or navigating through emotional tags. Optimized search algorithms, filtering, and recommendation systems are essential to provide quick responses, ensuring that users do not experience frustration while using the site. User interactions should be met with instant feedback, and the entire platform should be designed for high responsiveness across devices, including desktop and mobile platforms. The database queries should be fine-tuned to ensure quick loading times and minimal latency, enhancing the overall user experience. Optimized query execution and indexing will improve data retrieval speeds, allowing users to access their desired songs or emotional tags immediately. By focusing on performance tuning and front-end optimization, the platform can deliver a fast, seamless experience, even with high concurrent traffic.[2]

3.3.4 Security and Data Protection

User data, including mood tags and song preferences, should be handled securely and in compliance with industry-standard privacy measures. The system must ensure that data is anonymized and protected from unauthorized access, particularly when dealing with sensitive user information. Security measures should be put in place to safeguard user data and ensure that only authorized systems can access or modify it. The platform must also adhere to user privacy policies and regulatory requirements to ensure secure and ethical data handling practices. By implementing encryption, multi-factor authentication, and secure access protocols, the system will be able to defend against potential data breaches and safeguard user trust. Additionally, compliance with international privacy regulations such as GDPR will be essential for protecting user rights and ensuring the legal handling of personal data.[1]

3.4 Software System Attributes

3.4.1 Portability

The platform will be a website, and it must be compatible with all major operating systems (Windows, macOS, Linux) and popular web browsers like Google Chrome, Mozilla Firefox, Safari, and Microsoft Edge. The website will be developed using responsive web design principles, allowing it to automatically adjust its layout and interface based on the device's screen size. This approach ensures an optimal experience on desktops, tablets, and mobile phones.

Using web technologies like HTML5, CSS3, and JavaScript guarantees cross-platform compatibility and enables dynamic, interactive content. To support older browsers, progressive enhancement will be applied, ensuring basic functionality remains intact even with limited browser capabilities. Additionally, the backend infrastructure will be cloud-based, utilizing services such as AWS or Google Cloud to ensure scalability and low-latency access worldwide. Content Delivery Networks will also be employed to enhance loading speeds, improving the user experience regardless of location. In summary, by focusing on responsive design and cross-platform compatibility, the website will offer a seamless experience across various devices and browsers.

3.4.2 Performance

The website must efficiently handle large data volumes and user interactions, ensuring a smooth experience even during peak usage. With 10,000+ songs and millions of user interactions, the platform must process queries and display results in real-time with minimal delays. Users should be able to search, filter, and label tracks quickly.

The backend must scale automatically as traffic increases, utilizing cloud services to ensure high availability. Efficient data retrieval will be achieved through optimized database queries and caching, reducing response times. Redundant systems and load balancing will maintain stability under heavy traffic.

AI features like mood-based recommendations must operate without delay. Data analysis should be completed quickly to deliver real-time suggestions. The system must remain responsive as data volume grows, ensuring users always have a fast experience.

By optimizing server-side performance, data storage, and AI processing, the website will remain responsive and reliable, offering a consistent user experience.

3.4.3 Usability

The website must be user-friendly, allowing users to navigate effortlessly and access all features with minimal effort. The interface should be simple and intuitive, making it easy to search for songs, apply filters, and select mood tags without confusion. Key features should be visible and easily accessible, with clear, actionable buttons guiding users through each step.

Search and filtering functions need to be quick and responsive, so users can find songs based on their preferences without delay. Mood-based tagging should be simple, enabling users to label songs with the emotions they are experiencing while listening. Real-time feedback should be provided, so users can see their selections and actions immediately.

The website must be fully responsive, adjusting seamlessly to different screen sizes, ensuring a smooth experience on both desktop and mobile browsers. The design should adapt automatically, keeping the interface clean and easy to use across various devices.

Error handling is also important for usability; if users make a mistake, such as selecting the wrong mood tag, the system should provide clear and simple guidance to correct it. Additionally, the platform should offer user-friendly tips or instructions, especially for first-time visitors, improving the overall experience.

The aim is to create a website that feels intuitive and enjoyable, allowing users to easily interact with the platform to find and engage with the content they want.

3.4.4 Adaptability

The website must be adaptable to different user needs, preferences, and devices, ensuring a seamless experience across various environments. As user behavior and device usage can vary, the platform should automatically adjust its interface to provide an optimal experience. It should be capable of accommodating diverse screen sizes, from desktop monitors to smaller mobile screens, ensuring consistent functionality without compromising on design or performance.

As the website grows and evolves, it should be able to integrate new features or adapt to changes in technology. The system should be designed to incorporate future updates, allowing the platform to stay current with trends in music discovery, user experience, and AI advancements. Regular updates should not disrupt the user experience but should instead improve it, offering new functionalities and improved performance.

3.4.5 Scalability

Scalability is essential for managing a growing user base and expanding data. As users, songs, and interactions increase, the platform must maintain performance. The infrastructure should adjust to handle more traffic, data, and queries. Resources must be allocated dynamically based on demand, ensuring stability during peak times. Cloud-based solutions allow for scaling, expanding during high traffic and reducing during low periods to balance cost and performance.

Data storage should handle growth, retrieving information quickly and reducing delays. Caching will help speed up frequent queries and minimize slowdowns.

The backend and AI systems need to process larger datasets and provide recommendations without delays. The platform should scale to handle increased data as it evolves. Ultimately, scalability ensures the website can grow, meet increasing demands, and maintain a consistent experience as it expands.


4. References

[1] J. Howe, "The rise of crowdsourcing," Wired Magazine, vol. 14, no. 6, pp. 1-4, 2006.
[2] R. Cowie et al., "Emotion recognition in human-computer interaction," IEEE Signal Processing Magazine, vol. 18, no. 1, pp. 32-80, Jan. 2001.


⚠️ **GitHub.com Fallback** ⚠️