Skip to content

A DJ Mix hosting application built using Laravel & Vue JS

Notifications You must be signed in to change notification settings

anthonybeckett/mixstation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Mixstation

This is an app similar to Soundcloud, Mixcloud or HearThis where users can upload their DJ mixes for others to listen to. It is built on a VueJS frontend, Laravel backend and a MySQL 9 database.

Development

Frontend (Vue 3)

To get started with the frontend run the following in a terminal.

  cd ./frontend
  
  npm i
  
  npm run dev

The frontend should now be running on port 5173 unless specified different.

Backend (Laravel 11)

To get started running, first we need to install the composer packages in the backend directory.

  cd ./backend

  composer install

Next, we need to create a .env and update the DB credentials as needed.

  cp .env.example .env

Now we can run the migrations then start the API. The backend uses docker through Laravel Sail.

  php artisan migrate
  
  ./vendor/bin/sail up -d

To analyse the code base, we can run PHP Stan

./vendor/bin/phpstan analyse

To format the codebase we can run PHP Pint

./vendor/bin/pint

Todo:

Issues / Clean up

  • Implement own waveform analyser and cache results when page changes
  • Make waveform resizeable to fill width of container object
  • Rename backend database to mixstation and rebuild container
  • Handle errors and show when login/register fails
  • Set up cookie when user logs in or registers to store token
  • Clean up register and login components and reduce duplication

Design bits:

  • Create a logo

Frontend

Backend

Functionality

  • User login/logout and authentication
  • Forgot credentials feature
  • Upload mixes (MP3 or WAV)
  • List mixes they have uploaded
  • Profile page
  • Follow other users
  • Dashboard page with mixes of users followed
  • Stats of listeners and how many plays etc
  • Search for users or mixes
  • Favourite mixes
  • Comments on mixes?
  • Global player on bottom of screen
  • Download mixes and ability to disable
  • Invite users
  • Mix tags for genre
  • User can create playlists to group their mixes
  • Player has custom playlist ability to add multiple mixes
  • Feature on backend which converts audio to MP3
  • Artwork on each mix to display on the mix
  • Able to make tracks private and create a private share link

Docker

This will come later when the project is at a decent point

  • Setup and containerise Vue JS frontend
  • Make global docker compose file including the files from both directories

React Native

Will need to flesh this out more but not a high priority for a mobile app

Other

About

A DJ Mix hosting application built using Laravel & Vue JS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published