Incentix is a decentralized platform designed to reward contributors for their work on open-source projects. Through GitHub OAuth, contributors can access bountied issues, complete them, and earn cryptocurrency through automated smart contract payments. Built with blockchain technology, Incentix promotes transparency, security, and accountability in open-source contributions.
- Tech Stack
- Features
- Getting Started
- Installation
- Environment Variables
- Project Structure
- Usage
- Contributing
- License
- Frontend: React + Vite , TailwindCSS
- Backend: Node.js, Express
- Database: MongoDB
- Authentication: auth0 (GitHub OAuth 2.0)
- Blockchain: Solidity (Smart Contracts), Polygon Network, Metamask Wallet
- Maintainers can set bounties on GitHub issues and validate contributor work to release payments.
- Contributors can browse open issues tagged with "Incentix" and request to be assigned, earning rewards for successful completion.
- Bounties are managed through Solidity smart contracts on the Polygon blockchain.
- Payments are automatically processed upon task validation by maintainers, providing trustless, secure transactions.
- Users authenticate with GitHub, ensuring access only to relevant repositories and issues based on user roles.
- Project data, including user roles, issue tracking, and transaction logs, is securely stored and managed in MongoDB.
- Node.js (version >= 14)
- Metamask browser extension
- GitHub Developer account for OAuth setup
- MongoDB instance for data storage
-
Clone the Repository
git clone https://github.com/ArshTiwari2004/IncentiX.git
cd IncentiX
-
Install Frontend Dependencies
npm install
-
Install Backend Dependencies
cd IncentiX-backend
npm install
npm run dev
Create a .env file in the root of the IncentiX-backend/config directory and add the following environment variables:
plaintext MONGO_URI= GITHUB_CLIENT_ID= GITHUB_CLIENT_SECRET= JWT_SECRET= POLYGON_RPC_URL= PRIVATE_KEY=
The backend server will be running on http://localhost:1000.
The frontend client will be running on http://localhost:5173.
- Visit http://localhost:5173 and click "Get Started" to log in with GitHub.
- Choose a role (either Maintainer or Contributor).
- Maintainers can assign bounties to issues and validate contributor work.
- Contributors can browse tagged issues, request assignment on issue on github, and earn rewards upon successful completion.
Contributions are welcome! To contribute:
- Fork the project.
- Create a feature branch (git checkout -b feature/YourFeature).
- Commit your changes (git commit -m 'Add some feature').
- Push to the branch (git push origin feature/YourFeature).
- Open a Pull Request.
This project is licensed under the MIT License. See the LICENSE file for details.