SongDrive Save

A song management tool to store, synchronize and present songs and setlists. Built with Vue.js, Tailwind.css and Firebase.

Project README

SongDrive Logo Title

Release Last Updated CodeQL Analysis License Contribution Guidlines

A song management web application to store, sync and present songs and setlists, based on Vue.js and Firebase. Head over to the docs (EN, DE) for more information about SongDrive and how to get started.

Preview

This is how the SongDrive Dashboard currently looks like.

20230725_songdrive_dashboard

A demo page is planned.

Features

  • Create and edit songtexts with chords using a simple syntax
  • Show single songs with a lot of tools or in a viewport optimized fullscreen view
  • Maintain song translations and wwitch song languages with a single click
  • Live-search through songs and setlists or filter by tags and by key
  • Live-transpose song key or save transposed songs on setlists
  • Create setlists and rearrange songs with simple drag and drop
  • Present setlists for on-stage performance with device synchronization
  • Export songssheets and setlists as plain text, PDF, SNG or Slack formatted
  • Use Hotkeys for almost anything (hotkey cheatsheet included)
  • Analyze general, setlist and user specific stats
  • UI supports multiple languages (currently: EN, DE)
  • Users can manage their own profile, change email and password or delete their account.
  • Many admin functions including export and Import of complete SongDrive data and managing users with different roles

Installation for developers

  1. Get all files from repository

    git clone https://github.com/devmount/SongDrive
    
  2. Install all dependencies

    cd SongDrive
    npm install
    
  3. Create an environment configuration file .env from the existing example configuration in the root directory:

    cp .env.example .env
    
  4. Log in to your Firebase account, hit the "Add a project" button and set up a project name and a server location

  5. Now you can add an app by clicking the "Web" button, choose a nickname and click "Next"

  6. Copy API key and project ID into your .env file

  7. Go back to your Firebase console, and click Create Database under Develop > Database. Choose Start in production mode and paste the security rules that you can copy frome the firestore.rules file.

  8. Create the first user in the Firebase console under Build > Authentification > Add user. After that you'll see the User UID in the table. Copy that UID, navigate to Build > Firestore Database > + Start collection. Input users as Collection ID and click Next. Insert the copied UID as Document ID and add the following fields to the document:

    • email = string | your email address
    • name = string | your name
  9. To give necessary permisstions, click + Start collection again. Input permissions as Collection ID and click Next. Insert the copied UID as Document ID and add the following field to the document:

    • role = string | admin
  10. Now your app is ready to be launched. Either start the development server with hot reload at localhost:8080 ...

    npm run serve
    
  11. ... or create an optimized production build with minification. All build files can be found in the dist directory.

    npm run build
    
  12. (optional) You can import demo content if you don't like to start from scratch. First download the demo data file from the repository. Sign in to SongDrive with your admin user, go to Settings > Import, select the downloaded demo file and import it. You can now have a look at 8 public domain songs, one demo setlist, several song tags, English and German languages and an additional test user.

License

This project is licensed under the MIT License.


SongDrive is completely free to use. If it's useful for you and you enjoy it, please consider contributing or donating via Paypal to support further development. 💚

Open Source Agenda is not affiliated with "SongDrive" Project. README Source: devmount/SongDrive
Stars
35
Open Issues
16
Last Commit
3 weeks ago
Repository
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating