emerald-mood

byLinda Hamdan

🎧 β€œMoodMix” β€” a social mood + music app Think of it like a cross between Spotify, BeReal, and a low-pressure social diary. πŸ’‘ Core idea Teens log their mood once or twice a day using quick taps (no long journaling). The app then: Generates a music playlist that matches their vibe Lets them share their β€œmood snapshot” with friends Shows how their mood changes over time (like emotional stats πŸ“Š) πŸ”₯ Why it works No cringe oversharing required Music is already central to teen life Feels personal but still social Could integrate with Spotify or Apple Music later 🧱 Basic MVP Features Select mood (happy, stressed, tired, excited, etc.) Generate a playlist (mocked at first) View mood history Simple social feed (friends’ moods) πŸ§ͺ Simple Starter Code (React Native with Expo) This is a basic working prototype UI to get you started: 1. Setup npx create-expo-app MoodMix cd MoodMix npm start 2. Replace App.js with this: import React, { useState } from 'react'; import { StyleSheet, Text, View, TouchableOpacity, FlatList } from 'react-native'; const moods = [ { id: '1', name: '😊 Happy', playlist: ['Sunroof', 'Good as Hell', 'Levitating'] }, { id: '2', name: '😴 Tired', playlist: ['Slow Dancing', 'Location', 'Pink + White'] }, { id: '3', name: '😀 Stressed', playlist: ['Lo-fi Beats', 'Weightless', 'Chill Study'] }, { id: '4', name: 'πŸ”₯ Hype', playlist: ['SICKO MODE', 'POWER', 'HUMBLE.'] }, ]; export default function App() { const [selectedMood, setSelectedMood] = useState(null); return ( <View style={styles.container}> <Text style={styles.title}>MoodMix 🎧</Text> <Text style={styles.subtitle}>How are you feeling?</Text> <View style={styles.moodContainer}> {moods.map((mood) => ( <TouchableOpacity key={mood.id} style={styles.moodButton} onPress={() => setSelectedMood(mood)} > <Text style={styles.moodText}>{mood.name}</Text> </TouchableOpacity> ))} </View> {selectedMood && ( <View style={styles.playlistContainer}> <Text style={styles.playlistTitle}> Your {selectedMood.name} Playlist: </Text> <FlatList data={selectedMood.playlist} keyExtractor={(item, index) => index.toString()} renderItem={({ item }) => ( <Text style={styles.song}>{item}</Text> )} /> </View> )} </View> ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#121212', alignItems: 'center', justifyContent: 'center', padding: 20, }, title: { fontSize: 32, color: '#1DB954', fontWeight: 'bold', marginBottom: 20, }, subtitle: { fontSize: 18, color: 'white', marginBottom: 15, }, moodContainer: { flexDirection: 'row', flexWrap: 'wrap', justifyContent: 'center', }, moodButton: { backgroundColor: '#282828', padding: 10, margin: 8, borderRadius: 10, }, moodText: { color: 'white', fontSize: 16, }, playlistContainer: { marginTop: 20, alignItems: 'center', }, playlistTitle: { color: '#1DB954', fontSize: 18, marginBottom: 10, }, song: { color: 'white', fontSize: 16, marginVertical: 2, }, }); πŸš€ Where to take it next If you want to level this up from β€œcool project” to β€œpeople actually use this”: Add login (Firebase πŸ”) Save mood history (so users can track patterns) Real music API (Spotify API 🎢) Friend system + mood feed Streaks (teens love streaks more than sleep)

Landing
Landing

Comments (0)

No comments yet. Be the first!

Project Tasks

No tasks generated yet.

Tasks will appear here as requirements are defined.

Landing design preview
Login: Sign In
Dashboard: View Stats
Dashboard: Monitor Performance
Users: Manage Accounts
Users: Edit User
Users: Deactivate User
Content: Moderate Feed
Content: Remove Post
Reports: View Analytics
Reports: Export Data
Settings: Configure Platform