PraiseLink
Sheet music, lyrics and more sharing web platform for churches and other live performance groups
Idea/Roadmap
Web app for sharing the lyrics for the services
- You can then create teams
- Within team, owner can use the songs
- Lyrics as main item
- Add your own music sheets
- Even 'linking' them to the lyrics
- If the text is large, it scrolls to it
- Make recordings of yourself singing/playing it, so that the rest can practice (such as for the drummers, for example)
- With a practice 'view' (maybe)
- Add an liveview with a share key, like at Kahoot
- Allow the leader to control/scroll
- Add an remote API for external programs
- Add an integration with my SongTextProjector so that it would sync to the songtext on the screen
- And if we were to use this, the person controlling the projector would no longer have to ask which songs
- And no longer ask in which order
Getting started
Cloning this code
git clone https://edugit.org/thedutchprogrammers/praiselink.git
cd praiselink
Installing
npm install
Setup config
Copy the example.env
to .env
You can change the DATABASE_URL
, make sure it is in the format that can be found on this website
Then fill in the mail server details and save.
Initialize database
npm run db:generate
npm run db:push
npm run db:seed
Developing
Once you've created a project and installed dependencies with npm install
(or pnpm install
or yarn
), start a development server:
npm run dev
# or start the server and open the app in a new browser tab
npm run dev -- --open
Testing
For testing you need to create a few files in order to use authenticated routes.
...
Afterwards, you can run:
npm run test
Building
To create a production version of your app:
npm run build
You can preview the production build with npm run preview
.
And you can run the production build using npm start
or node .
or node ./productionServer/
Running in subfolder
You can run this web platform mounted in a subfolder,
Just edit the svelte.config.js
like so:
const config = {
kit: {
adapter: adapter(),
+ paths: {
+ base: '/test',
+ },
},
preprocess: vitePreprocess(),
};
Then run the npm run build
command again and it should build a version where it uses the subfolder.
Then using the npm run preview
or npm start
, it will require you to use the subfolder to access the page.
Background information / Story
I, Miniontoby, am a christian and I help out at the Teenager church diensten by controlling the computer for projecting the lyrics.
It all started when I got a connection with the other person who used to control the computer for the beamer for the lyrics. He always complained about the program we use for the lyrics presentation, that it is bad and slow. So to help him out, I actually made my own software, called SongTextProjector.
When working on improving it, I was thinking about using Speech to Text to automatically go to the next lines, when they got there/finished the previous.
But it was more difficult then I thought, so I decided to turn the tables. Instead of me syncing to the band, I would get the band synced to ME.
Since everyone on the band (like 6+ people) all have their own tablet/ipad with their lyrics + musicchords/sheets. But they all have to scroll on their own tablet/ipad by themselfs meaning they cannot play for 2 seconds.
So that got me thinking: What if I would create a web platform where the leader of the band can submit the songs (with the lyrics) and then the bandmembers can add and align their musicsheets/chords to the lyrics.
And then I would add a liveview with an share key, like at Kahoot, so they can all join. The leader would be able to scroll for everyone then. But I would also add an remote API for external programs to interact.
Then I would integrate that into my SongTextProjector and make the liveview sync when I go to the next lyrics lines. Meaning it would scroll the bandmember's views on their tablet/ipad's.