Metadocumentation
open-collective
open-collective
  • Welcome
  • About
    • Introduction
    • Terminology
    • Company
    • Pricing
    • Community Guidelines
    • Values
    • Team
    • Investors
    • Contributing
  • Product
    • Features
    • Roadmap
    • Comparison
    • User Profile
    • Currencies
    • Log-in System
  • Collectives
    • FAQ
    • Creating a Collective
    • Quick Start Guide
    • Customize Collective
    • Change Core Contributors
    • Tiers & Goals
    • Add Fiscal Host
    • Change Fiscal Host
    • Transparent Budget
    • Expense Policy
    • Approving Expenses
    • Updates & Comms
    • Events
    • Funding Options
    • Data Export
    • Buttons & Banners
    • Integrations
    • Zero Collective Balance
    • Closing a Collective
  • Financial Contributors
    • FAQ
    • Payments
    • Website Badge
    • Organizations
      • FAQ
      • Bulk Transfers
      • Gift Cards
      • Sustainer Resources
    • Collectives
      • Collective to Collective donations
  • Expenses & Getting Paid
    • FAQ
    • Submitting Expenses
    • Expense Comments
    • Edit an Expense
    • Tax Information
  • Fiscal Hosts
    • FAQ
    • Becoming a Fiscal Host
    • Create a Fiscal Host
    • Fiscal Host Settings
    • Invoices
    • Payouts
    • Host Dashboard
    • Add Funds Manually
    • Refunds
    • Host Fees
    • Local Tax Support
    • Agreement Templates
    • Open Source Collective
  • Contributing
    • Design
      • Design Workflow
      • Design Contribution Guidelines
    • Development
      • Contribution Guide
      • Best Practice Guidelines
      • Bounties
      • API
        • Members
        • Users / Emails
        • Collectives
        • Events
      • README Integration
      • Architecture
      • Postgres Database
      • PayPal
      • Post-Donation Redirect
      • Custom Tweets
      • Manual Reporting
      • Github Permissions
      • Translations
      • Testing with Cypress
      • Collective's locations
    • Documentation
      • Style guide
      • Suggesting changes
    • Translation
  • Internal
    • Scope
    • Team Retreats
    • Brussels Summer Team Retreat
    • Host Admin Manual
    • Newsletter
    • Support
    • Issue Labels
    • DNS Troubleshooting
    • Developer Guidelines
    • Architecture
    • Testing
    • Queries
      • Gift Cards
      • Transactions
      • Ops
      • Collectives
      • Hosts
      • Analytics
      • Emails
    • Projects
      • Maintainerati Berlin 2019
      • Season of Docs 2019
    • The Open Collective Way
      • Values
      • Community Guidelines
      • Core Contributors Guidelines
      • Core Contributors: Communication
      • Core Contributors: Expenses
      • Core contributors: Leave
      • Core Contributors: Compensation
Powered by GitBook
On this page
  • Technical Requirements
  • Project Structure
  • Project Setup
  • Frontend
  • API
  • Others
  • Design Contribution
  • Commit conventions
  • Bounty Program
  • Ask for Help
  1. Contributing
  2. Development

Contribution Guide

PreviousDevelopmentNextBest Practice Guidelines

Last updated 5 years ago

We're happy to have you contributing to our codebase! We recommend you go through the following guide.

Technical Requirements

You'll need to have some basic programming experience with the technologies and tools we use.

Tools

  • Git & Github - clone, commit, open a PR using Git with GitHub. Check out the following tutorials:

Languages & Frameworks

  • JavaScript/Nodejs - We recommend having basic experience working with Node, which Open Collective is written in (frontend & backend). Check out these free JavaScript & Node tutorials:

    • Javascript

    • Nodejs

  • GraphQL - Our API uses GraphQL, powered by and . Understanding how these work is important to contributing to or fixing the majority of the issues on our API. To learn more, check out these tutorials & articles:

  • React & Nextjs - You'll need to understand React and Nextjs to contribute to issues on the frontend. Check out the following links:

    • React

    • Nextjs

Project Structure

The project's core repositories are divided into three:

Project Setup

This section explains how you can get Open Collective running locally on your computer.

Frontend

Setting up the frontend is straightforward. We've provided a comprehensive guide in a seperate document that explains how to set up the project.

Setup guide

NOTE: If you're only contributing frontend code, you don't need to setup the API.

API

Just like the frontend, we have a seperate document for the setup.

Setup guide

Others

Design Contribution

Commit conventions

Before you make your first commit, read through our commit convention, provided in the link below:

Bounty Program

We recommend you learn more about our bounty program through the link below:

Ask for Help

If you stuck or you have a question, join our slack #engineering channel through the link below:

We're trying our best to make our documentation better. We encourage you to give suggestions on how we can improve it.

- Here is where we manage issues and community discussions. Our issues are all labelled with a complexity label. We recommend starting with simple issues ( ).

- This repository contains our frontend code. You can find more information in the setup section of this guide.

- This contains our API code. If you enjoy working on the backend, you can set up our API locally. To learn about setting it up, check out the setup section below.

The API setup requires more effort than the frontend, as it requires installing the and extensions. You might experience difficulty setting up the API on a Windows environment. We recommend using a Unix environment. (We're currently working to make it easier on Windows).

Like to contribute to our design? Checkout our .

Introduction to git
Introduction to GitHub
Popular git commands and how to use them
Git commands in depth
Mastering Markdown
Markdown Tutorial
Introduction to basic principles of Javascript
Introduction to Javascript - w/ Advanced concepts
An interactive Javascript tutorial
Quick introduction to Nodejs
Introduction to Nodejs - w/ quizzes
When, how and why to use Nodejs
Differences between Javascript and Nodejs
Sequelize
PostgreSQL
What is GraphQL and how to use it
Basic concept of GraphQL
Getting GraphQL running
Practical GraphQL tutorial
Basic React Concepts
The Beginner react roadmap - path to mastering react
React Official documentation
Basic introduction to Nextjs
Nextjs Official Documentation
Basic concepts in Nextjs
Introduction to Nextjs - w/ Advanced concepts
opencollective/opencollective
complexity -> simple
opencollective/opencollective-frontend
opencollective/opencollective-api
https://github.com/opencollective/opencollective-frontend/blob/master/README.md
PostgreSQL
PostGIS
https://github.com/opencollective/opencollective-api/blob/master/README.md
design contribution guidelines
https://github.com/opencollective/opencollective-frontend/blob/master/CONTRIBUTING.md
https://docs.opencollective.com/help/developers/bounties
https://slack.opencollective.com/