/soundpost

Soundpost is an app for music students to book lessons with their teachers, track their practice statistics, and access their practice assignments all in one place.

Primary LanguagePython

soundpost

Soundpost is an app for music students to book lessons with their teachers, track their practice statistics, and access their practice assignments all in one place. Logged in students can quickly and easily choose lesson times from their teacher's availability, and upcoming lessons display directly in their dashboard. To ensure that they are practicing consistently, students can keep a record of which days they practice and look at interactive stats to see how they measure up. Students can also ensure that their practice is effective by viewing current and previous assignments from their teachers.

Try the live site here. | View the database schema and feature list in the Wiki.

Tech Stack

Soundpost uses the following tools, frameworks, and key packages:

Hosted on Heroku

Running Soundpost Locally

  1. Clone this repository

    git clone https://github.com/cellomatt/soundpost
  2. Install dependencies

    pipenv install --dev -r dev-requirements.txt && pipenv install -r requirements.txt
  3. Create a .env file based on the example with proper settings for your development environment

  4. Setup your PostgreSQL user, password and database and make sure it matches your .env file

  5. Get into your pipenv, migrate your database, seed your database, and run your flask app

    pipenv shell
    flask db upgrade
    flask seed all
    flask run
  6. To run the React App in development, checkout the README inside the react-app directory.

IMPORTANT! psycopg2-binary MUST remain a dev dependency because you can't install it on apline-linux. There is a layer in the Dockerfile that will install psycopg2 (not binary).