Coder Social home page Coder Social logo

gitcoinco / web Goto Github PK

View Code? Open in Web Editor NEW
1.8K 95.0 771.0 1.14 GB

Grow Open Source

Home Page: https://gitcoin.co

License: Other

Python 25.03% CSS 0.37% HTML 24.79% JavaScript 43.26% Shell 0.22% Makefile 0.07% Dockerfile 0.03% SCSS 5.76% Mustache 0.01% TypeScript 0.45%
gitcoin bounties ethereum opensource eth hacktoberfest

web's Introduction


Logo

Gitcoin (GTC)

Gitcoin Grows Open Source.
Explore more about Gitcoin »

Forum · Docs

Open bounties widget

web repo

Follow @gitcoin GitHub GitHub contributors GitHub GitPOAP Badge GitHub top language Subreddit subscribers

Table of Contents

On Github

Star and watch this github repository to stay up to date, we're pushing new code several times per week!

Check out the CHANGELOG for details about recent changes to this repository.

Also,

On Gitcoin

Check out the available open issues on Gitcoin.

What is Gitcoin?

Functionally, the app has several key features:

  • Smart Contracts -- Where funded issues are stored and indexed.
  • Brochureware -- Describes the project.
  • Funded Issue Explorer -- A searchable index of all of the work available in the system.
  • Funded Issue Submission / Acceptance flow -- Interface between the application and web3.
  • API - the HTTPS API
  • Bot - the GitcoinBot

More about how/why to interact with web3 here.

Technically, the system is architected:

  • Web3 The main source of truth for the system is the Ethereum blockchain. Check out the smart contracts.
  • Web2 This part of the app is built with Python, Django, Postgres, and a handful of other tools that are common in the web2 ecosystem.
  • Web 3 Bridge This is the bridge between web3 and the rest of the application. Mostly built in javascript(web3js) and python(web3py).
  • Brochureware Just a nice little landing page telling folks what the Gitcoin project is.

Developing

HTTPS API

For more information on the HTTPS API, please view the api README

Running locally

With Docker (Recommended)

For more information on running the app locally, please view the documentation for running gitcoinco/web with Docker

Without Docker

For more information on running the app locally, please view the documentation for running gitcoinco/web without Docker

Overriding Application Defaults

For more information on overriding the local dev environment configuration defaults, please view the environment variables documentation

Trying out Gitcoin

Posting your first issue

If you

  • have some work on your Github Issues board that you don't have time (or skills) to do.
  • are dependant upon an upstream repo for something, and you'd like to incentivize them to work on it.

try posting a funded issue at https://gitcoin.co/bounty/new.

Integrating Gitcoin

Basics

Advanced

Background

Testimonials & Case Studies

Integrating the 'available work widget' into your repository

This widget will help you advertise that you support Gitcoin bounties, so that your community knows the best place to contribute.

Check out the widget documentation to learn how

Adding GitcoinBot to your repo

Gitcoinbot will allow you to add issues straight from github.

Check out the gitcoinbot readme to learn how

Adding your token to Gitcoin

Have an ERC20 compatible token that you'd like to use on the platform? Great! Submit this form to submit it to the system

High Level flows...

Bounties

This is the high level flow of a bounty on Gitcoin:

Gitcoin bounty workflow

Chain of Custody

  1. Bounty Funder's Wallet
  2. StandardBounties Smart Contract deployed at 0x2af47a65da8cd66729b4209c22017d6a5c2d2400
  3. (Submission Made)
  4. (Submission Accepted)
  5. Recipient's Wallet

Anywhere between 2 and 4 above, Funder may withdraw their funds via 'Cancel Bounty' function for any reason.

We may introduce arbitration at some point in the future. Until then, we are lucky that Github users are very protective of their reputation, and therefore very kind to each other, and disputes have not generally arisen.

Showing Support to Individuals

  • via Tips

    • A free, fast way to show immediate gratitude towards an individual via github username or email address
  • via Kudos

    • Showcases special skills and appreciation towards other Gitcoin members.

