Overview
If you're reading this page, you're probably interested in contributing to the project. Thank you! We welcome contributions from anyone at Peak to Peak Charter School (or anyone on the internet!), and are grateful for all improvements! This page will help you get started, even if it's your first time contributing to an open source project!
What is "open-source"?
This project is "open-source", which means that anyone can view, modify, and distribute the code. This is in contrast to "closed-source" projects, where the code is kept secret. Open-source projects are often free to use, and are often developed by a community of volunteers. You can see this project's code on our GitHub page, which is a website that hosts open-source projects.
Content licence
The code and content of this site is licensed under the MIT License, which allows anyone to use, modify, and distribute the code and content. You can read the full license here. Any changes to the site will also be submitted under this license to the project.
How can I contribute?
There are many ways to contribute to this project, and you don't need to be a programmer to do so! Here are some ways you can help:
- Writing new music theory articles
- Adding new resources to pages
- Fixing typos
- Fixing bugs
- Making music theory videos to add to the site
- Drawing art for the site to include (we always need more bears to put on the site!)
If you're a programmer, you can also help by:
- Adding new features
- Improving the site's performance
- Improving the site's design
- Fixing bugs
Not sure where to start? The issues page on our GitHub repository is a great place to look for things to work on. Issues are tasks that need to be completed, and are a great way to get started with contributing. If you're not sure how to complete an issue, feel free to ask for help!
If this is the very first time you've contributed to an open-source project, congratulations! I'd recommend you follow GitHub's Introduction to GitHub tutorial, which introduces you to repositories, branches, commits, and pull requests. This will teach you the process on GitHub to contribute to theorybear!
Text-only changes
If you're only editing parts of an article, fixing a typo, or doing a basic text-only change (no code), you can edit the website directly in your browser! This is the easiest way to contribute, and you don't need to know how to code to do it.
- Go to the page you would like to edit.
- Click the " Edit this page" link at the bottom of the article.
- Click "Fork this repository"
- Click the pencil icon to edit the file on GitHub.
- Make your changes, and click the "Commit changes..." button at the top right of the page.
- Click the "Create pull request" button.
- Describe your changes, and click the "Create pull request" button.
That's it! Your changes will be reviewed by a maintainer, and will be merged into the site if they are approved.
Code/changes that require testing
This project is built with Docusarus, a static-website generator. If you have never used Docusaurus before, I recommend you read the Docusaurus documentation to get familiar with the project structure and how it works. This project also uses React, a JavaScript library for building user interfaces. If you have never used React before, I recommend you read the React documentation to get familiar with the basics of React.
If you're making a change that requires testing (such as creating a new article, adding a new feature, and fixing a bug), you'll need to clone the repository to your computer. This will allow you to test your changes locally before submitting them.
- Clone the repository onto your computer. The easiest way to do this is to click the "Code" button on the GitHub repository page and click "Open with GitHub Desktop".
- Open the repository in your code/documentation editor of choice.
- In the terminal, run
npm install
in the project directory to install the project's dependencies. (You can get npm here or install using Homebrew on macOS withbrew install npm
.) - Run
npm run start
to start the development server. - Make your changes, and commit them to a new branch.
- Ensure that
npm run build
runs without errors. - Push your branch to GitHub, and create a pull request.