Skip to content

Yashkrit-Singh/Crowdfunding_Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 

Repository files navigation

UnityFund

UnityFund, an open-source crowdfunding platform built to empower innovative and noble projects by providing them with the necessary funding from the masses. It uses modern technology to connect project creators with potential backers and ensures a smooth, secure, and efficient fundraising experience for everyone involved.

🌐 Live Demo

Check out UnityFund in action here: UnityFund

Project Overview

UnityFund allows users to set up, verify, and fund impactful projects. Our platform prioritizes security and authenticity, requiring both project creators and backers to authenticate before participating. Projects undergo a verification process involving an AI model (soon to be implemented) that assesses feasibility, with the potential for manual review to further ensure the project's integrity.

Once a project is approved, it’s displayed with comprehensive details and supporting documents for public viewing, making it easy for backers to make informed decisions. UnityFund supports multiple payment methods, including Google Pay, Stripe, and cryptocurrency options, ensuring convenience for global users and catering to blockchain enthusiasts through Web3 integration.

User-Friendly Interface

The platform is designed with a clean, intuitive, and responsive UI using React and Material UI, providing users with an attractive and seamless experience. Our aim is to ensure that project creators and backers alike can navigate and use the platform with ease.

📚 Features

  • Secure Project Creation and Authentication: Only authenticated users can create projects or fund them, ensuring platform security.
  • Project Feasibility Analysis: Projects undergo verification through our upcoming AI model and manual reviews as needed.
  • Flexible Payment Options: Support for Google Pay, Stripe, and cryptocurrency to cater to global users.
  • Transparent Project Display: Each approved project is displayed with full details and relevant documentation.
  • Decentralized Funding Options: Web3 integration for blockchain enthusiasts to fund projects via crypto.

⚙️ Tech Stack

  • Frontend: JavaScript, React, Material UI
  • Backend: Node.js, Express, MongoDB
  • Web3 Integration: Cryptocurrency and blockchain-based transactions
    • Smart Contract: Solidity
    • Development & Testing: Hardhat
    • Libraries: Ethers.js for Ethereum blockchain interaction
  • Payment Processing: Google Pay, Stripe, Crypto Wallets
  • Machine Learning (Upcoming): AI model for project feasibility analysis

Contributors

This project was made possible through the combined efforts of:

Yashkrit:

  • Led backend setup, including creating the project API endpoints.
  • Implemented user authentication
  • Web3 integration for cryptocurrency transactions.

Bishwa:

  • Contributed to the UI and backend, including payment endpoints.
  • Implemented payment functionality with Google Pay.
  • Currently working on the AI model for project feasibility analysis.

Sukrit:

  • Contributed significantly to the frontend.
  • Developed additional APIs and enhanced the platform’s UI for better user interaction.

🔧 Getting Started with UnityFund

To set up and start UnityFund on your local machine, follow these steps.

Prerequisites

MetaMask: You should have MetaMask installed in your browser to enable crypto transfers on the platform. MetaMask will act as your Web3 wallet, allowing you to connect to Ethereum or other supported networks. Get MetaMask here.

npm: You need npm installed on your system to manage dependencies. If npm is not installed, install it from Node.js.

1. Clone the Repository

Open your terminal and clone the repository by running:

git clone https://github.com/YourRepo/Crowdfunding_Project.git
cd Crowdfunding_Project

2. Install Dependencies

To install all dependencies, run:

cd client
npm install
cd ..

cd server
npm install
cd ..

cd web
npm install
cd ..

3. Set Up Environment Variables

Create a .env file in the root directory and add the following environment variables:

  • Database Configuration: MongoDB connection URI.
  • Payment API Keys: API keys for Stripe and Google Pay.
  • Web3 Details:
    • API key from a blockchain provider, such as Infura or Alchemy, for blockchain connections.
    • Private key from a MetaMask account for deploying contracts.
  • JWT Secret: Secret key for generating and verifying JSON Web Tokens.

Make sure to keep this file secure in a .gitignore file and never commit it to version control.

4. Deploy Smart Contract (Web3)

To deploy the smart contract, first set up Hardhat:

  • Set up Hardhat for Contract Compilation and Deployment:

    • First, navigate to the web directory where your Hardhat project is located.
      cd web
    • Compile and deploy the Solidity contract:
      npx hardhat compile
      npx hardhat run scripts/deploy.js --network <network_name>
    • Replace <network_name> with the actual network (e.g., rinkeby, sepolia, mainnet) you're using and add the respective network in hardhat.config.cjs file
  • Store the ABI File for Frontend Access:

    • After deploying the contract, locate the ABI (Application Binary Interface) JSON file in artifacts folder
    • Place this file in the src/CrowdFundingJson folder for easy access in the frontend application.
  • Reference the Contract Address in the Frontend:

    • In the frontend, go to src/pages/Payment/CryptoPaymentButton.jsx.
    • Directly reference the deployed contract’s address here. This setup allows your React components to interact with the contract via Web3 or Ethers.js.

5. Start the Server

Navigate to the server directory and start the backend server:

cd server
node index.js

6. Start the Frontend

In a new terminal window, navigate to the client directory and start the frontend development server:

cd client
npm run dev

7. Access the Application

After both servers are running, open your browser and go to http://localhost:3000 (or the configured port) to view the UnityFund application.

Future Enhancements

  • AI-driven Feasibility Analysis: A machine learning model to assess the viability and impact of each project before approval.
  • Enhanced Security: Strengthening authentication and verification processes for both creators and backers.
  • Additional Payment Methods: Expanding options to support even more global payment systems.

📜 License

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •