Skip to content

Show management software for Columbia University Lion Dance

Notifications You must be signed in to change notification settings

thetawom/culd-hub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Issues Build Coverage


Logo

CU Lion Dance Hub

Show Management Software for Columbia University Lion Dance
Get started »

View Site · Report Bug · Request Feature

About The Project

This is a custom show management web application for Columbia University Lion Dance, began in the summer of 2022. Every year, CU Lion Dance receives dozens of performance bookings, each of which requires careful planning and coordination of logistics. Previously, a Google Sheets setup was used for members to register for shows, but this grew increasingly cumbersome with scale and became hard to maintain. Even with Apps Script, it was also not fully customizable to the needs of members. From there, the CU Lion Dance Hub was born.

Django React Postgres Apollo-GraphQL Ant-Design Docker Heroku

(back to top)

Getting Started

Prerequisites

CU Lion Dance Hub requires the following to run:

Installation

Clone the repository and move to the project directory.

git clone https://github.com/ew2664/culd-hub.git
cd culd-hub

Install the required Python dependencies for the backend.

cd backend && pip install -r requirements.txt

Install the required Node.js dependencies for the frontend.

cd ../frontend && yarn

(back to top)

Local Deployment

Running with Docker Compose

Move to the project directory.

cd culd-hub

Build and run the Docker image.

docker-compose up --build

Or to run it in the background, just add the -d option.

docker-compose up -d --build

Navigate to http://localhost:3000/ to see the results.

If you need to stop the containers:

docker-compose down

Running without Docker Compose

Make sure you have followed the dependency installation instructions under Getting Started.

Move to the backend directory and clean any existing migrations.

cd backend
chmod u+x scripts/clean_migrations.sh
scripts/clean_migrations.sh

Make and run new migrations.

python manage.py makemigrations
python manage.py migrate

Alternatively, the above two steps can be automated with the make_migrations script. (The -c flag sets the option to clean any existing migrations.)

chmod u+x scripts/make_migrations.sh
scripts/make_migrations.sh -c

If you already have mock data (e.g. scripts/mock-data.json), you can load it into the database.

python manage.py loaddata scripts/data.json

You can also choose to enter data yourself later with the admin site. In that case, create a superuser.

python manage.py createsuperuser

Create a .env file from the env.template file provided and fill in the values.

cp core/settings/env.template core/settings/.env

Start the backend server on port 8000.

python manage.py runserver

In a separate shell, move to the frontend directory and start the frontend server.

cd frontend && yarn start

You may need to temporarily point the backend proxy used by your development server to your backend on port 8000. Restart the server after modifying the following in frontend/src/setupProxy.js .

createProxyMiddleware({
    target: "http://127.0.0.1:8000",
    changeOrigin: true,
})

Navigate to http://localhost:3000/ to see the results.

(back to top)