DanceBlue's mobile app is a great way to interact with DanceBlue year round from the comfort of your phone
Explore DanceBlue
Donate
·
Report Bug
·
Request Feature
Table of Contents
DanceBlue is a University of Kentucky student-run organization that fundraises year-round and culminates in a 24-hour no sitting, no sleeping dance marathon. The money raised through DanceBlue is donated to the Golden Matrix Fund, established to support the kids of the DanceBlue Kentucky Children’s Hospital Hematology/Oncology Clinic both today and well into the future through an endowment. DanceBlue funds also support the year-long fundraising engine and operations that underpin the mission, as well as providing funds to support research at the UK Markey Cancer Center. The Golden Matrix Fund was created to benefit the DanceBlue KCH Hematology/Oncology Clinic patients and families. Childhood cancer not only affects the child physically, but it also creates many emotional and financial difficulties for the entire family. The goal of the Golden Matrix Fund is to provide care and support for the kids through giving them and their parent’s comfort.
To get a local copy up and running follow these simple steps.
- Install either VSCode or a JetBrains IDE
- Set up your IDE's dev container support, for VSCode this consists of an extension
- Set up docker according to VSCode's guide
- Reopen this repository in the dev container (note: on windows you should try and clone the repository into a folder in WSL or a docker volume for performance reasons)
- Copy all
.env.example
files and remove the.example
extension, then fill in the values
Alternatively you can set up your own Postgres database and then install the repository like a normal Typescript monorepo, but I personally recommend using a dev container
There are four packages in this repository: mobile
, portal
, server
, and
common
. There are a number of npm scripts configured for each, some of which
are available in the top level package.json as well, prefixed by the package
name. Broadly the build commands are package:build
and package:watch
for a
single build or automatic builds respectively. There are also a few repository
level scripts, for example testing and linting.
There are also a number of linting and type-checking scripts, the package
specific ones are package:check
, however you will generally want to just run
the global command repo:check
. This will check that the entire repository
passes ESLint, Prettier, and Typescript checks. To format the repository run
repo:format:fix
and to fix linter issues run repo:lint:fix
.
All scripts relevant to running the project have a corresponding entry in the
VSCode launch.json file. This means that in VSCode you can use the 'Run and
Debug' panel to start any target. Generally you can use on the 'Dev Environment:
...' run configurations, these configs will activate any watchers needed to
build the codebase and then start each relevant project. Alternatively you can
run each component individually from the cli (package:dev
or package:start
depending on the tooling) or from the same 'Run and Debug' menu.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
If you are interested in joining DanceBlue, send me a message (see my contact info)!
- Naming convention for files is roughly:
- PascalCase for files that represent a single entity (i.e. a type or component) unless it is a plain function
- camelCase for files that represent a collection of entities (i.e. an index file, a collection of values, multiple unrelated exports) or a plain function
- Folders that are intended to be imported directly should match the case of their subject (i.e. PascalCase for a folder with a component)
- kebab-case for other folders
- ESlint has rules for most other cases, it is highly recommended to install
the eslint plugin for your editor or keep
eslint --watch
running in the background
Distributed under the Mozilla Public License 2.0. See LICENSE for more information.
App & Web Development Coordinator - app@danceblue.com
App & Web Design Coordinator - design@danceblue.com
Project Link: https://github.com/UKDanceBlue/monorepo
- Tag Howard - App & Web Development Coordinator - DB22, DB23, DB24
- Jackson Huse - App Design Coordinator - DB23, DB24
- Skyler Trowel - App Development Coordinator - DB25
- Camille Dyer - App Design Coordinator - DB25
- Everyone on the DanceBlue committee