SourceNode is a platform to secure, grow, and share your ideas effortlessly on the blockchain with unmatched speed and simplicity.
Check out the live demo here: Live Demo
https://sourcenode.vercel.app/
-
Clone the repository:
git clone https://github.com/jiniyasshah/sourcenode.git cd sourcenode
-
Install dependencies:
npm install
-
Set up environment variables: Create a .env.local file in the root directory and add the following:
NEXT_PUBLIC_URL=
NEXT_PUBLIC_DOMAIN=
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/home
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/home
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
GOOGLE_API_KEY=
NEXT_PUBLIC_CONTRACT_ADDRESS=
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_PRESET_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=
DATABASE_URL=
- Run the development server:
npm run dev
src/
├── app/
│ ├── (auth)/
│ ├── (root)/
│ ├── api/
│ ├── create-idea/
│ ├── home/
│ ├── idea-info/
│ ├── idea-overview/
│ ├── layout.jsx
│ ├── profile/
│ ├── verified-ideas/
│ ├── verify-ideas/
├── components/
│ ├── IdeaSubmissionForm/
│ ├── IdeaVerifier.jsx
│ ├── navigation/
│ ├── sections/
│ ├── SubmissionComponents/
│ ├── ui/
│ ├── WalletGuard/
├── config/
├── constants/
│ └── contractABI.js
├── contexts/
│ └── WalletProvider.jsx
├── hooks/
│ ├── use-mobile.jsx
│ ├── useContract.js
│ ├── useDatabase.jsx
│ ├── useFileUpload.js
├── lib/
│ └── utils.js
├── middleware.js
├── store/
│ ├── formSlice.js
│ ├── store.js
├── style/
│ └── globals.css
├── utils/
Sidebar and navigation components for the application.
Different sections of the application like HeroSection, IdeaSection, etc.
Components related to idea submission like BasicDetails, GoalsAndStage, VerificationDetails, UserDetails, Summary.
Reusable UI components like Button, Card, AlertDialog, etc.
Components related to wallet connection and authentication.
Custom hook to interact with the smart contract.
Custom hook to interact with the database.
Custom hook to handle file uploads to Cloudinary.
Custom hook for mobile-specific functionalities.
/api/v1/fetch-verified-ideas
: Fetch all verified ideas./api/v1/upload-files
: Upload files to Cloudinary.
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Make your changes.
- Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature-branch
). - Open a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.