/TaskBounty

A decentralized, blockchain-based platform that allows users to post tasks, set bounties, and complete tasks to earn rewards without relying on a central authority. This project leverages Web3 technologies to provide a secure, user-owned task management system.

Primary LanguageTypeScriptOtherNOASSERTION

TaskBounty

Mockup

A decentralized, blockchain-based platform that allows users to post tasks, set bounties, and complete tasks to earn rewards without relying on a central authority. This project leverages Web3 technologies to provide a secure, user-owned task management system. Currently, the app is still under beta testing, which is why it has been deployed on Devnet for development and testing purposes.

Table of Contents

Introduction

This project is a decentralized application (DApp) that enables users to create tasks, set bounties, and complete tasks for rewards. The decentralized nature of this platform ensures that users have full ownership of their tasks and rewards, with no central entity controlling the platform.

Features

  • Decentralized User Authentication: Secure and private user authentication using wallets (e.g., MetaMask).
  • Post Tasks: Users can create, edit, and delete their tasks stored on the blockchain.
  • Set and Claim Bounties: Users can set bounties for tasks, and other users can claim them upon completion.
  • Censorship Resistance: Task and bounty data is stored on a decentralized network, making it resistant to censorship.
  • User-Owned Data: Users have full ownership of their data, including tasks and bounties.

Technology Stack

  • Blockchain: Solana
  • Frontend: Next.js, Web3.js
  • Backend: Node.js, Express.js
  • Database: PostgreSQL
  • Wallet Integration: MetaMask, Phantom, Solflare, Alpha

Prerequisites

Contributing

Thank you for your interest in contributing to TaskBounty! To set up the project for development and start contributing, follow the steps below:

Step 1: Fork and Clone the Repository

  1. Fork the repository on GitHub to your account.

  2. Clone your forked repository locally using the command:

    git clone git@github.com:Parvsharma04/TaskBounty.git
  3. Navigate into the project directory:

    cd TaskBounty

Step 2: Set Up the Backend

  1. Navigate to the backend directory:

    cd backend
  2. Install dependencies and run the app:

    npm install
    npm run dev

    The backend should now be running on http://localhost:3000.

Step 3: Set Up the Frontend

  1. Navigate to the frontend client directories:

    cd ../parent
  2. Install dependencies and run the app:

    npm install
    npm run dev

    The frontend app should be running on http://localhost:3001.

  3. Similarly, navigate to the Client directory:

    cd ../client
  4. Install dependencies and run the app:

    npm install
    npm run dev

    The secondary frontend app should be running on http://localhost:3002.

  5. Similarly, navigate to the Worker/Tester directory:

    cd ../tester
  6. Install dependencies and run the app:

    npm install
    npm run dev

    The secondary frontend app should be running on http://localhost:3003.

Step 4: Set Up Wallet and Connect to Devnet

  1. Install any of the wallets on your browser and create a wallet if you haven't already.
  2. Shift the netork from Mainnet to Devnet.
  3. Connect your wallet to the DApp after running the frontend.

Step 5: Testing

  1. Run tests using:

    npm run build
  2. Make sure there are no errors in the build before pushing changes.

Step 6: Submitting Changes

  1. Create a new branch for your feature or bug fix:

    git checkout -b feature-branch
  2. Commit your changes and push the branch to your fork:

    git add .
    git commit -m "Description of your changes"
    git push origin feature-branch
  3. Open a Pull Request (PR) on the main repository for your branch, following the contribution guidelines.

Happy coding! Let us know if you have any questions in the Issues section.

License

This project is proprietary and not open-source. No permission is granted to use, modify, distribute, or create derivative works based on this code without explicit written permission.