Skip to content

donatosaur/ensemble

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ensemble

Ensemble is a database driven webapp to assist in managing orchestra personnel and performances.

Overview

The largest 85 symphony orchestras in the United States performed 1,532 piecees over 8,734 times across 3,091 concerts in the 2016-2017 season, yet few database driven solutions for orchestra management exist.

Scope

Ensemble aims to store a historical record of: over 10,000 musician, over 5,000 pieces, and over 1,000 services, venues, concert cycles and instruments each, so that historical data may be maintained over a several decade timespan.

CRUD

  • Backend API calls are defined in api/routes/:entity
  • Frontend API calls are defined in ensemble_ui/src/utils/callAPI
  • All Frontend CRUD operations are accessed through a React Context Hook defined in ensemble_ui/src/hooks/useEntity
  • CREATE and UPDATE are implemented via forms for each entity, defined in /ensemble_ui/src/components/Forms/
  • READ and DELETE are implemented via the table in /ensemble_ui/src/components/DataTable/

UI Configuration

Configuring entity and field definitions:

  • Entity configuration is stored in /ensemble-ui/src/entityConfig.json

    • The format for entityConfig.json is:
                                  | REQ | DESCRIPTION
      "entityName": {             |  *  | database table name
        "description": string,    |  *  | short description, displayed on homepage
        "fields": [{              |  *  | 
          "field": string,        |  *  | API field identifier (should match SQL column name)
          "columnConfig": {       |  *  | 
            "headerName": string, |  *  | displayed as column header
            "type": string        |     | type definition for table formatting
          } 
        }]
      }
      
  • For example:

    "Instruments": {
      "description": "records the instruments that may be played by musicians in the orchestra",
      "fields": [
        {
          "field": "id",
          "columnConfig": {
            "headerName": "ID"
          }
        },
        {
          "field": "name",
          "columnConfig": {
            "headerName": "Name"
          }
        }
      ]
    }
    

Citations

About

An orchestra management database

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published