Tips

This is the high level flow of a tip on Gitcoin:

Gitcoin Tip workflow

Kudos

Note:

  • Crowdfunded bounties + bulk payouts are secured by Tips (at least until Standard Bounties 2.0 is released).
  • Kudos are also secured by Tips

Licenses

web's People

Contributors

androolloyd avatar anish-agnihotri avatar apbendi avatar arku avatar captnseagraves avatar chibie avatar danlipert avatar deeayeen avatar gdixon avatar giliomeejg avatar iamonuwa avatar jasonrhaas avatar kammerdiener avatar kennethashley avatar kuhnchris avatar maxstalker avatar mbeacom avatar mds1 avatar michelgotta avatar molecula451 avatar nutrina avatar octavioamu avatar owocki avatar pinkiebell avatar saptaks avatar sebastiantf avatar thelostone-mc avatar think-in-universe avatar vs77bb avatar zoek1 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  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

web's Issues

Gitcoin Security Bounties

The scope of this bounty is for bugs in the Gitcoin software, whose severity is judged by the OWASP model:

owasp-chart-1024x410
.

Payouts will be as follows:

  • Critical: 4 ETH
  • High: 1.5 ETH
  • Medium: 0.5 ETH
  • Low: 0.2 ETH
  • Note: At discretion of Gitcoin team.

Payouts will be made to the first individuals who report bugs, and exploits will be ineligible for payouts if they've already been used on the main-net deployed contract.

Non-security critical severity issues (style issues, gas optimizations) are not eligible for this bounty.

Determinations of eligibility and all terms related to this award are at the sole and final discretion of the Gitcoin Core team.

Bounty Life-cycle

Purpose of this issue: Define guidelines and the process of expressing intent, completing work, and claiming bounties.

