A Tool for bandleaders to upload their sheet music library, create setlists, and share them with a team.
- View the fully deployed application on Heroku here: https://chart-source.herokuapp.com/
- View a complete video demo of this application here: https://youtu.be/WjS2R5mJihA
- To install locally, clone this repo, and run
bundle install
from the local repository. - Run
> rvm use 2.7.2
to make sure you are running the proper version of Rails. - Run
> rails s
to launch the Rails server, and navigate tohttp:https://localhost:3000
to view the application in your browser
The database for Chart-Source was designed specifically for sheet music objects, and levereges the full power of Active-Record in Rails for its model associations. The base model is an Arrangement, which belongs to an arranger, an artist, and a song. Arrangements also have many genres, and charts. These arrangements belong to an owner, who can place them in a setlist, to be shared with a team, which has a leader and many members. See the diagram below for my complete database brainstorm:
This solved the problem bandleaders typically run into, where they may have multiple arrangements of a particular song, covering different versions by different artists. This keeps the objects organized, searchable, and allows the leader to specify the exact arrangment for a group to reference quickly and easily.
The New Arrangement page can be reached from the "Manage Arrangements" button on the dashboard, or the "Arrangements" button on the navbar. Nested dynamic forms allow for adjusting this page to accomodate the number of charts in the arrangement. Once entered, the PDF's are uploaded to a Cloudinary.com server. These arrangements can then be used in the dashboard section and added to setlists.
The dashboard page allows for speedy creation of setlists from the users added arrangements:
The technologies in this section include SortableJS and Stimulus for convenient drag and drop effects. This was achieved through Webpacker, built in to Rails to allow for JavaScript packages to integrate into the application.
The Team portal section makes it quick and easy to share your created setlists with your team members. Your team can also share their own setlists or propose variants in the team page.
This application utilizes Omniauth to allow for login through Facebook or Github credentials.
Currently, the free version of Cloudinary does not allow for the preparation and download of PDF's, so the application has placeholder functionality that I hope to eventually build out to bring this application into the market for use by the general public.