A modern GitHub bounty platform that connects developers with project maintainers through automated workflow management and Web3 integration.
BlockParty is a comprehensive bounty marketplace that automates the entire workflow from bounty creation to contributor rewards. Built with modern web technologies and designed for seamless GitHub integration, it enables project maintainers to incentivize contributions while providing developers with opportunities to earn rewards for their work.
- GitHub OAuth integration via Clerk
- Secure user authentication and session management
- Role-based access control for bounty creators and contributors
- Create bounties for any GitHub repository you own
- Automated webhook creation and management
- Task-based bounty structure with detailed requirements
- Prize configuration with multiple currency support
- Deadline management for time-sensitive projects
- Real-time pull request monitoring via GitHub webhooks
- Automatic bounty completion when pull requests are merged
- Comprehensive contributor tracking with detailed metrics
- Complete audit trail of all repository events
- Personal dashboard for managing repositories
- Dedicated panel for tracking created bounties
- Public bounty marketplace for discovering opportunities
- Detailed contribution history with pull request analytics
- Responsive design optimized for all devices
- Dark/light theme toggle with smooth transitions
- Clean, professional UI built with shadcn/ui components
- Intuitive navigation and user experience
- React 18 with Vite for fast development and hot reloading
- TypeScript for enhanced type safety and developer experience
- Tailwind CSS for efficient styling and responsive design
- shadcn/ui component library for consistent UI elements
- Lucide React for scalable vector icons
- React Router for client-side navigation
- Node.js with Express.js framework
- MongoDB for flexible data persistence
- Clerk for robust authentication and user management
- Octokit for comprehensive GitHub API integration
- GitHub Webhooks for real-time repository event processing
- GitHub OAuth for secure user authentication
- Automated webhook management for repository monitoring
- Real-time event processing for instant bounty updates
- RESTful API architecture for scalable integrations
Before running this application, ensure you have the following installed:
- Node.js 18.0 or higher
- npm or yarn package manager
- MongoDB (local installation or cloud service)
- GitHub account for OAuth integration
- Clerk account (free tier available)
- Clone the repository
git clone https://github.com/MakPr016/BlockParty.git
cd BlockParty
- Install backend dependencies
cd backend
npm install
- Install frontend dependencies
cd ../frontend
npm install
Create a .env file in the backend directory:
CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
PORT=
MONGO_URI=
WEBHOOK_CALLBACK_URL=
Create a .env file in the frontend directory:
VITE_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key_here
VITE_API_URL=http://localhost:3000
- Sign up for a free Clerk account at clerk.com
- Create a new application in your Clerk dashboard
- Enable GitHub as an OAuth provider
- Add your development domain to the allowed origins
- Copy your publishable and secret keys to the respective environment files
- Start the backend server
cd backend
npm start
The server will run on http://localhost:3000
- Start the frontend development server
cd frontend
npm run dev
The frontend will run on http://localhost:5173
- Access the application Open your browser and navigate to http://localhost:5173
- Authentication: Sign in using your GitHub account
- Repository Access: Navigate to the dashboard to view your repositories
- Webhook Setup: Click "Create Bounty" on any repository you own to set up automated monitoring
- Bounty Configuration: Define bounty details including:
- Clear title and comprehensive description
- Specific tasks and requirements
- Prize amount and preferred currency
- Optional deadline for completion
- Additional guidelines for contributors
- Browse Opportunities: Explore available bounties in the marketplace
- Apply for Bounties: Submit applications for bounties matching your expertise
- Complete Work: Create and submit pull requests to the target repository
- Automatic Rewards: Receive automatic recognition and rewards when your contributions are merged
The platform provides comprehensive repository management through:
- Intelligent Webhook Management: Automatically creates or reuses existing webhooks to avoid conflicts
- Event Monitoring: Tracks pushes, pull requests, issues, and comments in real-time
- Automated Completion: Marks bounties as completed when qualifying pull requests are merged
- Detailed Analytics: Provides insights into contribution patterns and repository activity
BlockParty/
├── backend/
│ ├── server.js # Express server and API routes
│ ├── package.json # Backend dependencies
│ └── .env # Environment variables
├── frontend/
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Application pages
│ │ ├── hooks/ # Custom React hooks
│ │ └── utils/ # Utility functions
│ ├── package.json # Frontend dependencies
│ └── .env # Environment variables
└── README.md # Project documentation
GET /health- Health check and system status- All protected routes require valid Clerk authentication
GET /api/repositories- Fetch user's repositories with admin accessPOST /api/repositories/:owner/:repo/webhook- Create or reuse repository webhook
POST /api/bounties- Create a new bountyGET /api/bounties- List all active bountiesGET /api/bounties/:id- Get specific bounty detailsPOST /api/bounties/:id/apply- Apply for a bountyDELETE /api/bounties/:id- Delete a bounty (owner only)
POST /api/webhook/callback- GitHub webhook event handler
- Basic bounty creation and management
- GitHub integration and webhook automation
- User authentication and authorization
- MetaMask wallet connection for existing users
- Cryptocurrency payment support
- Multi-token bounty rewards
- Team-based bounty completion
- Advanced analytics and reporting
- Reputation system for contributors and creators
- Email notification system
- Mobile application development
- Performance optimizations
- Enhanced security features
- Community management tools
We welcome contributions from the community. To contribute:
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes and add tests if applicable
- Commit your changes:
git commit -m 'Add some feature' - Push to the branch:
git push origin feature-name - Submit a pull request
Please ensure your code follows the existing style conventions and includes appropriate tests.
This project is licensed under the MIT License - see the LICENSE file for complete details.
- Issues: Report bugs and request features via GitHub Issues
- Discussions: Join community discussions via GitHub Discussions
- Documentation: Additional documentation is available in the
/docsdirectory
This project builds upon excellent open-source technologies:
- Clerk for authentication infrastructure
- shadcn/ui for component library
- GitHub API for repository integration
- MongoDB for data persistence
- Vite for development tooling