Skip to content

Bounties for issues on demand. Be rewarded by learning, using Git workflow and continuous integration

License

Notifications You must be signed in to change notification settings

clarencepenz/gitpay

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gitpay

Codacy Badge Financial Contributors on Open Collective FOSSA Status first-timers-only Average time to resolve an issue Percentage of issues still open

Gitpay is an open-source platform that empowers collaboration and rewards contributions to open-source projects.

Slack channel

We have a slack channel to collaborate with solutions and to help you, and to be fun

Join us on slack

What is Gitpay?

We offer a marketplace for contributors and projects that use git for on demand project needs, using the Git Workflow as contract to solve issues and reward contributors.

  • You can complete tasks with open collaboration and receive bounties for it
  • Companies can receive reports, fixes and enhancements about the project by developers and offer bounties to complete required tasks

Who is contributing

This project exists thanks to all the people who contribute. [Contribute].

Join the team

Join the GitHub team to be assigned to tasks and to be part of the core.

Join the Gitpay team on GitHub

Requirements

  • Node.js (currently at v8.6.0)
  • React with webpack

Running tests

To run the test: npm run migrate-test (first time)

npm run test (to run the tests)

Setup environment

For fully integration with api services used by the platform, you will need the api keys. You should make a copy of your .env.example to .env with the right credentials. Please let me know if you need any of those to solve a issue (mail [email protected])

You can do this with: cp .env.example .env

You need to run create the .env in order to run the project: cp .env.example .env

Important

  • Make sure to use Node v12 (you can use Node Version Manager (NVM) to manage and switch different Node versions)
  • Don't forget to run npm install on the root and front-end folders

Database

Install postgres (mac)

  1. install: brew install postgres
  2. start the service: brew services start postgresql
  3. create postgres user: createuser postgres -s
  4. Login into postgres cli: psql -U postgres
  5. Create test database: create database gitpay_test;
  6. Create a dev database: create database gitpay_dev;
  7. Exit: \q

Install PostgreSQL (Linux - Ubuntu)

  1. install: sudo apt install postgresql
  2. start the service: sudo service postgresql start
  3. create postgres user: createuser postgres -s
  4. Login into postgres: sudo -i -u postgres
  5. Access the postgres prompt: psql
  6. Make sure postgres user has the correct password: ALTER USER postgres WITH PASSWORD 'postgres';
  7. Create test database: CREATE DATABASE gitpay_test;
  8. Create a dev database: CREATE DATABASE gitpay_dev;
  9. Exit: \q

Install PostgreSQL (Windows)

  1. Download: access https://www.enterprisedb.com/downloads/postgres-postgresql-downloads and download the exe file for windows;
  2. Install: proceed the installation with the postgreSQL setup wizard; once it is requested to provide a password for the database superuser, type postgres.
  3. Login into postgres: psql -U postgres
  4. Make sure postgres user has the correct password: ALTER USER postgres WITH PASSWORD 'postgres';
  5. Create test database: CREATE DATABASE gitpay_test;
  6. Create a dev database: CREATE DATABASE gitpay_dev;
  7. Exit: \q

Run migration

To run the migrations

npm run migrate

To create a new migration

sequelize migration:create --name modelname

How to create new models

  • For Many to Many
    1. Create migration for first model (table organizations)
    2. Create migration for second model (table projects)
    3. Create migration for joint model (table organizations_projects)
    4. Change in the model to Project.belongsTo(models.Organization)
    5. Change in the second model to Organization.hasMany(models.Project)

Database seeding

For more information related to database seeding please refer: https://en.wikipedia.org/wiki/Database_seeding

To seed the database

npm run seed

For test environment

npm run seed-test

For exhaustive list of options available, refer migration.js in root directory

For windows users:

  • Go to line 42 in the migrate.js file and hardcode "seed" into the env var below: const migrationType = process.env.TYPE
  • So it will be: const migrationType = "seed"
  • Then run the commands above

Run project

Frontend server

  • first go to frontend folder: cd frontend
  • Then run the server: npm run dev

Backend (node.js)

npm run start:dev

Then you can access at http://localhost:8082

Translation

Please don't change the translation files directly, they will be managed on Crowdin. The only thing you need to do is run

npm run translate

on front-end and use the React Intl (https://formatjs.io/docs/react-intl/) library to give id and default text to your strings.

Docker

Requirements

  • Docker Engine
  • Docker Compose

Linux

Ubuntu

Installing

Arch Linux / Manjaro / Antergos

Installing

  • Docker and Docker Compose: sudo pacman -S docker docker-compose

Running

Development environment
Test environment
  • Run docker-compose -f docker-compose.test.yml up

First timers

Here you can start to learn how to create your first pull request and start to be a contributor: worknenjoy#247

Financial Contributors

Become a financial contributor and help us sustain our community. [Contribute]

Individuals

Organizations

Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]

License

License: CC BY-NC-ND 4.0

This project is licensed under the Attribution-NonCommercial-NoDerivatives 4.0 International license. Please review the license terms and conditions for details.

FOSSA Status

About

Bounties for issues on demand. Be rewarded by learning, using Git workflow and continuous integration

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 91.7%
  • TypeScript 7.6%
  • MDX 0.3%
  • CSS 0.2%
  • Shell 0.1%
  • HTML 0.1%