Skip to content

How to Contribute

Victor Hong edited this page Dec 2, 2018 · 3 revisions

Thanks for visiting this page. Your eagerness to contribute means a lot to us! This page will provide a brief guideline on how to get started.

Skills that will help

It would be great if you are familiar with the following technology as that is what we use for creating our web application:

  • react
  • material-ui
  • python
  • django

No worries if the above list is new to you. We welcome anyone who is eager to learn. Basic HTML, CSS, JS will be sufficient to start with. We utilize Es-lint linting to ensure industry standard JavaScript no matter the experience level. Choose the technology you would like to learn and dive into it. We will help you by providing best online resources, Q&A sessions, necessary guidelines.

Communication

Proper communication is important! We use Slack as a platform for communication. You can find us there 24/7. You can ask questions, share your suggestions, get breaking news updates on project, complain that tests are failing, well.. literally every project related issue can be raised there.

If you feel that you need a detailed explanation, you can find us on campus Mon-Fr. We have team meetings two times a week: Wed @ 5pm and Thu @ 1pm. Participation is not mandatory but welcomed. Not only will you get proper answers to your questions but also inspiration from working with peers.

How we organize our work

We use GitHub as a development platform for our project. Steps to proceed while working on a task:

  • get a task assigned to you
  • create a branch to work on the task
  • write code
  • don't forget to test it
  • add, commit and push to master
  • create a pull request
  • comment on your PL

Code Review

Everyone

  • Accept that many programming decisions are opinions. Discuss trade offs, which you prefer, and reach a resolution quickly.
  • Be nice, communication is key.
  • Ask good questions; don't make demands.
  • Everyone's working schedule is different so tried to be mindful.

Review

  • Test your code and pass all CI testing.
  • Request a code review before merging.
  • Add comments to your code and commits.
  • Be explicit. Remember people don't always understand your approach.

Done

  • Merge once you feel confident in the code and its impact on the project.

Running the project locally on your computer

Backend

How to run the backend for the first time:

Prereq: pip3 and virtualenv

    1. git clone [repo url]
    1. cd studY/

Create a .venv folder using virtualenv

    1. virtualenv .venv
    1. source .venv/bin/activate

Download requirements and start project

    1. cd backend/
    1. pip3 install -r requirements.txt
    1. python manage.py runserver

To deactivate( from anywhere ) the virtualenv: + deactivate

Frontend

  • go to the github repo and clone the project
  • cd to the folder where you saved the project
  • cd frontend/
  • run npm install
  • run npm start

And most important:

  • be proactive: ask questions, share your ideas, be devoted
  • be honest: with your availability, expectations, failures and achievements
  • stay positive: we are all here to learn, so let's help each other enjoy this process