Skip to main content
#04

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.

JavaScriptReactExpressGlassmorphismAudioMusic PlayerVisualization
<p align="center"> <img src="images/dashboard1.png" alt="Header Banner" width="100%"/> </p> <h1 align="center">C Flow</h1> <p align="center"> <strong>Premium local audio hub & music visualizer with glassmorphism UI</strong> </p> <p align="center"> <a href="https://c-flow.curzy.dev"><strong>๐ŸŒ Live Demo Website</strong></a> </p> <div align="center">

Stars Forks License Platform

</div> <p align="center"> <a href="#-why-c-flow">Why This</a> ยท <a href="#-key-features">Features</a> ยท <a href="#%EF%B8%8F-architecture">Architecture</a> ยท <a href="#-quick-start">Quick Start</a> ยท <a href="#-preview">Preview</a> </p>

๐Ÿ•’ 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 ScanningScans folder resources using music-metadata to fetch details automatically.
๐Ÿ”ฅ Daily Streak EngineTracks active listening streaks with WIB (UTC+7) reset rules.
๐Ÿงช Fluid VisualizerBuilt-in custom music visualizer aligned with Framer Motion animations.

๐ŸŽฏ Key Features

Audio Hub Mechanics

FeatureStatusDescription
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

CapabilityStatusDescription
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>