Skip to content

shittuay/mixflow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

MixFlow

A music streaming and DJ platform built with React, Node.js, and Prisma.

Features

  • 🎡 Music streaming with separate music and podcast sections
  • 🎧 DJ Mode with dual deck mixing
  • πŸ‘€ User authentication (Artist, DJ, Listener roles)
  • πŸ“€ Track upload with metadata
  • 🎨 Real-time waveform visualization
  • πŸŽ›οΈ BPM detection and key matching
  • πŸ“Š Analytics and streaming stats

Tech Stack

Frontend

  • React with TypeScript
  • Vite
  • Tailwind CSS
  • Lucide React Icons

Backend

  • Node.js with Express
  • Prisma ORM
  • SQLite database
  • JWT authentication
  • Multer for file uploads

Monorepo

  • Nx for workspace management

Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn

Installation

  1. Clone the repository
git clone https://github.com/shittuay/mixflow.git
cd mixflow
  1. Install dependencies
npm install
  1. Set up backend environment variables
cd mixflow/backend
cp .env.example .env
# Edit .env with your configuration
  1. Initialize the database
cd mixflow/backend
npx prisma migrate dev
npx prisma generate
  1. Start the development servers

Backend:

npm run dev:backend
# or
cd mixflow && npx nx run backend:serve

Frontend:

npm run dev:frontend
# or
cd mixflow && npx nx run web-app:serve

The frontend will be available at http://localhost:4200 The backend API will be available at http://localhost:3334

Deployment

Backend (Render)

The backend is configured to deploy to Render using the render.yaml file.

  1. Create a new Web Service on Render
  2. Connect your GitHub repository
  3. Render will auto-detect the configuration
  4. Set environment variables in the Render dashboard

Frontend (Netlify)

The frontend is configured to deploy to Netlify using the netlify.toml file.

  1. Create a new site on Netlify
  2. Connect your GitHub repository
  3. Netlify will auto-detect the configuration
  4. Set the VITE_API_URL environment variable to your backend URL

Project Structure

mixflow/
β”œβ”€β”€ mixflow/
β”‚   β”œβ”€β”€ backend/          # Express.js API
β”‚   β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”‚   β”œβ”€β”€ config/   # Configuration files
β”‚   β”‚   β”‚   β”œβ”€β”€ controllers/ # Route controllers
β”‚   β”‚   β”‚   β”œβ”€β”€ middleware/  # Express middleware
β”‚   β”‚   β”‚   β”œβ”€β”€ routes/   # API routes
β”‚   β”‚   β”‚   └── services/ # Business logic
β”‚   β”‚   └── prisma/       # Database schema
β”‚   β”œβ”€β”€ web-app/          # React frontend
β”‚   β”‚   └── src/
β”‚   β”‚       β”œβ”€β”€ app/      # Main application
β”‚   β”‚       β”œβ”€β”€ components/ # React components
β”‚   β”‚       └── config/   # Frontend configuration
β”‚   └── shared/           # Shared utilities
β”œβ”€β”€ netlify.toml          # Netlify deployment config
└── render.yaml           # Render deployment config

License

MIT

Contributing

Contributions are welcome! Please open an issue or submit a pull request.

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

  •  

Packages

No packages published