MCPcopy Index your code
hub / github.com/SuperteamDAO/earn

github.com/SuperteamDAO/earn @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
3,152 symbols 8,960 edges 1,182 files 14 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Superteam Earn Icon

Superteam Earn

<strong>An open source platform connecting crypto founders with elite talent to create bounties, and accelerate project completion</strong>

Project Status: Active GitHub issues GitHub pull requests Follow

🔗Official Links

🛠️Development Setup

Prerequisites

Getting Started

  1. Clone the repository into a public Github repository (or fork it):

bash git clone https://github.com/SuperteamDAO/earn.git

  1. Navigate to the project directory:

bash cd earn

  1. Install the dependencies:

bash pnpm i

  1. Install the MariaDB adapter (required for local MySQL development):

bash pnpm add @prisma/adapter-mariadb

Then, uncomment the MariaDB adapter code in src/prisma.ts: - Line 1: Uncomment the PrismaMariaDb import - Lines 35-44: Uncomment the URL parsing and adapter creation code - Line 47: Uncomment the adapter parameter in PrismaClient

  1. Set up your .env file.

  2. Start by copying the .env.example file to a new file named .env. This file will store your local environment settings.

  3. Database setup:

Option 1: Local MySQL (Recommended for Development)

The app automatically detects your database type based on DATABASE_URL. Choose your platform:

🍎 macOS

  1. Install MySQL using Homebrew:

bash brew install mysql

  1. Start MySQL service:

    bash brew services start mysql

  2. Create database:

    bash mysql -u root -e "CREATE DATABASE earn_db"

  3. Set DATABASE_URL in .env: DATABASE_URL='mysql://root@localhost:3306/earn_db'

🪟 Windows

  1. Option A: Using MySQL Installer (Recommended for beginners)
    • Download MySQL Community Server Installer
    • Run the installer and choose "Developer Default"
    • Set root password when prompted (remember this!)
    • Complete installation
  2. Option B: Using Package Manager

```powershell # Using Chocolatey choco install mysql

# OR using winget winget install Oracle.MySQL ```

  1. Start MySQL (if not already running):

    • Open "Services" app (Win + R, type services.msc)
    • Find "MySQL" service and start it

    OR via command line:

    powershell net start MySQL

  2. Create database:

    powershell mysql -u root -p -e "CREATE DATABASE earn_db"

    Enter your root password when prompted.

  3. Set DATABASE_URL in .env: DATABASE_URL='mysql://root:YOUR_PASSWORD@localhost:3306/earn_db' Replace YOUR_PASSWORD with your MySQL root password.

🐧 Linux

Ubuntu/Debian:

```bash # Install MySQL sudo apt update sudo apt install mysql-server

# Start MySQL service sudo systemctl start mysql sudo systemctl enable mysql

# Secure installation (optional but recommended) sudo mysql_secure_installation

# Create database sudo mysql -e "CREATE DATABASE earn_db"

# Create user (optional, for better security) sudo mysql -e "CREATE USER 'earnuser'@'localhost' IDENTIFIED BY 'your_password';" sudo mysql -e "GRANT ALL PRIVILEGES ON earn_db.* TO 'earnuser'@'localhost';" sudo mysql -e "FLUSH PRIVILEGES;" ```

Fedora/RHEL/CentOS:

```bash # Install MySQL sudo dnf install mysql-server # or 'yum' for older versions

# Start MySQL service sudo systemctl start mysqld sudo systemctl enable mysqld

# Create database sudo mysql -e "CREATE DATABASE earn_db" ```

Set DATABASE_URL in .env:

``` # If using root: DATABASE_URL='mysql://root@localhost:3306/earn_db'

# If you created a user: DATABASE_URL='mysql://earnuser:your_password@localhost:3306/earn_db' ```

After setting up MySQL, generate Prisma client:

bash npx prisma generate && npx prisma db push

Option 2: Cloud MySQL Database

If you prefer not to run MySQL locally, you can use cloud services (all have free tiers): - railway Setup MySQL with Railway - render Setup MySQL with Render - Setup MySQL with PlanetScale

