Scheduler and dashboard applicaiton for a music camp.
This app runs the music camp scheduler site. The original target audience for this site is around 100 people for a camp around 1 week long. The intended model for the music camp is that people are allocated into groups like orchestras, bands, quartets, etc over several periods in a day. People can mark themselves as "absent" at least one day in advance and will not be allocated to groups in the session. People can also request groups by saying they'd like to play a piece of music, or generate a custom group with their own instrumentation. Once running, the website must be maintained by an adminstrator, and conductors to confirm groups and allocate players.
A general how-to, using Heroku:
- Create a Heroku account
- Make a new web application and point it to this repository
- Create a postgresql instance on your Heroku account, and link this app to it, selecting the python interpreter
- Create environment variables in Heroku for each attribute in the top section config.xml.example, and edit their values to match your needs
- Make copies of and edit your own config.xml.example, campers.csv.example and musiclibrary.csv.example, remove the .example extensions from them, and fill them with your own camp information
- Start the app
- navigate to https://YourAppNameHere.herokuapp.com/YourAdminUUIDHere/setup/. Replacing your app name and the AdminUUID you configured in your environment variable into the URL.
- Upload your config.xml, and wait for the server to say success. If you get errors, check the log, you probably made a typo.
- Reapeat step 8, uploading campers.csv and musiclibrary.csv one by one. You should see "Success" after each upload.
- Go to https://YourAppNameHere.herokuapp.com/YourAdminUUIDHere/useradmin/. You should see all your users and you're good to go.
- Go to an admin user's dashboard (Not the Adminsitrator user, that user can only do database setup and nothing else) and make sure all the periods and configuration was successfully uploaded. Using the site as an admin is fairly intuitive, you create groups from scratch using the homepage "+Full Group", or go to the group scheduling page to automate scheduling for all user requests.
- Go back to the useradmin page and check everyone's boxes with the very top checkbox. Send email invites, and you should be all good. If you do this a few days before camp starts, it gives everyone a chance to upload any extra music they are bringing, and make a few group requests so you can schedule day 1.
A general how-to, using Docker:
- Install Docker
- Pull this repo into a folder
- Create your own .env file with appropriate variables. You can use the .env.example file as a base.
- navigate to the root directory of this repo
- run:
LOGSPOUT_COMMAND="syslog+tls://logsN.papertrailapp.com:XXXXX" docker-compose build docker-compose up -d
- follow the directions from the above heroku example starting after "Start the app"
Enjoy! Feel free to ping me on github if you're planning on using this app. I'll be rebuilding it this year to make it a single page app and add tonnes more features, but it's usable now and works pretty well.