opencollective / opencollective Goto Github PK
View Code? Open in Web Editor NEWWe're tracking all our Issues, RFCs and a few other documents in this repository.
Home Page: https://opencollective.com
License: MIT License
We're tracking all our Issues, RFCs and a few other documents in this repository.
Home Page: https://opencollective.com
License: MIT License
From user Hunter Trujillo
Hey, I just tried donating, and after Stripe payment went through, I got an error in the title bar that said this:
Unexpected token < in JSON at position 0
And then in my console, I'm guessing you're using Redux, the action that failed was this:
DONATE_GROUP_FAILURE
There was a 503 from a request at this endpoint:
https://opencollective.com/api/groups/43/payments/
The page I was on was here:
https://opencollective.com/apex#support
User had changed ZipCode recently. No place in stripe path to change zipcode
Possible fixes:
As a result, when approving an expense, it doesn't get reimbursed.
WWCode is impacted by this bug.
Backers of a collective should receive a sticker with the logo of the collective and the date of when they started supporting the collective.
Let's brainstorm a few ideas here.
Tried it on dockersf and it redirected to paypal fine. After I logged in and clicked approve, it landed me here: https://opencollective-prod-app.herokuapp.com/login?next=/groups/45/transactions/403/callback.
Need to update the callback url at a minimum. There's also a weird delay after you click "Donate with Paypal".
When making a donation, we should allow the donor to say a few words about them.
E.g. "Developer at Awesome Agency", "Thanks for this awesome open source project!", "In memory of ...", "Go Women Who Code, you rock!", "Proud sponsor", ...
Characters limit should be 100 (so that there is room to add a URL and @mention in a tweet).
Because it is related to the collective, it should be stored in the UserGroups
table that makes the relationship between a user and a collective.
On the Website Repo, we should add a new input field here https://github.com/OpenCollective/website/blob/master/frontend/src/components/PublicGroupSignup.js#L30
and adapt the UserGroups
model on API https://github.com/OpenCollective/api/blob/master/app/models/UserGroup.js#L11
How should we call this new column? description
?
Eventbrite allows organizers to ask ticket buyers to pay the platform fees. We should do the same.
I can repro it on any collective, just try to edit it.
We should let hosts know on a regular basis when their collectives are receiving donations to make their management easier and more efficient. I suggest hosts can opt-in between every activity/daily digest/weekly digest. I wouldn't offer monthly since they get the monthly email anyway.
Talked to Seye (@seyeojumu) about how long our tests take and he thought it shouldn't be this long.
Hoping he can look at our setup and give us any recs.
Actual runtime of last few test runs: https://www.dropbox.com/s/ym4iv6eyjicdwka/Screenshot%202016-04-26%2012.39.52.png?dl=0.
As per #18 organize members in Contributors, Backers, Friends (free membership)
It would be great if there was a hook to tweet a "thanks" to new sponsors or donors from the OpenCollective organization Twitter account.
The cards have the current date as default. We should allow for the core contributors (not backers) of a collective to edit since when they contribute to their project.
They take forever and are unreliable. It is slowing us down.
Any expert in CircleCI out there who can give a helping hand?
It's not a trivial problem as we have a lot of tests spread out across different applications:
When we test website
or app
, we should first checkout the api
repository, install it and run it (ideally, we would want to find a way to cache that as it takes a lot of time).
...while waiting for #returnToMerchant
to appear. Relaunching build usually fixes issue. Race condition or overloaded Paypal API? What are possible solutions?
E.g:
[Approve Transaction] Test Suite
================================
...
Running: connect host Paypal account
✔ Element <#loadLogin> was visible after 5072 milliseconds.
✔ Element <input#login_email> was visible after 1627 milliseconds.
✔ Element <input.button.primary.default> was visible after 50 milliseconds.
✖ Timed out while waiting for element <#returnToMerchant> to be present for 60000 milliseconds. - expected "visible" but got: not found
...
Issue appears even when CircleCi parallelization is disabled and even when tests don't seem to be running at same time on different branches.
We would love to support multiple languages.
It looks like the best framework to do this is to use this React library https://github.com/yahoo/react-intl
We should use the upcoming v2 (currently in release candidate 1), as it brings a lot of changes that will be difficult to migrate to if we already start with v1.
Right now, we did a very quick hack to make OpenCollective in French for LaPrimaire.org, see
This should also remove the need to use Numbro
https://github.com/OpenCollective/website/blob/master/frontend/src/lib/format_currency.js
We have an Activity
model that's meant to record every action in the system. It started as a way to show an activity feed on a group page. Then it evolved into recording events to show in slack. It's incomplete in both cases.
We need to record everything that happens in the system - every action, every bit of data that comes in. Activity
should be modified to cover all the cases.
One way to do this would be to create a middleware that intercepts all routes and records everything. This would clean up scattered Activity
entries everywhere and put them in one place for easy maintenance. Open to other ideas like Kafka?
We need to support rupees as a currency for WWCodeDelhi. Changed it in DB currency is INR.
Also, CSS needs to be changed to reflect new currency: https://en.wikipedia.org/wiki/Indian_rupee_sign#/media/File:Indian_Rupee_symbol.svg
We require all expenses to have a receipt attached. Currently, users need to manually fill that info. No one likes filing expenses, so any reduction in friction in this process would go a long way.
We want to OCR receipts and prefill some of the fields like here: https://opencollective.com/yeoman/expense/new. Submit a receipt and whatever fields we can deduce, we will fill the form for user to review.
Fancier versions of this could hook it up to a phone number. Txt a receipt to us and we'll send you back a link showing what we prefilled and you can edit or approve.
Currently, when you donate $100, stripe charges you $100 and fees come out of that. Depending on how much host takes, end collective gets around ~$87.
We want to let users pay more fees on top of their donation. User clicks on Donate $100
. Dialog shows:
$100
+
$13 fees
=
$113
Confirm
Implementation proposal
feesOnTop
Open questions
When a collective is open and host has not connected their stripe account yet, there is an overlap of the box and the text in donation flow. https://cldup.com/YB4ZCux-ip.png
In a collective, people have different roles and different titles.
For example, you could have core contributors
, organizers
, volunteers
, contributors
, staff
, etc.
Per @asood123's point, we should make sure we that don't create too much complexity with this. So I think it will be good to have only 3-4 different "master roles", but then people can name them how they want and subdivide them in different "tiers".
For example, in an open source project there are core maintainers then a bunch of contributors who contribute at very different levels (some doing one pull request a year, others once a month, others once a week). Likewise, there are different backers. Some giving $1, others giving $500. We should design for that.
This could be achieved by adding a title
column in the UserGroups
table (which should eventually be renamed to UserCollectives
)
E.g.:
We should keep the organization of a collective as flat as possible but we also need to design for providing people different levels of contribution for which they should be acknowledged accordingly.
Here could be a way to schematize this:
id | UserId | CollectiveId | role | title | about | createdAt | deletedAt |
---|---|---|---|---|---|---|---|
1 | 1 | 2 | ADMIN | Core Contributor | Reviewing pull requests | 2016-04-05 | NULL |
2 | 2 | 2 | MEMBER | Contributor | Javascript developer | 2016-4-06 | NULL |
3 | 3 | 2 | BACKER | Sponsor | Best place to work in SF | 2016-4-06 | NULL |
Note that the about
column solves this issues as well: #9 (one-liner/bio for backers)
Allow for Collective organizer/core contributor to approve expenses as well as the host.
Eventually we could allow for collectives to choose between joint approval (host & organizer) or either/or approval.
It's important to communicate to the different members of a collective.
To that end, we should make it easy to send an email update and target specifically certain tiers (e.g. an update for backers, an update for sponsors).
Since a collective is a collaborative space, any member should be able to submit an update (aka a post). For example to do a summary of the latest meetup, share pictures/videos, etc.
To avoid spam, an admin of the collective should approve the post for it to be sent out by email to the targeted audience.
When manually adding funds, an unknown error appears but funds do pass. https://cldup.com/dCg0yVdwpG.png
We want to experiment quickly, so in many cases instead of hacking the backend, we can have someone manually do the work during the experiment. So, let's create the "Operator" route. It takes the payload from the frontend and sends an email to operator@.
Ex: Allow splitting a donation towards multiple collectives. Instead of building the backend and shuffling tables for something that may not stick around, let the frontend send the split of money for each collective in a payload to the Operator.
const payload = {
userId: 89,
donationAmount: 100,
donationCurrency: USD,
split: {
WWCode_HQ: 20,
WWCode_Seattle: 70,
OC: 5,
fees: 5
}
}
The Operator (one of us) will manually "Add funds" to the right collectives.
Specs
Open to discussion on this. ESlint rules
{
"parser": "babel-eslint",
"env": {
"node": true
},
"rules": {
// Disallow Unused Variables
"no-unused-vars": 2,
// require space before/after arrow function's arrow
// https://github.com/eslint/eslint/blob/master/docs/rules/arrow-spacing.md
"arrow-spacing": [2, { "before": true, "after": true }],
// suggest using arrow functions as callbacks
"prefer-arrow-callback": 2,
// suggest using template literals instead of string concatenation
// http://eslint.org/docs/rules/prefer-template
"prefer-template": 2,
// suggest using of const declaration for variables that are never modified after declared
"prefer-const": 2,
// disallow modifying variables that are declared using const
"no-const-assign": 2,
}
}
(instead of tests/frontend/output
)
This will make it easier to see where end to end tests fail.
See https://circleci.com/docs/build-artifacts/
We should do that on website and app repos.
We should have an easy process to on board open source repositories.
We are slowly accepting new open collectives. Apply today to reserve your spot.
If a collective hasn't been approved yet, their page should say something along the lines of:
We have applied to become an open collective. To be approved, we need your help!
We need x more people to commit to become a backer or a sponsor.
Become a backer for $5/month
Become a sponsor for $100/month
You will only be charged once we reach our goal of 10 backers or sponsors
Thank you for your commitment. Help us spread the word!
Currently, we give 5% to the host for any donation. We need to customize this. Some hosts (like the self-hosted ones) want 0%. Some like WWCode want 10%.
This needs to be done soon to make fees for april easier.
All expenses: https://staging.opencollective.com/ispcwa/expenses
All donations: https://staging.opencollective.com/ispcwa/donations
Filing new expense: https://opencollective.com/yeoman/expenses/new
Probably an issue with the API since it is also appearing as "approved" on the app.
Steps to reproduce:
Go to http://localhost:3000/testcollective/expenses/submit
Submit an expense then reject it in the app.
After making a donation through the platform, redirect/show somehow that they show up in the github repo.
Keep track of how members arrive to the collectives. see #18 for more detail.
I just noticed that the backers/sponsors are not displayed with a retina image. IMO they should – looks more official / professional / in active care / you-name-it.
Yes. How can we do that? I guess we will have force the height in the HTML
Yep, force the height in the HTML. Otherwise, maybe some hacks using svg where the svg includes an img with the forced height. (so that the HTML we have to paste is more compact) Maybe there's other ways to do it
yeah I want to keep the html compact, but I also wanted to keep flexibility to improve the design without having to change the HTML
with a card design like on http://opencollective.com/mochajs (but probably more compact than that)
discussion in #mochajs between @xdamman and @dasilvacontin
Currently, we link to a user's avatar photo on Twitter or wherever we can find it. Let's copy it to s3 and link to our copy. That way it won't go empty when the other site changes it.
On a meetup with a host without stripe but with PayPal, when clicking on "Pay With PayPal", it triggers a slack notification before the donation actually went through.
That said, it doesn't seem to record the donation in the DB, so it doesn't look like an urgent bug as I initially thought.
Pulling the info for the public page description of the info from the dropdown menu instead of the description so it reads 'food&beverage' and not ' Pizzas, beer, for meetup'
Images in thank you emails are broken now.This is probably due to the new design. cc / @xdamman @carlosascari
Donation ID 337: $200 to WWC Austin (group id2), platform fees $10 (ok) but host fees is $10 as well (should be $20, 10%) I checked the group and host fees says 10, so I'm not sure what the issue is.
La Primaire: txn id: 327 host fee 25, id 400 host fee 0 (I'm sure this is because we modified fees in between) I'm manually calculating collective's net.
Les barbars: txn id359: host fees should be 0, it is calculating 5%. (might be same issue as above, check next month)
Vloupe [bug]: It started calculating 5% for host on 4-18 (txn 364), but host fee was 0 before and it still says 0.
For paypal flow we need to differentiate fees 'manual' and 'paypal' since 'manual' don't have paypal fees. But we should report them anyway in the monthly email. Since this is still manual, it's a pain to calculate because I can't aggregate expenses and # of expenses.
If PayoutMethod is empty, I assume it's manual. Please confirm.
For foreign currencies we need to pull from Stripe the platform fees and host fees in USD at the currency exchange rate of the day. Otherwise we can't calculate revenue properly.
For buttons to not show in hosts collectives
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.