An internal management panel for all UCLA Radio managers, DJs, members, and interns.
Panel has a couple of dependencies that it needs before you can start developing. Make sure that you have installed the following programs:
- A package manager. On macOS, we recommend Homebrew; on Windows we recommend Chocolatey
- Node. We recommend install node via your package manager. See how to do that for Homebrew, Chocolatey.
- Yarn.
- VS Code! You can develop Panel with any text editor, but we have a lot of nice features such as debugging and task running set up out of the box with VS Code. If you aren't familiar with VS Code, we recommend you check out our list of resources, which has a VS Code section.
- Cairo and Pango. These are libraries that are dependencies for a package we use, Trianglify. You can read about how to install them for your system here.
Panel uses create-react-app (with react-scripts-ts) to make development as easy as possible.
After downloading the above dependencies, you should be able to run
yarn start
to start the development server. If you're on VS Code, you can also trigger this command with the command ⇧⌘B
on macOS or Ctrl+Shift+B
on Windows.
We use this github repository to host and maintain all Panel code, and follow a git workflow fairly similar to the GitHub flow. New branches should follow the naming scheme of <your-first-name>/<feature-name>
, e.g., nathan/comic-sans-mode
. Pull requests should be made after the branch is created, given a descriptive title, and should be prefixed with [WIP]
(for "work in progress") until considered ready to merge into master
. master
is considered to be production ready and is autodeployed. All pull requests should pass all tests, be code reviewed, and be determined to be working in the staging environment before being merged to master
. All merges to master
should be squash merges to keep the git history clean and be done via GitHub.
To debug in VS Code, make sure that the development server is running, then select the debugging view. You can start debugging by pressing the green arrow or F5
. Debugging is supported in Chrome and also supports Hot Module Reloading. For more information on VS Code debugging, see the VS Code documentation on debugging and debugging in node.
We use Jest as our testing framework. To run tests, simply type:
yarn test
All pull requests (as well as the master
branch) are also tested by Travis CI. Code coverage is tracked by Codecov. All pull requests should increase or maintain the current code coverage percentage.
Panel is deployed with Netlify. Netlify will deploy all new pull requests at unique URLs for staging.