This directory contains all frontend functionality of SongDrive.
-
Get all files from repository
git clone https://github.com/devmount/SongDrive
-
Install all dependencies
cd SongDrive npm install
-
Create an environment configuration file
.env
from the existing example configuration in the root directory:cp .env.example .env
-
Log in to your Firebase account, hit the "Add a project" button and set up a project name and a server location
-
Now you can add an app by clicking the "Web" button, choose a nickname and click "Next"
-
Copy API key and project ID into your
.env
file -
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.
-
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 addressname
= string | your name
-
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
-
Now your app is ready to be launched. Either start the development server with hot reload at
localhost:8080
...npm run serve
-
... or create an optimized production build with minification. All build files can be found in the
dist
directory.npm run build
-
(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.