Giter Club home page Giter Club logo

gitpay's Introduction

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 where you can collaborate with other people who are using Gitpay and work together to find solutions. Feel free to join the community and hang out on Slack with us.

Join us on Slack

What is Gitpay?

Gitpay is an open-source platform that empowers collaboration and rewards contributions to open-source projects. With Gitpay, you can complete tasks from anywhere in the world with open collaboration and receive bounties for completing them. Likewise, companies can receive reports, fixes, and enhancements from developers and offer bounties for completing requirements.

Who is contributing?

This project has been made possible thanks to all the amazing people contributing their time and effort into making Gitpay better. You can also start contributing to the project and join the community by contributing to Gitpay on GitHub or join our team on GitHub first.

Join the Gitpay team on GitHub

Requirements

To contribute to Gitpay, you will need the following:

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

Running Tests

To run the tests, use the following commands:

npm run migrate-test (first time)

npm run test (to run the tests)

Setup Environment

To ensure full integration with the API services used by the platform, you will need the API keys. You should make a copy of your .env.example file and rename it to .env with the right credentials. Please let me know if you need any of these credentials to solve an 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 by running the following command: brew install postgres
  2. Start the command service by running the following command: brew services start postgresql
  3. Create a postgres user by running the following command: createuser postgres -s
  4. Login into the Postgres cli with by running the following command: psql -U postgres
  5. Create a test database by typing the following command: create database gitpay_test;
  6. Create a dev database by running the following command: create database gitpay_dev;
  7. Run this command to exit: \q

Install PostgreSQL (Linux - Ubuntu)

  1. Install by running the following command: sudo apt install postgresql
  2. Start the command service by running the following command: sudo service postgresql start
  3. Create a postgres user by running the following command: createuser postgres -s
  4. Login into the Postgres cli with by running the following command: sudo -i -u postgres
  5. Access the Postgres prompt by running the following command: psql
  6. Make sure the Postgres user has the correct password by typing the following command: ALTER USER postgres WITH PASSWORD 'postgres';
  7. Create a test database by running the following command: CREATE DATABASE gitpay_test;
  8. Create a dev database by running the following command: CREATE DATABASE gitpay_dev;
  9. To finally exit, type the following command: \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: #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

gitpay's People

Contributors

alexandreramosdev avatar alexanmtz avatar arrudaricardo avatar ataquino avatar camillelabanca avatar dependabot[bot] avatar etfaghaoubeid avatar f3ve avatar farolanf avatar github-actions[bot] avatar leandroramosdev avatar leonardohofling avatar mthais avatar namandangi avatar nguyenquangv97 avatar precious-macaulay avatar progressandro avatar qiweiii avatar rafaelquintanilha18 avatar rogdevil avatar savvyshah avatar shawn-noruzi avatar simran-chaudhary avatar sisohs avatar spikeboom avatar srkyaganti avatar theodorosidmar avatar vczb avatar victoralessander avatar wharley avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gitpay's Issues

Deadline card should be displayed only for the owner

Hey, how are you? This is the deadline card:

screen shot 2018-06-04 at 2 08 07 am

It's a place to setup a deadline of a task. Please restrict this view only for the Task owner

How to fix

A important think here is that is possible to create task without a owner. So in this case he will see the task deadline card, but how we handle after that?

Sugestion

This example of task I would like to show that sometimes we don't have all the answer and we are open to discuss how to solve in that case. But if is not possible and not easy, just do the main think, the happy path, when users are logged and create tasks, only the owner can set deadlines.

Task title

The task title should be added to the task table and sync with Github whatever is possible

Overlapping images on description of a task

A task like this https://gitpay.me/#/task/3 overlaps the image content that is fetched from Github.

We need to manipule somehow the styles inside the content that is originated from Github, that now is generated like raw content.

Why

The attached images on issue description from Github is breaking the layout. It's a very annoying bug

Level

Beginner

Current behavior

The images attached to the task description that comes from Github api is being rendered in original format, and it breaks the layout

Expected behavior

The images attached in the task description should adapt to the boundaries of the box.

Screenshot attached

