Skip to content

ContributaryCommunity/www.contributary.community

Repository files navigation

contributary

GitHub release GitHub Actions status GitHub issues GitHub pull requests GitHub license

Overview

The goal of Contributary is to help those looking to get started with contributing to OSS projects by providing a convenient and easy way to search for great projects on GitHub that could use their help!

Contributary

Usage

To use the application, follow the prompts:

  1. Pick a language
  2. Based on language selection, select a project
  3. Based on project selection, pick a repository
  4. Browse issues
  5. ???
  6. Profit

Architecture

This is the main UI to the entire project. It maps a custom topology created to help the UI stitch together repositories and issues for given GitHub projects.

Essentially, the topology is heirachical based on

  • Language: it all starts with a programming language
  • Projects: array of projects (orgs, users) which is right now a static list
  • Repostiories: array or repos, this can be a wildcard (*), which will be fetched from GitHub, or as a static list
  • Issues: array of issues from a repo, and not part of the topology here as issues will always be fetched from GitHub

Here a small example:

{
  "language": {
    "javascript": {
      "label": "JavaScript",
      "projects": [{
        "name": "ProjectEvergreen",
        "type": "org",
        "repositories": ["*"]
      }, {
        "name": "thescientist13",
        "type": "user",
        "repositories": [{
          "name": "github-dashboard"
        }]
      }]
    },
    "php": {
      "label": "PHP",
      "projects": [{
        "name": "composer",
        "type": "org",
        "repositories": ["*"]
      }]
    },
    "etc": {
      "//": "/* ... */"
    }
  }
}

For more information, visit the wiki.

Development

This project is an evergreen web application using Greenwood and modern JavaScript and CSS features, powered by LitElement and Web Components.

Setup

To start developing, you will need:

  1. NodeJS LTS >= 14.x
  2. Yarn >= 1.x
  3. Clone this repo
  4. Run yarn install

Tasks

All workflows are available as npm scripts in the project's package.json.

  • yarn develop - starts a local development server
  • yarn build - generate a production build
  • yarn serve - generates a production build locally and serves it
  • yarn test - run tests (use test:tdd to enable file watching and test re-running)