Giter Club home page Giter Club logo

gitpay's Issues

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)

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.

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

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

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

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

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

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

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

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

Task title

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

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

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

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.

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

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

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.

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

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

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.

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

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])

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

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;

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

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.

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

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

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)

Install Angular

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

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.