Skip to content

Contributing

Garett Tok Ern Liang edited this page Sep 16, 2019 · 2 revisions

Contributing

Welcome! We're glad to have you here.

Regardless of prior programming experience or current inclinations, there are always ways to contribute - from suggesting improvements or reporting bugs to improving documentation and writing tutorials or blog posts to help future developers along, or even spreading the word about WSO amongst your friends. Being part of the WSO Developing community may be an unfamiliar experience, but we hope to make this process as frictionless as possible for everyone, so that we may together do our best for the community.

Ways to contribute

  1. Spreading the word - Let your friends know about WSO! Often people might not be aware that WSO is a student-run organization, and are thus both less engaged with it, but also unaware that their inputs can be transformed into reality. So go out, wear your badge of honour (WSO membership), and proudly let other people know that you are part of WSO and can make what they wish to see in WSO a reality!
  2. Bug Reports/Feature Requests - Simply use the production (https://wso.williams.edu/) or development (https://wso-dev.williams.edu/) websites, and file an issue when you notice that something does not seem to work as intended.
  3. Design Suggestions - Designing a great user experience hinges greatly on both the aesthetics, but also an intuitive, frictionless layout for the end user. Being able to simply use the website, and note when buttons are too small, too misleading, or are absent when they shouldn't be will help a ton! Furthermore, if you have the design skills, we can help make your designs happen.
  4. Wiki/tutorials/blogposts - Even minor issues such as typos, grammatical mistakes, or missing punctuation can and should be fixed! Otherwise, it is our hope that this wiki can attain a sustained presence, and the best way to go about it is by ensuring that it delivers quality content - and you as a wiki user have a large role to play in this! Tutorials or Blogposts are also often helpful, both for you to log your thought process and the steps that you undertook, but for future developers to understand how a certain change is done as well.
  5. Development - Find an open issue, let us know that you are working on it (to avoid duplicate efforts), and submit a pull request when it is done. For more complex issues, let us know how you're intending on fixing it beforehand, so that we can decide if your approach is the intended approach we wish to take.

If in doubt, either open an issue for discussion, or contact Garett via Slack or email (gt4@williams.edu), and he will guide you from there.

Technical Prerequisites

If you wish to contribute via coding, we have a few resources below:

  • Git - is what we use for source code management. A short and simple guide is available here.
  • Javascript - The language used for programming in the front-end. Head over to Mozilla's Javascript guide where there are tutorials for your perusal.
  • React - React is a Javascript library meant for building views and interfaces. Use the official React Tutorial as a good place to start.
  • React + Redux - Redux is a state-management tool which helps make state management in react more straightforward by allowing separate components to share the same state without the use of convoluted syntax. A good tutorial can be found here

Development workflow

  1. If you haven't already, head over here to set up your machine for the local environment.
  2. Find an issue you wish to work on, and comment that you wish to take it. Good issues to get your feet wet are those tagged with good first issue
  3. If the problem is nontrivial, comment with your intended approach so that we can come to an agreement as a dev community to avoid any potential waste of work due to miscommunication of expectations.
  4. Fork the repository from the master branch into a new branch and commit your code to the branch. Be sure to push regularly.
  5. Push the changes and create a pull request, and request @walnutdust to review it
  6. If further changes are required, make the necessary changes and re-request @walnutdust to review it.
  7. Once it is approved, it will be merged onto the master branch. A continuous development/continuous integration pipeline will be set up to integrate your changes onto the development server, and you will be able to see your changes at https://wso-dev.williams.edu
  8. After a week on the development server, a script will pick up the changes and integrate them with the production server.
  9. Congratulations! Your changes are now available on production!
Clone this wiki locally