Skip to content

SOGeKING-NUL/IncentiX

 
 

Repository files navigation

Incentix - Open Source Contribution Reward Platform

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.

Table of Contents


Tech Stack

  • Frontend: React + Vite , TailwindCSS
  • Backend: Node.js, Express
  • Database: MongoDB
  • Authentication: auth0 (GitHub OAuth 2.0)
  • Blockchain: Solidity (Smart Contracts), Polygon Network, Metamask Wallet

Features

Role-Based Access

  • 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.

Automated Payments via Smart Contracts

  • Bounties are managed through Solidity smart contracts on the Polygon blockchain.
  • Payments are automatically processed upon task validation by maintainers, providing trustless, secure transactions.

GitHub OAuth Authentication

  • Users authenticate with GitHub, ensuring access only to relevant repositories and issues based on user roles.

Data Management in MongoDB

  • Project data, including user roles, issue tracking, and transaction logs, is securely stored and managed in MongoDB.

Getting Started

Prerequisites

  • Node.js (version >= 14)
  • Metamask browser extension
  • GitHub Developer account for OAuth setup
  • MongoDB instance for data storage

Installation

  1. Clone the Repository

    git clone https://github.com/ArshTiwari2004/IncentiX.git
    cd IncentiX
  2. Install Frontend Dependencies

    npm install
  3. Install Backend Dependencies

    cd IncentiX-backend
    npm install
    npm run dev

Environment Variables

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=

Usage

1. Running the Backend Server

The backend server will be running on http://localhost:1000.

2. Running the Frontend Client

The frontend client will be running on http://localhost:5173.

3. Using the App

  • 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.

Contributing

Contributions are welcome! To contribute:

  1. Fork the project.
  2. Create a feature branch (git checkout -b feature/YourFeature).
  3. Commit your changes (git commit -m 'Add some feature').
  4. Push to the branch (git push origin feature/YourFeature).
  5. Open a Pull Request.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

Rewarding open source contributions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 82.7%
  • HTML 14.7%
  • Solidity 1.9%
  • CSS 0.7%