hoangsonww/Moodify-Emotion-Music-App

Feature: Privacy Consent Center and Portable Data Export

開放

#30 建立於 2026年5月24日

 (0 則留言) (0 個反應) (1 位負責人)JavaScript (23 個分叉)auto 404
bugdocumentationenhancementgood first issuehelp wantedquestion

倉庫指標

星標
 (80 顆星)
PR 合併指標
 (PR 指標待抓取)

描述

Summary

Add a privacy and data portability center where users can review what Moodify stores, control consent for optional history-based personalization, and export their account data in a portable format.

Problem / Opportunity

Moodify stores mood history, listening history, and saved recommendations for authenticated users. The app already includes profile deletion and list-clearing controls, but users do not have a single privacy surface that explains stored data, separates optional personalization consent from required account data, or lets them export their own data.

Because Moodify works with sensitive emotional signals, a transparent consent and export workflow is a substantial product capability, not a cosmetic settings change.

Proposed Feature

Build a privacy center for web and mobile that includes:

  • A data inventory explaining account fields, mood history, listening history, saved recommendations, and recommendation feedback if implemented later.
  • Per-user consent toggles for optional personalization inputs, such as using mood history in recommendation requests or storing listening-history events.
  • A data export flow that produces a JSON file containing profile metadata, mood history, listening history, saved recommendations, and consent settings.
  • A server-side export endpoint that requires authentication and returns only the current user's data.
  • Clear status states for export generation, errors, and empty histories.
  • Audit-friendly timestamps for consent changes.

Scope

  • Backend consent fields and export serialization.
  • Authenticated API endpoints for reading/updating privacy preferences and downloading/exporting user data.
  • Web Profile/Settings privacy center UI.
  • Mobile Settings privacy center UI.
  • Recommendation request behavior that respects personalization consent.
  • Tests for authorization, export schema, consent persistence, and personalization opt-out behavior.

Acceptance Criteria

  • Authenticated users can view a privacy center that summarizes stored Moodify data categories.
  • Users can opt out of mood-history personalization without deleting existing mood history.
  • Users can opt out of listening-history storage so future track opens are not persisted.
  • Consent changes are persisted with an updated timestamp.
  • Users can export their data as JSON from an authenticated endpoint.
  • The export includes profile metadata, mood history, listening history, saved recommendations, and consent settings.
  • Export endpoints reject unauthenticated requests and never allow exporting another user's data.
  • Web and mobile clients honor opt-out settings when saving history or passing history into recommendations.
  • Tests cover export authorization, export shape, consent updates, and client opt-out behavior.

Non-Goals

  • Legal compliance certification or policy rewriting.
  • Admin access to user exports.
  • Bulk export for all users.
  • Replacing the existing account deletion workflow.

Dependencies / Risks

  • Needs a stable export schema so future clients or tools can consume the data reliably.
  • Consent behavior must be enforced client-side and server-side where possible, not only hidden in UI.
  • Existing users will need default consent values that preserve current behavior until changed.

Open Questions

  • Should export generation be synchronous JSON for the current data size, or an async job for future scalability?
  • Should exported recommendation records include full track metadata or only normalized identifiers and display fields?
  • Should consent defaults differ between new users and existing users?

貢獻者指南