Skip to content

jwjacobson/jazztunes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Documentation Status

jazztunes - a jazz repertoire management app

Jazztunes is a web app that helps jazz musicians manage their repertoire. To use it, go to jazztunes.org.

This readme focuses on technical aspects of the app of interest to developers; for a user manual, see here.

Tech stack

Jazztunes is a full-stack web app built using Django 5.2 on the back end and htmx on the front end with Tailwind CSS for styling. The database is PostgreSQL. Tables are implemented with DataTables for clickable column sorting. Tests are written in pytest and Playwright. The deployed version uses Python 3.13, but it should work on Python 3.11 or later.

Database structure

ERD coming soon!

Local installation

Follow these instructions if you want to run jazztunes locally or develop it. Otherwise, the easiest way to use it is at jazztunes.org.

Note: these instructions assume you are using uv for project management.

  1. Clone this repository.
  2. Navigate to the jazztunes directory.
  3. Copy the contents of env-template into a file named .env in the project's root directory. env-template contains reasonable default values, but change them as needed.
  4. Install dependencies: uv sync.
  5. Set up the database: uv run python manage.py migrate.
  6. If you want to use the Public tune feature, you'll need to create a superuser: uv run python manage.py createsuperuser, then set that user's ID to ADMIN_USER_ID in .env (it will be 1 if it's the first user created, otherwise 2, etc.). Tunes you create as the superuser will show up on the Public page for all other users. Creating a superuser is also a good idea because it gives you access to the Django admin interface.
  7. Start the server: uv run python manage.py runserver
  8. Ctrl-click on http://127.0.0.1:8000 — This will open jazztunes in your default browser. You can also just navigate to that address in a browser.
  9. You can close the program by closing your browser and pressing Ctrl-C in the terminal running the server.

Running the tests

Jazztunes includes unit tests written in pytest and end-to-end tests which use Playwright. If you are contributing to Jazztunes, please (1) run the tests, to make sure your contributions don't break anything; and (2) write tests covering your contribution, if applicable. Or perhaps you'd just like to contribute some tests! Tests can be found in the tests directory at the root of the project.

Run all the tests:

uv run pytest

Run only the unit tests:

uv run pytest -k unit

Note: the -k option can be used to match any pattern in directory, file, or test names!

Run the tests in "headed" mode (for end-to-end tests only -- a browser will open and you can watch it go through the steps):

uv run pytest -k e2e --headed

See the respective docs for many more options when running tests.

License

Jazztunes is free software, released under version 3.0 of the GPL. Everyone has the right to use, modify, and distribute jazztunes subject to the stipulations of that license.

About

a jazz repertoire management app

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6