Intent: Allow operators to express intent, communicate progress with the issuer and other potential bounty hunters as well as allow the issuer to provide acceptance criteria

  1. Interest
    • Interested, save this for later (bookmark equivalent)
    • Interested (Discovery, or "I would like a little more information on the project)
    • Your level of experience on this issue
      • Novice
      • Mid level
      • Senior
      • Expert
  2. Production
    • Started working on DATE
    • Expected to finish on DATE
  3. Acceptance queue (FIFO)
    • Rejection
      • Completed issue does not meet acceptance tests
      • Product has major deficiencies and is rejected
      • Must be resubmitted, which puts that operator to the bottom of the queue
    • Remediation
      • Completed issue does not meet acceptance tests
      • Product has minor deficiencies and is put in remediation status
      • Remediated does not lose its place in the FIFO queue.
    • Acceptance
      • Passes issuer supplied unit tests (if applicable)
      • Passes issuer supplied acceptance criteria
      • Payment

Reputation (and Risk Management) Engine

Right now, as a hypothetical submitter, I don't really know who the counter-party is for a bounty, so I take the risk that they're a total jerk and take my code but don't pay out the bounty.

What can we do to manage this risk? Some ideas from my side:

  • Reputation system: Optionally link to your github identity, ability to browse the past bounties an address has generated.
  • Extensible way to process bounties
  • For example, Bounties that have arbitration process built in. Bounties that automatically accept themselves when a certain set of tests pass on a PR.

bootstrap a pricing engine by setting the scales manually

we could code up a little javascript interface where you slide a few things back and forth and it tells you what a fair bounty is

maybe on top of that, make it so that you enter a issue URL and we suggest values based upon NLP or the languages involved or wahtever

Code Testimonials into Landing page

Scope of this task: Take the designs from #52 (comment) and code them into the gitcoin.co landing page.

  • requirements: must be responsive (work at tablet, mobile, desktop reso)
  • left / right buttons shoudl work with an animate
  • 3-5sec auto transition to the testimonial to the right.
  • you can stub in the testimonials listed here and use this img as the avatar, for now

In the admin, create a view that shows bounties and tips over time

Requirements:

  • admin view that shows bounties and tips over time
  • Don't rely on any externally hosted saas APIS (chartly, etc)
  • Graphs must be aesthetically pleasing.
  • allow rollup by day, week, month
  • view must be admin-only
  • please give me a heads up if you're going to add dependancies. less weighty the better
  • in my head, these charts look like a line graph, but if you think something else would be cool, let me know.

Make Language filter UI clearer in Bounties

I'm digging what I see on gitcoin.co! One request would be to add a filter for language into the bounties. I would love to work on bounties for Python and Javascript, but I don't know anything about Ruby or Go so I don't even care about those. Would be sweet to just wipe those out.

Thanks!

HTTP API Documentation

Document

  • all of the fields coming back from the API
  • what params can be used to filter / sort through the api.

Submit a PR back to the repo when complete.

Post funded issue to Craigslist

Write a management command that

  • Can post a bounty to craigslist
  • Correctly advertises the title, description, and amount in USDT of the job.
  • Has a call to action to send user to gitcoin.co funded issue page in order to process said funded issue.

Modify docker-compose.yml to reduce running/exited services / persistent volume

The current docker-compose.yml defines shell and migration service containers.
I am uncertain what function the shell container provides (if you wish to access the shell of the running web container, you can docker exec -it against it).

Currently, the postgresql data lives as long as the underlying container.
We can preserve the data via a persistent volume.

Additionally, the migration service will always end as exited, meanwhile the docker-compose.bash script runs the migration step before running the test server.

I am proposing we replace the migration service container with either a shell script, makefile entry, README documentation, or a combination to allow users to easily make migrations and migrate the database in the event it's necessary.

The proposed changes will eliminate two of four containers.

Browser Extension Revamp

  • Ability to browse funded issues (and amounts) on an issue board
  • Fund an issue right on github issue page
  • View funded issue states (and amounts) on github issues page
  • Visual style that matches github
  • ability to input what keywords you want to filter on, and only display those issues in the dropdown.
  • The notifications are kind of obnoxious. Don't show notifications for all issues associated with repo.

Wrong issue info

I posted three bounties a week ago, and I'd swear I set the expiration time at one week. This is (weakly) confirmed by the auto-complete when I now click on 'Fund Issue', but have no further proof of me entering this correctly. But when I go to the issue page, it says: "EXPIRES: IN 3 MONTHS". Also, I now notice that the funder info doesn't list me but @owocki.

expirationissue

I suspect there's only an annoying referencing issue in the page code. But if this is a persistent problem in the underlying code and/or present in more functionality, it might have security implications.

The corners or #upper_left and .bounty don't line up

image

#upper_left has a min-height of 140px and the .bounty_def element adjacent to it has a height of 136px.

A quick solution, at least on the latest chrome, is to give .bounty_def a height of 140px. A more expressive solution is most likely to either share some sass variables or use flexbox, depending on how the page is laid out.

via https://twitter.com/mattgcondon/status/935955005366067201


of note, the 10px padding on .bounty_left is a bit odd. I'm not familiar with this grid library, but the bounding boxes on these elements are a little odd; any ideas on why that 10px offset is necessary?

Error when accessing with Mist 0.9.2

When authorizing gitcoin.co with Mist I get the following errors:

Uncaught Error: TrackJS Caught: Cannot read property 'coinbase' of undefined
at get_search_URI (dashboard.js:64)
Uncaught Error: TrackJS Caught: Cannot read property 'accounts' of undefined
 at shared.js:296

Gitcoin wants to access the eth object in web3, but it is undefined. This is due to the way web3 is provided. Mist offers a basic web3 object with the currentProvider set to Ethereum Provider.

According to the Ethereum wiki (https://github.com/ethereum/wiki/wiki/JavaScript-API) this is the recommended way to init web3:

if (typeof web3 !== 'undefined') {
  web3 = new Web3(web3.currentProvider);
} else {
  // set the provider you want from Web3.providers
  web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
}

I would expect gitcoin to include a packaged version of web3.js and instanciate it in the above mentioned way to support Mist.

core : contributing.md guideline + linter

Folks have different editor setting based on personal preference & since gitcoin looks promising maybe we should consider having a style guide to ensure everyone follows a particular design style
Example:

  • Lotta trailing whitespace -> me editing one line results in a lot of changes
  • restrict tabspace to 4 (there is a mixture of 2 and 4 though the latter is more prominent )
    the list goes on and on

Reason I suggest this: I had changed a line in css and git diff showed 18 changes ( 17 were removal of trailing whitespace )

issue funding best practices

Right now, the system supports bug, feature, and security bounties. Any issue that you need done is a good candidate for a bounty, provided that:

  • It’s open today.
  • The repo README clearly enumerates how a new developer should get set up to contribute.
  • The task is well defined.
  • The end-state of the task is well defined.
  • The pricing of the task reflects (market rate * complexity) of the task.

What else am I missing?

Web3 bountydetails interface documentation

Document

  • all of the fields coming back from this function
  • what params can be used to filter / sort through the api.

Submit a PR editing the readme back to the repo when complete.

Mentors

Idea that came out of Ethereum Denver meetup last night:

  • It'd be interesting to assign a mentor/mentee relationship to a bounty. Basically, if developer decides to make a go to a bounty, they can ask another project member with more experience to mentor them on details where they'd add value, in exchange for some amount of the final payout.

Design a testimonials module on the landing page

requirements

  • assume 3-4 testimonials, each with a quote, name, image
  • assume 1-2 sentence testimonial
  • design needs to work for both desktop and tablet.

some sample testimonials:

  • we've had 2 bounties fulfilled and we're hooked
  • I feel it is so awesome to have the opportunity through Gitcoin to do what I love and get paid for it, and to have reasonable freedom about the way I work, that it already seems too good to be true.
  • This could be the next freelance boom.
  • Staying lean, building the community, iterating... The way to go vs many projects that are just looking for the money grab immediately.

payout:

  • ill pay the bounty listed for a design
  • ill pay an extra 0.1 ETH if the design is coded into the repo.

Bot / Github integration Revamp

  1. Repo level permissions that allows repo owners to enable/disable functionality per user.
  2. a repo owner cofigure bot to have the bot comment on every single new issue, soliciting funded issues.
  3. every time an issue is funded from that repo, the comment is updated with current funding amounts.
  4. ability to fund an issue straight away through the bot, just to a github user

Pricing Engine

Right now, as a hypothetical user, I'm just making up values for the tips / bounties I give out, which is fine for when this project is a novelty, but doesn't scale as the project 'grows up'. What factors should go into deciding how much to price a bounty?

Some thoughts from my side:

For a feature or bug bounty:

  • Value of the submission to the repo, it's users, the ecosystem.
  • Skills involved, and how niche they are.
  • Average hourly rate of a person with above skills.
  • Competition: Do market forces like supply/demand play a role?
  • For security bounty, how bad is the exploit? how big is the attack surface area?
  • Liquidity and incentives matter. The value of the submission will differ depending upon whether the value is in a token that represents ownership in part of a illiquid network or a liquid platform with scale (like ETH)

For tips:

  • How much you'd like to build a relationship / show appreciation for, the counter party.

UI

I think it'd be great to tell the user, right in the bounty submission page, what the odds are that their task will be turned around. Kind of like ether gas station but for bounties. Here's a quick mockup:

image 2017-10-02 at 5 23 16 am

draft a blog post about tim-berners lee

draft a blog post about tim-berners lee

requirements

  • must be a post for medium.com
  • must contain all original content (no copy & paste)
  • post about how tim-berners lee came up with the idea for the World Wide Web
  • post about how tim-berners lee decided on open protocols
  • at least 1000 words

waiting room entertainment while tx mines

idea from @cmditch :


I was thinking of some web3 UX ideas regarding the screen where you wait for the tx to be mined…

waiting room entertainment”, some kind of interesting read - an article, a quote, a tweet - or some interesting video
"

Decrease Docker image size

The web docker image is currently 998 MB running x3 for migration, web, and shell (?).

If python:2.7-slim is used with a modified Dockerfile, that can be reduced by about half.

Additionally, ADD is used throughout the Dockerfile, while it lives in the repository.
We can COPY the requirement text files to align with https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#add-or-copy and bind the repository code to the container as a volume. In the event the production deployment relies on the docker image, a volume container would align with best practices for handling the repository source.

clawback expired bounty interface

Requirements:

  • When a bounty is Expired, it can be clawed back by the submitter. (this is already in the smart contract, just needs built in the UI)
  • Built a web frontend that allows user (only accepter) to do this
  • Follow the UI pattern set forth in the bounty details page.

Job Matching Engine

A job matching engine should be able to take

  • an ethereum address (or github profile)

and spit out a series of recommended funded issues for them to turn around, in order by relevance.

css: mailing list breathing space

The mailing list as of now, looks kinda out of place. Things looks really cramped up here.
It's in a few other places, but just to give you an idea what I'm talking about:

screen shot 2017-12-02 at 1 16 39 pm

I figured maybe we could consider giving it some breathing space with a few CSS modifications:
screen shot 2017-12-02 at 1 21 15 pm

Just a thought ^_^

Onboarding web2 users to web3.

I think that as evangelists of the ethereum and web3 ecosystem, we may be living in an echo chamber in some ways. If you've lived & breathed blockchain for months, it can be easy to forget that the average internet user (even the average github user), doesnt have Ether, metamask installed, or even know why they can care.

What is the most efficient and impactful way you've found for telling people why they should care about understanding this ecosystem?

Design: Education Portal

Education portal which is largely scoped to take the user from Web2 thinking => Web3 thinking. Basically takes a user on a tour that concisely answers the following questions:

VISION

  • What is web3? Why is web3 better than web2?
  • Whats wrong with web2? Hint: data breaches, not owning your identity, intermediaries mean that there's high fees, censorship.
  • What is the future of knowledge work? Hint: This article answers the question
  • Why would I use Gitcoin over centralized, web2, alternatives?

TOOLS

  • What is a blockchain?
  • What is Metamask?
  • What is Ethereum and why do I need it?
  • What is gas and why do I need to pay it?

USING THE PLATFORM

  • Where do I start?
  • How do I evaluate whether an issue is a fit for me? has the right ROI?

Scope:

  • I will provision a funded issue for each sub-section of this funded issue.
  • Scope of this issue is simply to deliver a design for an education portal which can be used as a platform to answer these questions.

Design a more aesthetically pleasing bounty detail page

screencapture-gitcoin-co-bounty-details-1506936992200

The bounty detail page could need some TLC on it. Design another bounty detail page that is

  1. more aesthetically pleasing
  2. lets me (as a user) know at a glance what i need to know about a bounty, but also lets me look for more detailed info about the bounty if i want it
  3. more promoinent call to action buttons
  4. bounties have 3 steps: active, claimed, and paid. (also, arguably, expired). what does it look like on each of these steps?

please ask any relevant clarifying questions before you claim this issue!

auto-estimate USD amount on gitcoin.co/tip

A little while ago i wrote some code that would estimate the USD amount of a new bounty as the user filled out the form.

here is an example of what it looks like

screen recording 2017-11-29 at 12 21 pm

The scope of this task is to update gitcoin.co/tip to do the exact same thing.

Tips: 7 second delay when clicking on 'send tip' on the mainnet.

  • Investigate why theres a 7 second delay when clicking on 'send tip' or 'receive tip' on the mainnet.
  • Propose a fix, if possible.
  • If a root fix is not possible, at least make the UI a little more elegant (such that the user knows they actually clicked the button).

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.