Then set DATABASE_URL in .env with the connection string from your cloud provider.

  • privy Privy setup:
  • Create a new privy app, Client Side Web App
  • Add env variables NEXT_PUBLIC_PRIVY_APP_ID and PRIVY_APP_SECRET
  • Update the setting to include server side environment
  • Add env variable PRIVY_VERIFICATION_KEY (hidden under 'Verify with key instead' in Privy App settings)
  • Enable Solana External Wallets and Google social sign in -
  • resend Resend setup:
  • To obtain your RESEND_API_KEY, visit the Resend dashboard.
  • cloudinary Cloudinary setup:
  • To obtain your CLOUDINARY_* API keys, visit the Cloudinary dashboard.
  • jupiter Jupiter API setup:
  • Visit portal.jup.ag to generate a free API key
  • Add JUPITER_API_KEY to your .env file
  • Required for token price fetching functionality
  • Set up Solana RPC WebSocket URL:
  • Set NEXT_PUBLIC_RPC_WS_URL in your .env file. This is required for wallet-related features.
  • You can use a public RPC endpoint or get one from providers like Helius, Triton.one. NEXT_PUBLIC_RPC_WS_URL='wss://api.mainnet-beta.solana.com?api-key=abc-xyz' > Note: Public endpoints have rate limits. For development, consider using devnet: wss://api.devnet.solana.com

Facing an issue? Please feel free to reach out to Jill or Abhishek on Twitter.

  1. Run the development server bash pnpm dev

⭐Contributing

We welcome contributions from everyone! Whether it's submitting an issue, a pull request, or suggesting new ideas, your input is highly valued. Check out our contributing guide for guidelines on how to proceed.

Facing an issue? Please feel free to reach out to Jill or Abhishek on Twitter.

Why should you contribute to Earn?

  • Consistent, good-quality contributions will earn you contributor status in the Superteam of your preference! Contributors get special access to channels on Discord, preferential entry to events, and is a great stepping stone to becoming a Superteam member.
  • Get XP if you're already a Superteam Member or Contributor
  • Unwavering love and support from the Superteam Earn team!

Contributors

📊Repo Activity

Extension points exported contracts — how you extend this code

SkillsComboboxProps (Interface)
* Props for the SkillsCombobox component.
src/components/shared/SkillsCombobox.tsx
SuperteamChaptersSchema (Interface)
* Generate Person schema for a talent profile
src/utils/json-ld.ts
Window (Interface)
(no doc)
src/instrumentation-client.ts
GrantPageProps (Interface)
(no doc)
src/layouts/Grants.tsx
Stats (Interface)
(no doc)
src/queries/hackathon.ts
SponsorType (Interface)
(no doc)
src/interface/sponsor.ts
Project (Interface)
(no doc)
src/pages/projects.tsx
RedisLockOptions (Interface)
(no doc)
src/lib/with-redis-lock.ts

Core symbols most depended-on inside this repo

cn
called by 601
src/utils/cn.ts
safeStringify
called by 272
src/utils/safeStringify.ts
useUser
called by 113
src/store/user.ts
baseAsset
called by 59
src/pages/earn/hackathon/talent-olympics.tsx
formatNumberWithSuffix
called by 58
src/utils/formatNumberWithSuffix.ts
getURL
called by 55
src/utils/validUrl.ts
GenIcon
called by 52
src/components/icons/helpers/GenIcon.tsx
useDisclosure
called by 50
src/hooks/use-disclosure.ts

Shape

Function 2,537
Interface 597
Method 12
Class 4
Enum 2

Languages

TypeScript100%

Modules by API surface

src/utils/json-ld.ts28 symbols
src/pages/earn/hackathon/talent-olympics.tsx28 symbols
src/features/listings/utils/parse-opportunity-tags.ts26 symbols
src/app/api/sponsor-dashboard/listing/[id]/scout/route.ts21 symbols
src/components/tiptap/extensions/image/image.ts18 symbols
src/app/sitemap.ts18 symbols
src/features/listing-builder/components/Form/Boost/utils.ts16 symbols
src/pages/earn/hackathon/world-cup.tsx15 symbols
src/server/tokenList.ts14 symbols
src/constants/tokenList.ts14 symbols
src/components/ui/multi-select.tsx14 symbols
src/components/tiptap/utils.ts14 symbols

Datastores touched

(mysql)Database · 1 repos
earn_dbDatabase · 1 repos

For agents

$ claude mcp add earn \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact