Skip to content
This repository has been archived by the owner on Jan 3, 2023. It is now read-only.

vrslev/songbook

Repository files navigation

Songbook

Chords and lyrics website for my church.

Features

Fully functional full-stack application. Pages:

Home — with song list and search

Screenshot 2022-09-03 at 15 56 18

Screenshot 2022-09-03 at 15 56 10

Song view with Apple Music and YouTube links, lyrics, chords, automatic transposition

Screenshot 2022-09-03 at 15 54 59

Screenshot 2022-09-03 at 15 55 05

Screenshot 2022-09-03 at 15 55 14

Login page

Screenshot 2022-09-03 at 15 56 43

🔒 Song add/edit view

Screenshot 2022-09-03 at 15 55 21

🔒🔒 Users view — list of users and add/edit/delete

Screenshot 2022-09-03 at 15 55 37

Stack

Thoroughly tested with Pytest and Vitest.

Getting started

Development — locally

Running

Install Python 3.9 and Node.js, then:

make install  # Python
npm install  # JavaScript

After that you should create .env and fill it according to backend.app.factory.Settings class. Also there's VITE_SENTRY_DSN for Sentry in the browser.

Run make start to start backend server (with prefilled testing data, otherwise: make backend-clean), open another terminal tab and run npm start to start frontend server. Open localhost:3000 and login with username and password super. Done.

Testing

make test  # Python
npm test  # JavaScript

Production — Vercel & Deta

  • Create Deta project.
  • Install Vercel CLI and run vercel. Then fill environment variables in project settings.
  • Create superuser: SUPERSER__USERNAME=... SUPERUSER__PASSWORD=... python -m backend.add_superuser.

Done!