This is the Membership Management System ("the system") used by the San Francisco Civic Music Association. It is a fairly basic Rails app, with a few standard gems on top of it. It is made to run on a single Heroku dyno, plus database.
Note that there is no current JS pre-processing that occurs.
The system is used for several key areas of SFCMA's activities:
Here is a basic overview of the data model:
Members is the core model, representing the players.
Users are the login accounts. While there is a large overlap with members, we have chosen to not link the two
Ensembles represent each of the ensembles in SFCMA, such as the Civic Symphony.
PerformanceSets represent a single set of rehersals and concerts where an ensemble plays the same music with the same group of musicians. Most Performance Sets in SFCMA ensembles have a eight rehearsals and a single concert, but that is not always the case.
MemberSet is the join table between members and the performance sets that they participate in. Additional data about the player's participation is stored in this table, except the instrument.
SetMemberInstrument is an additional table that records the instruments played by the member for a given performance set, since there can be more than one.
Install Ruby 2.7.3 using RVM or rbenv
Install heroku cli, sqlite3, postgres, pkg-config, and imagemagick: sudo apt-get install heroku-cli sqlite3 progresql pkg-config imagemagick libmagick++-dev
Run git clone https://github.com/sfcma/members.git .
In that folder, run ruby -v
and make sure it matches the correct version
Run gem install bundler
Run bundle install
Run heroku git:remote -a limitless-sierra-92168
to set up correct remote repo
Output from git remote -v
should look like this:
heroku https://git.heroku.com/limitless-sierra-92168.git (fetch) heroku https://git.heroku.com/limitless-sierra-92168.git (push) origin https://github.com/sfcma/members.git (fetch) origin https://github.com/sfcma/members.git (push)
Run ruby db:setup
Run rails s
to start server
Visit http://locahost:3000