pageshot of gitpay - freelancing with git 2018-07-01-1456 05

How to solve this issue

  • Try to use CSS to adapt the images to the context, as well coding format, everything should wrap the box container
  • Feel free to try another library that do the job better

How to reproduze the user scenario

What you will need to complete this issue

You don't need any extra API keys to solve this issue

Tips

Create a Sequelize seed to creata a user and a task to allow to test locally

Send notification webhook about new balances

Stripe send notifications on our webhook route (https://gitpay.me/webhooks) sending information about the balance of an account. This balance is very useful to control the transfer about the bounties being sent.

The webhook notifications is already setup and integrated with the e-mails, tested and working for a lot of notifications that happens in many actions inside the Gitpay platform, as we have here:
https://github.com/worknenjoy/gitpay/blob/master/modules/load/controllers/webhook.js

We need to support this new webhook that give information about the balance.

This is the request received:

{
  "id": "evt_1234",
  "object": "event",
  "api_version": "2018-02-28",
  "created": 1530508059,
  "data": {
    "object": {
      "object": "balance",
      "available": [
        {
          "currency": "usd",
          "amount": 6420,
          "source_types": {
            "card": 6420
          }
        },
        {
          "currency": "brl",
          "amount": -2448,
          "source_types": {
            "card": -2448
          }
        }
      ],
      "connect_reserved": [
        {
          "currency": "usd",
          "amount": 0
        },
        {
          "currency": "brl",
          "amount": 0
        }
      ],
      "livemode": true,
      "pending": [
        {
          "currency": "usd",
          "amount": 0,
          "source_types": {
            "card": 0
          }
        },
        {
          "currency": "brl",
          "amount": 0,
          "source_types": {
            "card": 0
          }
        }
      ]
    }
  },
  "livemode": true,
  "pending_webhooks": 1,
  "request": {
    "id": null,
    "idempotency_key": null
  },
  "type": "balance.available"
}

The webhooks is not configured locally, so to test it you should run the tests:
https://github.com/worknenjoy/gitpay/blob/master/test/webhook.test.js

With npm run test

Why

Stripe send the balances that update the value available to transfer that is really useful to control the transfer that is being made by the platform. So we need to be notified when the balance update

Level

Beginner

Current behavior

The current behavior is a webhook being send to the route /webhooks and isn't recognized and nothing happens, just a pending webhook that should be be send by email to [email protected]

Expected behavior

When a webhook of new balances is send, a e-mail should be send to [email protected]
The email format should be

Subject: Um novo balanço da sua conta no Gitpay

<p>Temos um novo balanço para a conta do Gitpay:</p>
<ul>
  <li>currency: value</li>
</ul>

How to solve this issue

Create a test in https://github.com/worknenjoy/gitpay/blob/master/test/webhook.test.js

The test should return sucessful for the new balance object, you should create a fixture with the object received at https://github.com/worknenjoy/gitpay/tree/master/test/data with the name balance.js with the data provided here

How to reproduze the user scenario

  • Make a request to webhooks with the data described in this issue
  • The request will return with fail because the webhook isn't recognized

What you will need to complete this issue

  • You will need the sendgrid keys to be able to receive the e-mails
  • You will need to sucessful run npm run test

All the keys will be provided once you accept this issue

Tips

It's a great task to practice TDD, so first create the test setup and run. After you have the desired result, make requests (with POSTMAN or curl) and you will receive the emails (First you need to test to send in your own email, after you have the desired result, switch to [email protected])

Beta tester to validate an account and be rewarded

This a task that will validate the flow for a freelancer be rewarded by solve a issue.

This is the issue that it has to be solved by validating your account on http://gitpay.me

How to conclude this task

  • You have to login on gitpay.me, and setup your account. You will fill the fields required and we will contact you to complete the account setup
  • You will visit the link of the related task on Gitpay site, that should be https://gitpay.me/#/task/30
  • You have to confirm interest
  • You will be assigned to the task
  • The task is confirmed
  • You will receive the $5 bounty to complete the task in your account and then it should be considered done

Screenshot

This is when you create a account when you're logged. You will have pending verifications that we will validate with you to offer a account that you will receive for the bounties completed.
screen shot 2018-06-04 at 1 48 37 am

When you visit a task, you will show interest and who creates the task will know that you want to start. So you can be assigned and once assigned, you will be able to receive after complete.
image

This is just a test so once you complete the steps you will be able to receive by direct transfer by complete these steps described here.

This is where you create an account
screen shot 2018-06-04 at 2 01 35 am

Pay attention to the deadline that is usually set
screen shot 2018-06-04 at 2 08 07 am

Remove errors from ESLint

It's necessary remove all errors what the ESLint show when is run command of verify Javascript pattern what was configurated on project.

Why

To maintain a standard of code

Level

Medium

Expected behavior

Today is configured not to pass eslint error in prepush. You need to run git push with success

How to solve this issue

All message what ESLint show are intuitive

What you will need to complete this issue

You need to run git push with success

Tips

It is exist plugins to ide vscode and atom to help on solution.

  • Prettier plugin

Better check for active account

Some accounts are activated without bank accounts, so we need a better handle to make sure that a account is active only if have a successful bank account registered

Some users can't create an account with no public email

As we have faced before, the users that try to login with their Github account can't have an associated e-mail if his e-mail is private on Github.

We have this issue:
https://stackoverflow.com/questions/35373995/github-user-email-is-null-despite-useremail-scope

Why

We need that the users be able to login regardless of the Github email privacy settings

Level

Advanced

Current behavior

Users only can log with their Github accounts, if the e-mail is set to public

Expected behavior

The users should be able to log using their github account even if their email are set as private. One alternative would be request the user e-mail before create an account

Usefull links

https://stackoverflow.com/questions/35373995/github-user-email-is-null-despite-useremail-scope

How to reproduze the user scenario

  • Try to create an account with your Github privacy settings using the e-mail as private

What you will need to complete this issue

You need to figure out how to have the right scope that provide the user e-mail even if is a private one

Tips

We tried to solve this before here: #36

Proccess webhook of transfer failed

We have a webhook about a failed transfer that should be send to the destination account as the other webhooks

Here is the format:

{
  "id": "evt_1ChFtEAcSPl6ox0l3VSifPWa",
  "object": "event",
  "account": "acct_1CdjXFAcSPl6ox0l",
  "api_version": "2018-02-28",
  "created": 1530014600,
  "data": {
    "object": {
      "id": "po_1CgNDoAcSPl6ox0ljXdVYWx3",
      "object": "payout",
      "amount": 7409,
      "arrival_date": 1529884800,
      "automatic": true,
      "balance_transaction": "txn_1CgNDoAcSPl6ox0ldyOtyaAP",
      "created": 1529804456,
      "currency": "brl",
      "description": "STRIPE TRANSFER",
      "destination": "ba_1Ce0PIAcSPl6ox0lFYghLdq4",
      "failure_balance_transaction": "txn_1ChFtEAcSPl6ox0lUAWIKmOf",
      "failure_code": "could_not_process",
      "failure_message": "The bank could not process this transfer.",
      "livemode": true,
      "metadata": {
      },
      "method": "standard",
      "source_type": "card",
      "statement_descriptor": "Gitpay",
      "status": "failed",
      "type": "bank_account"
    }
  },
  "livemode": true,
  "pending_webhooks": 1,
  "request": {
    "id": null,
    "idempotency_key": null
  },
  "type": "payout.failed"
}

So create a new case for this webhook and follow the tests in the webhooks controller to support this webhook and send to the user warning that the transfer failed

Notification about new transfer for a non activated account

We have the basic flow of a bounty for a developer that is:

  1. User A creates a task with a bounty
  2. User B, User C and User D create a user with their Github accounts
  3. User B, User C and User D are interested in this task
  4. User B is chosen to start this task
  5. User B conclude this task
  6. User A pay the reward
  7. User B should receive

The User B to receive the funds needs to activate their account with the bank details:
https://gitpay.me/#/profile/payment-options

So if the payment is made for a user that have their account pending, the user that will receive the funds (User B) should be notified

Why

The user that will receive the bounty should be aware that his account need to be activated to allow the platform send the payments to his bank account

Current behavior

When a payment is send, it is approved but the if the user don't have a active bank account validated at https://gitpay.me/#/profile/payment-options, the user will never receive the money and he should be aware to do that to allow the payment

Expected behavior

When a payment is send, if the user don't have a fully working and active account, he should be notified to finish his account setup in https://gitpay.me/#/profile/payment-options

When the account activation happens on the backend:
https://github.com/worknenjoy/gitpay/tree/master/modules/users

When the payment happens on the backend
https://github.com/worknenjoy/gitpay/blob/master/modules/tasks/taskPayment.js

How to solve this issue

When a payment is send, we should verify if the user has the account_id attribute, if not, send a email in this format requesting to activate:

Você recebeu um pagamento pelo Gitpay, mas sua conta para recebimento ainda não foi configurada, por favor ative sua conta em <a href="https://gitpay.me/#/profile/payment-options">https://gitpay.me/#/profile/payment-options</a> para poder receber os valores

How to reproduce the user scenario

  • Create a account
  • Create a task
  • Give a bounty ($20 for example)
  • Mark as interested to do the task
  • Choose yourself to do the task
  • Do the payment
  • You should receive a confirmation that a new transfer will happen
  • Instead of the notification above, as you create a account without validate an account, instead of the transfer e-mail you should receive an email asking to activate your account first

What you will need to complete this issue

  • You will need the Github or Bitbucket keys to create a account locally
  • You will need the stripe keys to be able to complete one payment
  • You will need the sendgrid keys to be able to receive the e-mails

All the keys will be provided once you accept this issue

Better task list with filters and pagination

The task list is getting messy and unorganized and is a base to guide the developer when exploring tasks, now we need to enhance this component, separate from task list container and fix the filter bugs and add pagination and relevant filters (open tasks, closed, higher price etc)

Sendgrid error when there's no api key

We send notifications for many actions through the platform. When developing locally, if a API key is not provided, it should not crash the actions and just not send emails, and now the code depends of a provided key for that, which is not preferable

Why

Solving this issue you will help other developers to develop locally without to require a api key to send e-mails, as well not be trigger with notifications when developing, leaving this part only in out of development env

Current behavior

The app is not running the whole flow when there's no api key for email

Expected behavior

The app should do the actions on the routes that send notifications and if there's no api key, fails silently

Would be great if we could refactor a little bit of duplicate logic on email module:
https://github.com/worknenjoy/gitpay/tree/master/modules/mail

Update travis node version to fix the build on travis

We are using the spread operator like the example below

{ ...data, id: 1 }

And the build is failing because probably the node version on travis is different and local the test pass
We just need to update the node version to the same version that the package.json

Install Angular

Use angular in the project and continues to display the welcome page

Option to create account is in error

Description

When I click to create an account, the system showing the success alert message, but the system don't reload the page and nothing happened.

Screenshot attached

criar conta

How to reproduze the user scenario

1- Access your account on Gitpay;
2 - Choose the option "Criar Conta";
3- The system showing the success alert message, but the system don't reload the page and nothing happened.

Unselect assigned for a task

When create a task, someone can be interested and you can assign someone to complete. It should be possible unchose (now it's just possible choose another) a assigned user. If is possible should be great select and / or write a reason

The assigned user should be able to mark on the task that for some reason he / she couldnt continue to offer opportunity to others

Should notify that the user was unsigned to a task using the existing email module

Fix the undefined value and add a next step button

This task consist in two things on the same screen as you can see in the screenshot.

First, there's a undefined there that I think is just a matter of handle the object empty state.

Second, we would like to add the same button to the first step to go to the next step, and having control of the steps as is possible when click on a item.

Screenshot attached

pageshot of gitpay - freelancing with git 2018-06-01-1517 55

How to reproduze the user scenario

  • This is a page that is possible to visit after you login on the screen page and click in Configurar pagamento

Docker support for development environment

Improve development experience by automating the infrastructure with docker containers.

By running docker-compose up, we should be able to get the project working when opening the browser at http://localhost:<frontend port>

By running docker-compose -f docker-compose.test up, all tests should run.

Go to account button

screen shot 2018-06-04 at 2 01 35 am

When logged, this blue button should change the label and the action direct user to account

How to fix

There's a logic that changes the button to hidden if is logged, you should make this button appear with a diferent label, and a different onClick handler

Home page stats about the platform

Above 'Nossa stack', give a home stats with the amount of tasks, of users and bounties received using chips

pageshot of gitpay - freelancing with git 2018-07-01-1559 26

Why

The community should be able to track how many users, task and bounties and being created on the platform

Level

Medium

Useful links

Screenshot attached

screen shot 2018-07-09 at 4 20 38 pm

A chip component. We should create a similar with a related icon

How to solve this issue

  • Create a new route (for example: /info or /data)
  • The data should retrieve:
{
tasks: [total of tasks],
orders: [total of value from tasks],
users: [total of users]
}
  • Connect the Welcome component to redux
  • Create actions to retrieve the data
  • Create the chips components with the data retrieved

What you will need to complete this issue

You don't need any extra api key to solve this issue

Signin authentications for github API

We are exceeding the limit for Github requests for issues. We need to have a signed authentication to be able to cross to increase our rate limit for requests

Why

The Github public api for issues has a limited rate limit:
https://developer.github.com/v3/rate_limit/

We need authenticated requests on the api in the places that we call the public api to increase the limit:
https://developer.github.com/v3/#rate-limiting

Level

Medium

Current behavior

The Github api stop to work after we reach the rate limit

Expected behavior

The Github api should have a higher rate limit

How to solve this issue

Use the Github recommended solution:
git-lfs/git-lfs#2134
watsonbox/exportify#6
watsonbox/exportify#6

How to reproduze the user scenario

  • steps to reproduce the issue

What you will need to complete this issue

You will need the github api key to sign request

You will have the required keys once you accept the issue

Tips

The places that we require the github call is on the task fetch
https://github.com/worknenjoy/gitpay/blob/master/modules/tasks/taskFetch.js

Translation

  • React with reducer structure
  • Node part
  • Preferences page
  • Change all strings

Hey, this is a huge one and has a impact in the whole platform.

Have you worked with translation before? You already tried some solution around? This is chance to work and implement from the scratch a solution for translation because we have to support english language. We accept payment worldwide and this is important to open for worldwide market.

We will need to manage the translation as well, but it will be too much complex do a interface for non technical people use this to collaborate with translation

So for now we will have the source translation in a external file in JSON format or other that the library that you propose will use.

We will in another step integrate with https://crowdin.com/. So it has to be Crowdin friendly

You will be open if you implemented this before to use a approach that you're familiar

Warning

You don't need to worry about the translation content, just the structure for people non so nerd as we are to actually do their best with translation.

The translation should happen for strings on the front-end and back-end

Why

We focus on Brazil to support our great developer community. But if we expand and explain about the Gitpay philosophy we could attract a lot of open source projects worldwide and have clients to support very interesting open source projects

Level

Advanced

Current behavior

The website now is completely in portuguese and need to support PT-br and En, the preferences page https://gitpay.me/#/profile/preferences should have a option to switch the language

Expected behavior

The language should get info about the user browser and have a language switch that will change all the platform language

How to solve this issue

Look for translation for react and node libraries and have a proper folder that will hold all the language info

What you will need to complete this issue

  • You will need the Github or Bitbucket keys to create a account locally
  • You will need the stripe keys to be able to complete one payment
  • You will need the sendgrid keys to be able to receive the e-mails

All the keys will be provided once you accept this issue

Exchange status to closed

Making possible to edit status that we show in the title part of the top bar as we can see below:

You should use a Material ui React component, adding a context menu in the ship that have one of the actions set the states of the task, OPEN, INPROGRESS, DONE and FINISHED

Create new webhook for a new card created

We have webhooks to have to notify payment updates, and we already have a lot for charges, transfer and payouts. We need now to handle a webhook that gives information about the card payment

The object send by the webhook is this one:

{
  "id": "evt_test",
  "object": "event",
  "api_version": "2018-02-28",
  "created": 1529347179,
  "data": {
    "object": {
      "id": "card_test",
      "object": "card",
      "address_city": null,
      "address_country": null,
      "address_line1": null,
      "address_line1_check": null,
      "address_line2": null,
      "address_state": null,
      "address_zip": null,
      "address_zip_check": null,
      "brand": "Visa",
      "country": "DK",
      "customer": "cus_test",
      "cvc_check": "pass",
      "dynamic_last4": null,
      "exp_month": 10,
      "exp_year": 2019,
      "fingerprint": "test",
      "funding": "debit",
      "last4": "7743",
      "metadata": {
      },
      "name": "User Test",
      "tokenization_method": null
    }
  },
  "livemode": true,
  "pending_webhooks": 1,
  "request": {
    "id": "req_BMnICMT36tV8vh",
    "idempotency_key": null
  },
  "type": "customer.source.created"
}

How to reproduze the user scenario

  • Run the tests that emulates a webhook request, create a new test that emulates the object above

How should work

After a request for gitpay.me/webhooks with the following object, the system should handle and send a e-mail passing the card info with the cardholder name and last 4 digits

How to solve this issue

Follow the other tests and webhooks to understand how it works to create a new scenario:

Good to know

You don't need to care about the email text, the important thing is use the information required (card info, user and last4 digits)

A real issue to test the flow

This is a task that will demonstrate the payment flow for https://gitpay.me

This is a task that I will assign for myself. So I will follow the steps to complete:

  1. Paste this task on Gitpay in Criar tarefa
  2. Make a payment for that task
  3. Show interested on this task
  4. Be assigned for this task
  5. Change the task to done
  6. Pay for the task

Webpack host for staging

Extract as env variable the API host that is used on the webpack project, and with this we can set a staging env.

Other issue related to that is that we have to pass production keys when generate the main js script bundle to production, so I have to do something like:

FOO=BAR webpack --config webpack.prod.js

We generate locally the production bundle. Think twice before change that, because we would have to move to generating on heroku, and I'm avoiding this for now.

Responsive Website

In version mobile the gitpay website is showing some layout error. Check it.

Screenshot attached

whatsapp image 2018-06-05 at 08 15 09
whatsapp image 2018-06-08 at 18 23 46

How to reproduze the user scenario

1- Choose a mobile dipositive;
2- Access the gitpay website;
3- The system is showing the layout error;

Database sync in development

After create a migration to add a new field for user:

'use strict';

module.exports = {
  up: (queryInterface, Sequelize) => {
    queryInterface.addColumn(
      'Users',
      'name',
      Sequelize.STRING
    );
  },

  down: (queryInterface, Sequelize) => {
    queryInterface.removeColumn(
      'Users',
      'name',
      Sequelize.STRING
    );
  }
};

The user model is still missing name, even adding one and running the migration with npm run migrate or even a command that I added npm run reset and run the migration again. The old data keep there.

Researching I found that is maybe something related to database sync.

Changing state to show account created

screen shot 2018-06-04 at 1 48 21 am

screen shot 2018-06-04 at 1 48 37 am

For some reason, when you create a new account to receive bounties, the account information screens is not appearing. We have this two screenshots that shows how it should behave

How to fix?

I think there's a place that pass props connected to redux, and we have to check if is being triggered to actually show directly the account info without need to refresh

Level

This seems to be easy but ends with a tricky one, be careful

Authenticated route on the backend to delete a task

It should be possible for a authenticated user that owns the task to delete it. This task is just the backend route that should be a rest call of the type DELETE to a defined task like tasks/delete/:id

Why

This is a part of a feature to implement a delete task on the front-end

Level

Beginner

Current behavior

Not possible to delete a task

Expected behavior

A route in the REST api format to delete a task

How to solve this issue

Add a test here: https://github.com/worknenjoy/gitpay/blob/master/test/task.test.js
that reproduce a task creation as context and make a request to delete that task

What you will need to complete this issue

You will not need any extra api key to reproduce this

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.