Skip to content

justinnonso05/meloforge

Repository files navigation

MeloForge 🎵🔥

Your AI Music Passion Co-Pilot – Track, Rival, Create, and Own Your Sonic Legacy.

A submission for the DEV Weekend Challenge: Passion Edition.

MeloForge Dashboard

🏆 The Passion

The DEV Weekend Challenge asked us to build something inspired by passion. What drives more passion than music? It fuels late-night coding sessions, sparks fierce debates over the best genres, and connects fandoms across the world.

MeloForge is built for the obsessed listener. It takes your raw music listening data and transforms it into a visual, interactive, and shareable experience. From tracking your daily listening habits to generating AI-fueled "Genre Rivalries", MeloForge proves your devotion to the music you love.

✨ Features

  • 📊 Passion Dashboard: Visualize your genre distribution, top artists, and listening trends on an intuitive dashboard.
  • 🤖 Ask MeloForge (Google Gemini): Chat directly with your listening history. Ask your AI co-pilot, "Compare my hip-hop vs electronic passion this month" or "What should I listen to next?"
  • ▶️ Smart Song Suggestions: Get personalized song recommendations based on your habits, playable instantly via a native YouTube embed.
  • ⚔️ Genre Rivalry Arena: Pit your top two genres against each other! Watch them battle it out with AI-generated hype banter, fully voiced by ElevenLabs.
  • ⛓️ Passion Proof NFTs (Solana): Cement your musical legacy on the blockchain. Connect your Phantom wallet and mint a permanent 1-of-1 Metaplex Core NFT badge. Your dynamic stats and custom 3D artwork are secured on decentralized Arweave storage via Irys, proving your devotion.
  • 📸 Spotify Wrapped Vision: Skip the manual entry. Upload a screenshot of your Spotify Wrapped and let Gemini Vision automatically extract and log your stats.

🛠️ Tech Stack & Hackathon Categories

We went all-in on the hackathon prize categories, integrating all four featured technologies into a single, cohesive application:

1. Best Use of Google AI (Gemini) 🥇

Google Gemini is the brain of MeloForge:

  • Natural Language Chat: Powers the "Ask MeloForge" feature, converting natural queries into data-driven insights.
  • Vision Extraction: Processes user uploads of Spotify Wrapped screenshots to automatically extract text and log tracks.
  • Creative Generation: Scripts the intense, personalized banter for the Genre Rivalry Arena.

2. Best Use of Snowflake ❄️

All user listening data is ingested and heavily queried via Snowflake. From generating the Passion Score to aggregating daily listening trends and identifying top artists for the dashboard charts, Snowflake serves as the robust analytical backbone.

3. Best Use of ElevenLabs 🎙️

Reading stats is cool, but hearing them is better. We used the ElevenLabs API to breathe life into the Genre Rivalries. When you hit "Generate Hype Recap", ElevenLabs dynamically voices the Gemini-scripted banter, turning a simple chart into a high-energy stadium showdown.

4. Best Use of Solana 🟣

Passion deserves to be immortalized. We deeply integrated the @metaplex-foundation/umi framework and Metaplex Core to allow users to mint a true 1-of-1 NFT. By connecting a Phantom wallet on Devnet, the app automatically uploads a custom 3D badge image and dynamic JSON metadata (containing the user's top genre and listening stats) to decentralized Arweave storage using the Irys network. It then fires a highly optimized Core create instruction via a dedicated Helius RPC to mint the NFT directly into the user's wallet collectibles tab.

Additional Tech: Next.js 15 (App Router), TypeScript, TailwindCSS, Prisma, PostgreSQL (Neon).


🚀 Getting Started

To run MeloForge locally, follow these steps:

1. Clone the repository

git clone https://github.com/your-username/meloforge.git
cd meloforge

2. Install dependencies

npm install

3. Configure Environment Variables

Create a .env file in the root directory and add the following keys:

# Database
DATABASE_URL="your_postgresql_url"

# APIs
GEMINI_API_KEY="your_google_gemini_key"
ELEVENLABS_API_KEY="your_elevenlabs_key"
ELEVENLABS_VOICE_ID="your_preferred_voice_id"

# Snowflake
SNOWFLAKE_ACCOUNT="your_account_id"
SNOWFLAKE_USER="your_username"
SNOWFLAKE_PASSWORD="your_password"
SNOWFLAKE_DATABASE="MELOFORGE_DB"
SNOWFLAKE_SCHEMA="PUBLIC"
SNOWFLAKE_WAREHOUSE="COMPUTE_WH"

# Auth
JWT_SECRET="your_super_secret_jwt_key"

4. Setup the Database

Run Prisma migrations to set up your PostgreSQL auth tables:

npx prisma migrate dev --name init

(Note: Snowflake tables are managed via the /api/setup-db endpoint inside the app).

5. Run the Application

npm run dev

Open http://localhost:3000 to view the application in your browser. Ensure your Phantom wallet is set to Devnet to test the Solana minting feature!


Built with ❤️ for the DEV Weekend Challenge.

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors