SkyRocket is a decentralized crowdfunding platform designed to fund innovative and groundbreaking projects through blockchain technology. It operates by allowing individuals to contribute either Ether, which is automatically converted into USDC, or directly using stablecoins such as DAI, USDT, and USDC. Contributors are awarded SKT Tokens, which serve as governance tokens, enabling them to vote on which projects should receive funding. The platform aims to bridge the gap between project seekers needing financial support and funders looking to invest in new and exciting ventures while having a say in the ecosystem's governance.
- Features
- Architecture
- Prerequisites
- Installation
- Configuration
- Running the Application
- Testing
- Deployment
- Contributing
- License
- Decentralized Funding: Facilitate funding for projects using Ether and stablecoins.
- Governance Mechanism: Empower contributors with SKT Tokens to participate in project selection and protocol decisions.
- Transparent Operations: Ensure all transactions and governance activities are recorded on the blockchain for transparency and security.
The SkyRocket DApp is structured into three main components:
-
Smart Contracts: Located in the
contracts
directory, these define the core logic of the platform, including funding mechanisms, token minting, and governance functionalities. The contracts are written and tested using Foundry. -
Frontend Application: Found in the
frontend
directory, this React-based application provides users with an intuitive interface to interact with the platform. -
Backend Server: Situated in the
server
directory, this Node.js server handles off-chain operations, such as user authentication and data storage.
Before setting up the project, ensure you have the following installed:
-
Node.js (v14.x or later): Download Node.js
-
npm (v6.x or later): Comes bundled with Node.js.
-
Foundry: For smart contract development and testing.
curl -L https://foundry.paradigm.xyz | bash foundryup
-
MetaMask: Browser extension for Ethereum wallet management.
-
Clone the Repository:
git clone https://github.com/0xDenzi/SkyRocket-DApp.git cd SkyRocket-DApp
-
Install Dependencies:
Navigate to each component's directory and install the required packages.
-
Contracts:
cd contracts forge build
-
Frontend:
cd ../frontend npm install
-
Server:
cd ../server npm install
-
-
Smart Contracts:
- Network Configuration: The smart contracts are deployed on the Sepolia Testnet. Update the
.env
file with the correct RPC URL and private key for deployment.
- Network Configuration: The smart contracts are deployed on the Sepolia Testnet. Update the
-
Frontend Application:
-
Environment Variables: Create a
.env
file in thefrontend
directory with the following variables:REACT_APP_CONTRACT_ADDRESS=<Deployed_Contract_Address> REACT_APP_NETWORK_ID=<Network_ID>
Replace
<Deployed_Contract_Address>
with the address of the deployed smart contract and<Network_ID>
with the corresponding network ID (e.g.,11155111
for Sepolia).
-
-
Backend Server:
- Environment Variables: Create a
.env
file in theserver
directory with the necessary configurations, such as database connection strings and API keys.
- Environment Variables: Create a
-
Deploy Smart Contracts Using Foundry:
In the
contracts
directory, compile and deploy the contracts to Sepolia.forge build forge script script/Deploy.s.sol:Deploy --rpc-url <SEPOLIA_RPC_URL> --private-key <YOUR_PRIVATE_KEY> --broadcast
-
Start the Backend Server:
In the
server
directory, start the Node.js server.npm start
-
Start the Frontend Application:
In the
frontend
directory, run the React application.npm start
The application will be accessible at
http://localhost:3000
.
-
Smart Contract Tests:
In the
contracts
directory, run the Foundry tests.forge test
No frontend or backend tests are currently available.
To deploy the application to a live network:
-
Smart Contracts:
-
Update the
.env
file with the correct RPC URL and deployer wallet private key. -
Deploy the contracts:
forge script script/Deploy.s.sol:Deploy --rpc-url <SEPOLIA_RPC_URL> --private-key <YOUR_PRIVATE_KEY> --broadcast
-
-
Frontend Application:
-
Build the React application:
npm run build
-
Deploy the build artifacts to your hosting provider of choice.
-
-
Backend Server:
- Ensure the server is configured for production and deploy it to your hosting environment.
We welcome contributions to enhance the SkyRocket DApp. To contribute:
-
Fork the repository.
-
Create a new branch:
git checkout -b feature/your-feature-name
-
Make your changes and commit them with descriptive messages.
-
Push to your forked repository:
git push origin feature/your-feature-name
-
Open a Pull Request detailing your changes.
This project is licensed under the MIT License.