The simple way to track your music library.
Track the collection of sheet music scores used by choral and other music arts organizations.
- The data tracked per score is as follows:
- Title
- Description
- Voices
- Duration
- Difficulty
- Style
- Publisher
- Publication Date
- Number of copies purchased
- The price per copy
- Composers
- Genres
- Accompaniments
- Arrangers
- Lyricists
- Editors
- Occasions
- The application should allow for associating the event(s) where a particular title was performed.
- The application should allow for tracking the assignment and return of music to the individual performers (members).
- The application must implement authentication.
- The application should allow for different role types and limit the data or functions accessible based on those roles.
- Provided the base structure for the application. The idea for this application was based on a project on his list from a non-profit with which he volunteers.
- Provided the UI design for this project.
- Along with Rojin, provided the UI design for the project, as well as the application name and logo.
- Took the inspiration of the Music Library list display, and incorporated the filtering capabilities and the detail page for a Score from the table.
- axios
- bcrypt
- dotenv
- express
- helmet
- jsonwebtoken
- mysql
- Passport
- sequelize
- formik
- reactjs
- react-bootstrap
- react-fontawesome
- react-router
- react-table
- yup
- Clone the Repository and checkout or create the branch to work on.
- Copy the
env.example
file and save it as.env
. - Update the
SESSION_SECRET
value in the.env
file. The Session Secret should be a very long random string. - Update the
JWT_SECRET
value in the.env
file. The JSON Web Token Secret should be a very long random string. - Update the
SEED_USER_PASSWORD
value in the.env
file. This will become the password for the initial user created when seeding the database. - Update the
MYSQLDB_URL
to point to your local copy of the database. The format of the MySQL URL ismysql://user:password@host/database
where:user
: is the user name to access the database.password
: is the password to access the database. If providing the password it ismysql://user:password@...
host
: the the hostname of IP address of the MySQL database server.database
: is the name of the database.
- From the shell, in the project folder, enter
yarn
to install the project dependencies. - At the shell prompt enter
./node_modules/.bin/sequelize db:create
- Once the dependencies have been installed, type
yarn start
to launch the application.
In the development environment, sequelize-cli is configured to store the tracking information in a local JSON file. To see the database after cloning the repository, perform the following steps.
-
From a shell in the project folder, enter the following commands to put sample information in the database.
./node_modules/.bin/sequelize db:seed --seed 20190308184118-async-add-sheet-music ./node_modules/.bin/sequelize db:seed --seed 20190313232716-add-user ./node_modules/.bin/sequelize db:seed --seed 20190315145803-add-performances ./node_modules/.bin/sequelize db:seed --seed 20190315145808-add-members ./node_modules/.bin/sequelize db:seed --seed 20190315145751-add-user-roles ./node_modules/.bin/sequelize db:seed --seed 20190315164823-associate-music-to-performances
-
Once all of the seed files have been executed, you should be able to login to the application. The default username is
admin
, and the password is what you defined in the.env
file as theSEED_USER_PASSWORD
.