A decentralized bounty management platform built on the Solana blockchain, allowing users to create, manage, and delete bounties associated with GitHub issues.
- User Authentication: Secure user authentication using NextAuth.js.
- Solana Blockchain Integration: Transfer bounties using Solana's blockchain.
- GitHub Integration: Link bounties to GitHub issues and manage them seamlessly.
- Responsive UI: A user-friendly interface built with React and TailwindCSS.
- Frontend: Next.js, React, TailwindCSS
- Backend: Next.js API routes, Mongoose
- Blockchain: Solana Web3.js
- Authentication: NextAuth.js
- Database: MongoDB
- Node.js (v14 or later)
- npm or yarn
- MongoDB instance
- Solana CLI and wallet
- GitHub OAuth app for authentication
-
Clone the repository:
git clone https://github.com/SajjanYadav/github-bounty-dispenser.git cd yourrepository
-
Install dependencies:
npm install
-
Set up environment variables:
Create a
.env.local
file in the root directory and add the following variables:MONGODB_URI=your_mongodb_uri NEXTAUTH_URL=http://localhost:3000 NEXTAUTH_SECRET=your_nextauth_secret GITHUB_CLIENT_ID=your_github_client_id GITHUB_CLIENT_SECRET=your_github_client_secret PARENT_WALLET_PRIVATE_KEY=your_solana_wallet_private_key
-
Run the development server:
npm run dev
Open http://localhost:3000 with your browser to see the result.
- Authenticate: Log in with your GitHub account.
- Create a Bounty: Link a GitHub issue and set a bounty amount.
- Manage Bounties: View, update, or delete bounties associated with your GitHub issues.
- Receive Bounties: Transfer bounties back to your wallet or to another user.
POST /api/create-bounty
: Create a new bounty.POST /api/approve-bounty
: Approve a Bounty to Pay the User.POST /api/remove-bounty
: Remove an existing bounty.GET /api/get-pull-requests
: Fetch all the pull requests for a repo.GET /api/get-issues
: Fetch all issues associated with bounties.GET /api/get-bounties
: Get all the issues which have bounties set.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Make your changes.
- Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature-branch
). - Open a pull request.
Project Link: Github Bounty Dispenser