/coophub

Co-operatives repos over the world! 🌈🌎

Primary LanguageCSSMIT LicenseMIT

Coophub

This web app uses the GitHub API to join and show *nicely- the projects/repositories of any subscripted co-operative from over the world.

It is strictly limited to co-operative enterprises.

The main goal is to find in-the-same-place all the open source projects that can be used to start others, be consumed or motivate collaboration.

Add your co-operative

  1. Fork this repo.
  2. Add your co-op in the cooperatives.yml file:
github_org_name:
  name: <NAME_OF_THE_COOP>
  url: <URL_OF_THE_COOP>
  description: <DESCRIPTION>
  location: <LOCATION>
  1. Add-commit-push and send us a Pull Request!

Development

It uses the Elixir Phoenix Framework for the back-end and ReactJS for the front-end. Then, to run this app you will need:

  • Erlang OTP >= 18
  • Elixir >= 1.5
  • NodeJS >= 5.0

Use GITHUB_OAUTH_TOKEN ENV var ir order to authenticate with the GitHub APIv3. Read the guide.

Run it!

  • Install dependencies with mix deps.get
  • Install Node.js dependencies with npm install
  • Start Phoenix server with mix phx.server

Now you can visit localhost:4000 from your browser.

API Endpoints

  • GET api/orgs (all the coops)
  • GET api/orgs/:name (detail of a coop)
  • GET api/orgs/:name/repos (repos of a coop)
  • GET api/repos (all coops repos)
  • GET api/search?q=term_to_search
  • GET api/topics (all the repos topics)
  • GET api/languages (all the programming languages with bytes and %)
  • GET api/languages/:lang (the repos using the lang)

Allowed query params

  • limit - Number
  • sort - popular or latest (default)