C Flow
Premium local audio hub & music visualizer with glassmorphism UI. Features local folder scanning, metadata extraction, daily listening streaks. React + Tailwind CSS v4, Express, music-metadata.
๐ Why C Flow?
A premium, modular audio hub designed for local music streaming. By combining a metadata extraction backend with a stunning glassmorphism UI, it provides a highly polished visual dashboard for local MP3 libraries.
| ๐ต Local Audio Scanning | Scans folder resources using music-metadata to fetch details automatically. |
| ๐ฅ Daily Streak Engine | Tracks active listening streaks with WIB (UTC+7) reset rules. |
| ๐งช Fluid Visualizer | Built-in custom music visualizer aligned with Framer Motion animations. |
๐ฏ Key Features
Audio Hub Mechanics
| Feature | Status | Description |
|---|---|---|
| MP3 Parser | โ | Auto extracts covers, artist names, titles, and track durations. |
| Streaks System | โ | WIB-based daily streak tracker writing progress to a local JSON file. |
| Stream Engine | โ | Native audio streaming pipeline serving files safely from backend storage. |
Technical Capabilities
| Capability | Status | Description |
|---|---|---|
| Express Router API | โ | Lightweight Modular REST API logic for status, streak, and music streams. |
| Glassmorphism UI | โ | Clean cyberpunk design built using React 19, Tailwind CSS v4, and Lucide. |
| Concurrently Dev | โ | Starts development servers concurrently using simple npm triggers. |
๐๏ธ Architecture
c-flow/
โโโ backend/
โ โโโ data/
โ โ โโโ streak.json # Local JSON streak record store
โ โโโ controllers/ # Business logic (music parser, streak computation)
โ โโโ routes/ # REST API route endpoints
โ โโโ services/ # AudioScanner scanner & streak background service
โ โโโ server.js # Express server entry point
โโโ frontend/
โโโ src/ # React Vite client SPA bundle
โโโ vite.config.js # Vite configuration
๐ Quick Start
Installation & Setup
# Clone the repository
git clone https://github.com/Curzyori/c-flow.git
cd c-flow
# Setup backend service
cd backend
npm install
npm start
# Setup frontend service (in a new terminal)
cd ../frontend
npm install
npm run dev
Add Your Music
Drop your .mp3 files into the root /music folder in backend, and the server will automatically scan them.
๐ผ๏ธ Preview
<p align="center"> <img src="images/dashboard1.png" alt="Dashboard View" width="48%"/> <img src="images/dashboard2.png" alt="Library View" width="48%"/> </p>๐ License
This project is released under the MIT License โ free for educational, personal, and research purposes.
โ Support
If this project is useful, consider supporting its development!
<p align="center"> <a href="https://donate.curzy.dev/"><strong>๐ Donate via Crypto or QRIS</strong></a> </p>Crypto payment details are maintained at donate.curzy.dev.
<sub>Built with passion as the 4th Project of the 50 Projects Challenge by @curzyori</sub>