🚀 连接全球区块链开发者与顶级项目的去中心化招聘平台
Web3 Jobs 是一个专为区块链和加密货币行业打造的人才招聘平台。我们连接全球 Web3 开发者与顶尖项目,提供去中心化身份验证、加密货币薪资展示和智能匹配服务。
🎯 精准匹配
🔐 去中心化身份
💰 加密货币支付
AI 驱动的职位推荐算法
支持钱包签名登录 (SIWE)
薪资支持 USD/ETH 双标价
技能标签智能匹配
保护用户隐私与数据安全
集成主流加密货币支付
实时更新职位推送
无需传统账号密码
透明可信的薪酬体系
🔐 身份认证
📄 简历管理
• 邮箱密码登录
• 在线编辑简历
• Web3 钱包签名
• 技能标签展示
• SIWE 去中心化登录
• 作品集链接
💼 职位探索
📬 申请追踪
• 智能推荐算法
• 申请状态实时更新
• 多维度筛选
• 面试通知推送
• 薪资透明展示
• Offer 管理
📝 职位发布
🎯 人才匹配
• 快速创建职位
• 候选人智能推荐
• 加密货币薪资
• 技能标签筛选
• 远程/现场选择
• 活跃度评分
💬 即时沟通
📊 数据看板
• 在线消息系统
• 申请职位统计
• 面试安排
• 职位曝光分析
• 批量通知
• 招聘漏斗
功能
描述
🦊 钱包连接
支持 MetaMask 等主流钱包,一键连接身份
✍️ SIWE 登录
Sign In with Ethereum,去中心化身份验证
💎 加密货币薪资
职位薪资支持 ETH/USDC 等加密货币展示
⛓️ 链上验证
可选集成链上作品验证 (NFT/Gitcoin)
🏷️ 技能 NFT
未来支持技能认证 NFT 化
flowchart TB
subgraph Frontend["📱 Frontend - React Native"]
FN1[Zustand - 状态管理]
FN2[React Query - 数据获取]
FN3[NativeWind - Tailwind CSS]
end
subgraph Backend["🔧 Backend - NestJS"]
BN1[Prisma ORM]
BN2[JWT + Passport 认证]
BN3[ethers.js + SIWE]
BN4[PostgreSQL 数据库]
end
Frontend <==>|REST API| Backend
BN1 --- BN4
Loading
📁 点击展开完整目录结构
web3-jobs/
├── web3-job-app/ # React Native 前端应用
│ ├── app/ # Expo Router 路由系统
│ │ ├── (tabs)/ # 底部 Tab 导航页面
│ │ │ ├── index.tsx # 🏠 首页
│ │ │ ├── jobs.tsx # 💼 职位列表
│ │ │ ├── post.tsx # 📝 发布职位
│ │ │ ├── messages.tsx # 💬 消息中心
│ │ │ └── profile.tsx # 👤 个人中心
│ │ ├── job/
│ │ │ └── [id].tsx # 职位详情页
│ │ ├── _layout.tsx # 根布局
│ │ └── +not-found.tsx # 404 页面
│ ├── components/ # 可复用 UI 组件
│ │ ├── ui/ # 基础组件 (Button, Card, Input...)
│ │ ├── job/ # 职位相关组件
│ │ ├── home/ # 首页组件
│ │ ├── messages/ # 消息组件
│ │ └── profile/ # 个人中心组件
│ ├── lib/ # 工具函数与配置
│ │ ├── api.ts # API 客户端
│ │ ├── utils.ts # 通用工具
│ │ └── constants.ts # 常量定义
│ ├── store/ # Zustand 状态管理
│ │ └── authStore.ts # 认证状态
│ ├── hooks/ # 自定义 Hooks
│ └── app.json # Expo 配置
│
├── web3-api/ # NestJS 后端 API
│ ├── src/
│ │ ├── app.module.ts # 根模块
│ │ ├── main.ts # 入口文件
│ │ ├── auth/ # 🔐 认证模块
│ │ │ ├── auth.controller.ts
│ │ │ ├── auth.service.ts
│ │ │ ├── strategies/ # Passport 策略
│ │ │ └── dto/ # 数据传输对象
│ │ ├── users/ # 👥 用户模块
│ │ ├── jobs/ # 💼 职位模块
│ │ ├── applications/ # 📋 申请模块
│ │ ├── messages/ # 💬 消息模块
│ │ ├── wallet-profiles/ # 🦊 钱包档案
│ │ └── web3/ # ⛓️ Web3 集成
│ ├── prisma/
│ │ ├── schema.prisma # 数据库模型
│ │ ├── migrations/ # 数据库迁移
│ │ └── seed.ts # 种子数据
│ ├── test/ # E2E 测试
│ └── docker-compose.yml # Docker 配置
│
├── assets/ # 🖼️ 项目资源
│ └── screenshots/ # 应用截图
│
├── README.md # 项目文档
├── CLAUDE.md # 开发指南
└── LICENSE # 开源协议
软件
版本要求
说明
Node.js
>= 18.x
JavaScript 运行时
npm
>= 9.x
包管理器
Docker
最新
数据库容器
Git
最新
版本控制
git clone https://github.com/your-username/web3-jobs.git
cd web3-jobs
cd web3-api
docker-compose up -d
# 验证容器状态
docker ps
cd web3-api
# 安装依赖
npm install
# 复制环境变量
cp .env.example .env
# 生成 Prisma Client
npm run prisma:generate
# 运行数据库迁移
npm run prisma:migrate
# 插入测试数据
npm run prisma:seed
# 启动开发服务器
npm run start:dev
cd web3-job-app
# 安装依赖
npm install
# 启动 Expo Dev Server
npm start
# 扫描屏幕二维码
# - 按 a → Android 模拟器
# - 按 i → iOS 模拟器
# - 扫描二维码 → 真机测试
方法
端点
描述
认证
POST
/api/auth/register
用户注册
❌
POST
/api/auth/login
邮箱密码登录
❌
POST
/api/auth/siwe
钱包签名登录
❌
GET
/api/auth/profile
获取用户信息
✅
PUT
/api/auth/profile
更新用户信息
✅
方法
端点
描述
认证
GET
/api/jobs
获取职位列表
❌
GET
/api/jobs/:id
获取职位详情
❌
POST
/api/jobs
发布职位
✅
PUT
/api/jobs/:id
更新职位
✅
DELETE
/api/jobs/:id
删除职位
✅
方法
端点
描述
认证
POST
/api/applications
申请职位
✅
GET
/api/applications/my
我的申请
✅
GET
/api/applications/:id
申请详情
✅
方法
端点
描述
认证
GET
/api/messages
获取消息列表
✅
POST
/api/messages
发送消息
✅
PUT
/api/messages/:id/read
标记已读
✅
项目包含预置的测试账户,方便快速体验:
⚠️ 重要 : 部署到生产环境前,请务必完成以下安全配置
# 使用 OpenSSL
openssl rand -base64 32
# 或使用 Node.js
node -e " console.log(require('crypto').randomBytes(32).toString('hex'))"
编辑 web3-api/.env:
# 生产环境 JWT 密钥 (必须修改!)
JWT_SECRET=< 生成的强随机密钥>
# 数据库密码 (必须修改!)
POSTGRES_PASSWORD=< 你的强密码>
# JWT 过期时间
JWT_EXPIRATION=7d
# 使用 Nginx 反向代理
# 或使用 Vercel/Render 等托管服务
cd web3-api
# 打开 Prisma Studio (数据库可视化)
npm run prisma:studio
# 创建新的数据库迁移
npx prisma migrate dev --name < 描述>
# 重置数据库 (开发环境)
npx prisma migrate reset
# 查看迁移状态
npx prisma migrate status
cd web3-job-app
# 清除缓存并重启
npx expo start -c
# Android 真机/模拟器
npx expo run:android
# iOS (仅 macOS)
npx expo run:ios
# Web 预览
npx expo start --web
# 格式化代码
npm run format
# 运行 Lint
npm run lint
# 运行测试
npm run test
npm run test:cov # 带覆盖率
欢迎贡献代码!请遵循以下步骤:
🍴 Fork 本仓库
🌿 创建特性分支 (git checkout -b feature/AmazingFeature)
✅ 提交更改 (git commit -m 'Add some AmazingFeature')
🚀 推送到分支 (git push origin feature/AmazingFeature)
📬 开启 Pull Request
MIT License - 详见 LICENSE 文件
Neo Web3 - Web3 全栈开发者
专注链上 AI 的底层逻辑探索者,热衷于构建去中心化未来
领域
技术
⛓️ 区块链
Solidity, Ethereum, Smart Contracts, DeFi, NFT, Layer 2
🎨 前端
React, TypeScript, Web3.js, Ethers.js, Next.js
🔧 后端
Node.js, GraphQL, The Graph, IPFS
🧰 工具
Hardhat, Foundry, Git, Docker, Chainlink, Uniswap, Aave
50+ 智能合约部署
20+ DApps 构建
5+ 年开发经验
$10M+ TVL 保护
本项目使用了以下优秀的开源项目:
Made with ❤️ by Neo Web3
🌟 如果这个项目对你有帮助,请给一个 Star!