Giter Club home page Giter Club logo

tellus-cooperative / bountyhunter Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 242 KB

The project is an open source bounty hunting application that allows users to post and apply for jobs using their Stellar Blockchain wallets. The application uses Soroban Smart Contracts written in Rust and NextJS for the frontend.

Home Page: https://bountyhunter-eight.vercel.app/

License: MIT License

JavaScript 90.01% CSS 8.30% TypeScript 1.69%
blockchain bounty dapp freighter rust soroban stellar

bountyhunter's People

Contributors

alexanderkoh avatar nauman440 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

bountyhunter's Issues

New Bounty

  • Only shouw if "isConnected=true". For now use dummy variable
  • Open form:

Some description like: "You are applying to the {issue_name} bug bounty, etc...

{
    "title":"string",
    "prize":"integer", // amount
    "token_code": "string", // For now this will be fixed. We will force everybody to use the same token
    "description": "string",
    "longDescription": "string",
},
``

Button "Create Bounty". Triggers function
- verify no empty fields
- prize >0
- TODO: verify if user has balance>prize
- TODO: makes user sign the message
- Closes the form with some "Succesfull message"
For now create a dummy async function for 5 seconds and block the Create Bounty button while the async function is running.

Cards variables. Bounty Object

In order to have a MVP:
Each card should have:
{
"bounty_owner":"string", // address of the bounty owner, ex: GCZMT5BHS2HIWT2NVYPPLE5MIG7P2TUWBWLGCSMGJ7CZDQFGHMVVCVYE
"bounty_id": "integer",
"title":"string",
"prize":"integer", // ex. 1000. Shoud be formated as 1,000
"token_code": "string", // token code. ex. USDC
"token_id": "string", // contract id of the SAC contract, ex: ed30e33e718022f37afd836256cc99941e349664da7bef0889edbb7cdacfc107
"description": "string",
"longDescription": "string",
"awarded": "bool", // if the bounty has already been awarded
"sumbissions_number": "integer", // number of submissions
"sumbissions": "aray[submission_object]", // See
"winner": "integer" // Submission id of winner

},

The prize shoud be formated as {prize} {token_code}. Ex. 1,000 USDC

In the bounty image we could use the identicon service from lobstr as
https://id.lobstr.co/{bounty_owner}.png
example:
https://id.lobstr.co/GCZMT5BHS2HIWT2NVYPPLE5MIG7P2TUWBWLGCSMGJ7CZDQFGHMVVCVYE.png

If sumbissions_number>0, each bounty card should have a button "See submissions" that will display a group of Sumbissions Object's Cards

My Bounties

Dashboard to show user's bounties. Separated in

  • My funded bounties. Filter bounties where the user is bounty_owner.
    Here, if awarded=false. Show button "Choose application... or "Award prize"??

  • Display group of applications objects.

  • For each application show button "Award prize". Triggers function that will change awarded=true, and winner=application_id

  • My applied bonties. Filter bounties where the user exist in applicant array.

Use React Context for array of bounty objects. Also use async fetch

We will construct the array of Bounty objects making calls to the blockchain.
This will take some time.
For now, we can create a dummy array (.json) and place it somewhere, so we can call some fetch and simulate the blockchain calls.
This function will save this array in a React Context, so we can take the array from everywhere in the app.

This function will be called:

  • at the beggining, to load all the bounties.
  • after each submission (new bounty and apply button)

Apply button. Submission Object

For the MVP the "Apply" button should:

  • If "isConnected=false" should say "Connect Wallet to Apply"
  • If "isConnected=true" should:
  • Open a form
  • Form should have
    Some description like: "You are applying to the {issue_name} bug bounty, etc...
{
    "title":"string", // description: Tittle of your sollution
    "description": "string", // Describe your solution
    "github_link": "string", // Put link of your solution's repo
},

Button "Apply now". Dummy button. If pressed triggers a verification function.

  • verify that there are no empty fields
  • if ok. console.log("Applied") and close form

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.