DeepMehta06/Multi-Authority-Scholarship-Blockchain-Project
GitHub: DeepMehta06/Multi-Authority-Scholarship-Blockchain-Project
一个基于区块链的多权威奖学金管理系统,通过智能合约实现透明、自动化与可审计的资助分配。
Stars: 0 | Forks: 0
🎓 多权威奖学金链 🎓
基于区块链透明性的去中心化奖学金管理
## 📊 项目报告
Click above to view the complete interactive HTML report presentation
Or open ppt_and_report/REPORT.html directly in your browser for local viewing
## 🎯 问题与灵感
| 传统奖学金系统存在**缺乏透明度、集中控制以及低效的资金分配**问题。学生在申请过程中面临付款延迟、资格标准不明确以及难以跨多个权威机构申请等问题。奖学金提供方则难以进行验证、追踪以及确保资金到达合适的候选人。 **多权威奖学金链**通过利用区块链技术,彻底改变了这一现状,创建了一个透明、去中心化且高效的奖学金生态系统。多个权威机构可以在同一平台管理奖学金,学生可以无缝申请,每一笔交易都会被不可篡改地记录在链上。 |
|
| ### 我们所见证的现实 作为学生,我们亲身经历了令人沮丧的奖学金申请过程: - 📝 **纸质混乱**:大量文件在行政部门丢失 - ⏳ **无尽等待**:申请状态数月不明 - 🔒 **黑箱决策**:选择标准与资金分配不透明 - 💸 **拨款延迟**:学生因付款延迟错过缴费截止日期 - 🔄 **重复申请**:同一份文件提交给多个权威机构 ### 让我们感动的统计数据 - **40%** 的符合条件学生因流程复杂从未申请 - **29亿美元** 的奖学金每年在印度未被申领 - **67%** 的学生将缺乏透明度列为重大关切 - **3-6个月** 平均资金拨款延迟 ### 我们的使命 我们相信 **技术应当让教育资金获取民主化**。通过结合区块链的不可篡改性与现代网络技术,我们正在创建一个系统: - 每一项奖学金决策都可追溯 - 每一笔资金转账都可审计 - 每位学生都拥有平等、透明的访问权限 |
## 🧠 它的作用
⛓️区块链驱动智能合约确保透明度与不可篡改性 |
🏛️多权威系统单一平台支持多个奖学金提供方 |
🎓学生身份(SBT)灵魂绑定令牌用于唯一学生识别 |
📝智能申请自动化申请处理与验证 |
💰安全资金库链上资金管理与分配 |
📊实时分析全面的统计与仪表盘 |
✉️邮件验证通过邮件确认的安全认证 |
🔐基于角色的访问权限分级,适用于权威机构与学生 |
📄文档管理安全上传与验证文件 |
🔔智能通知申请状态的实时更新 |
🤖AI 聊天机器人用于查询与指导的智能助手 |
🌐Web3 集成无缝连接区块链钱包 |
## ⚙️ 技术栈
### 前端
⚛️ Next.js 15 • 🎨 Tailwind CSS • 🔷 TypeScript • 🧭 React Hooks • 🎭 Shadcn UI
📊 Recharts • 🌐 Web3.js • 🔄 Context API • 📱 响应式设计 • ⚡ Socket.io 客户端
### 后端
🟢 Node.js • 🚂 Express.js • 🔷 TypeScript • 🔐 JWT 认证
🗄️ Prisma ORM • 🐘 PostgreSQL (Supabase) • ⚡ RESTful API • 📧 Nodemailer
🔌 Socket.io • 🤖 AI 集成 • 📁 文件上传 • 🔒 bcrypt
### 区块链
🔗 Ethereum • ⚙️ Hardhat • 📜 Solidity • 🦊 MetaMask 集成
🧪 Ethers.js • 🏗️ 智能合约 • 🪙 ERC20 代币 • 📝 EIP-712 签名
### 智能合约
- **ScholarshipRegistry**: 管理奖学金列表与元数据
- **StudentIdentitySBT**: 灵魂绑定令牌,用于唯一学生身份(ERC-5484)
- **ApplicationState**: 使用 EIP-712 在链上跟踪申请生命周期
- **AuthorityRegistry**: 去中心化权限管理
- **FundVault**: 安全奖学金资金分配与自动化释放
- **MockERC20**: 本地开发测试用代币
### 开发与运维
🔧 ESLint • 📝 Prettier • 🧪 Jest • 🔍 TypeScript • 🐙 Git
📦 npm/yarn • 🏗️ Hardhat • 🗃️ Prisma Studio • 🎨 VS Code
| **后端可以做什么:** - ✅ 离线验证文件 - ✅ 将批准签名转发至区块链 - ✅ 查询链上状态 - ✅ 提供用户界面 | **后端不能做什么:** - ❌ 无签名即批准申请 - ❌ 从资金库中转账 - ❌ 修改历史记录 - ❌ 覆盖资格规则 |
## 🏗️ 我们如何构建它
| 多权威奖学金链被架构为一个全栈区块链应用: ### 架构 - 🎨 **Next.js 前端**:服务端渲染的 React 应用 - ⚡ **Express 后端**:带 TypeScript 的 RESTful API - 🗄️ **Supabase 数据库**:具备实时功能的 PostgreSQL - ⛓️ **以太坊智能合约**:基于 Solidity 的链上逻辑 - 🔐 **JWT + Web3 认证**:混合认证系统 ### 关键组件 - **智能合约层**:区块链上的不可变业务逻辑 - **API 层**:连接 Web2 与 Web3 的 RESTful 服务 - **数据库层**:使用 Prisma 的链下数据存储 - **前端层**:基于 Next.js 的直观用户界面 - **邮件服务**:验证与通知系统 ### 开发工具 - **Hardhat**:智能合约开发与测试 - **Prisma Studio**:数据库管理界面 - **TypeScript**:全栈类型安全开发 - **Git**:版本控制与协作 |
|
## 📂 项目结构
```
Multi-Authority-Scholarship-Chain/
│
├── 📱 frontend/ # Next.js Frontend Application
│ ├── src/
│ │ ├── app/ # Next.js App Router pages
│ │ │ ├── statistics/ # Analytics dashboard
│ │ │ ├── authority/ # Authority portal
│ │ │ ├── student/ # Student portal
│ │ │ └── ...
│ │ ├── components/ # Reusable React components
│ │ │ ├── ui/ # Shadcn UI components
│ │ │ └── auth-provider.tsx # Authentication context
│ │ ├── lib/ # Utility libraries
│ │ │ └── api.ts # API client
│ │ └── assets/ # Static assets
│ └── public/ # Public files
│
├── 🔧 backend/ # Node.js Express Backend
│ ├── src/
│ │ ├── routes/ # API route handlers
│ │ ├── services/ # Business logic layer
│ │ ├── middleware/ # Auth, upload, validation
│ │ ├── utils/ # Helper functions
│ │ ├── config/ # Configuration files
│ │ │ ├── blockchain.ts # Web3 configuration
│ │ │ └── env.ts # Environment variables
│ │ ├── lib/ # Libraries
│ │ │ └── prisma.ts # Prisma client
│ │ └── types/ # TypeScript types
│ ├── prisma/
│ │ ├── schema.prisma # Database schema
│ │ └── migrations/ # Database migrations
│ └── storage/
│ └── documents/ # Uploaded documents
│
├── ⛓️ blockchain/ # Smart Contracts & Deployment
│ ├── contracts/ # Solidity smart contracts
│ │ ├── ScholarshipRegistry.sol
│ │ ├── StudentIdentitySBT.sol
│ │ ├── ApplicationState.sol
│ │ ├── AuthorityRegistry.sol
│ │ ├── FundVault.sol
│ │ └── MockERC20.sol
│ ├── scripts/ # Deployment scripts
│ │ ├── deploy.js
│ │ └── seed.js
│ ├── test/ # Contract tests
│ ├── artifacts/ # Compiled contracts
│ └── hardhat.config.js # Hardhat configuration
│
├── 📚 docs/ # Documentation
│ ├── BACKEND_ARCHITECTURE_VISUAL.md
│ ├── IMPLEMENTATION_WORKPLAN.md
│ └── WEB3_MODULE_SPEC.md
│
├── 🚀 Deployment Scripts
│ ├── start-frontend.bat
│ ├── start-backend.bat
│ └── start-blockchain.bat
│
└── 📖 Documentation Files
├── QUICK_START.md
├── SETUP_STATUS.md
├── GMAIL_SETUP.md
├── STATISTICS_USER_GUIDE.md
└── CHATBOT_TESTING_GUIDE.md
```
## 📸 演示截图
| 🏠 Landing Page | 🔐 Authentication |
![]() |
![]() |
| 📊 Analytics Dashboard | 🎓 Student Dashboard |
![]() |
![]() |
| 📝 Applications | 💰 Scholarships |
![]() |
![]() |
| 📅 Calendar | 🤖 AI Chatbot |
![]() |
![]() |
| 💼 Portfolio | 🤝 Wallet Connection |
![]() |
![]() |
100+ API endpoints documented | Complete Postman collection included
Import postman_collection.json into Postman to test all endpoints
| 📚 分类 | 🔢 端点 | 📝 描述 |
| 🔐 认证 | 3 | 钱包签名与 JWT 令牌 |
| 🎓 学生 | 12 | 注册、资料与统计 |
| 🏛️ 权威机构 | 8权限管理与验证 | |
| 🎯 奖学金 | 15 | CRUD 操作与搜索 |
| 📝 申请 | 18 | 提交、审核与追踪申请 |
| ✅ 批准 | 6 | 多权威机构批准流程 |
| 📊 分析 | 10 | 平台统计与趋势 |
| 💼 作品集 | 14 | 项目、技能与成就 |
| 📅 日历 | 12 | 事件与截止日期管理 |
| 💬 消息 | 8 | 实时消息 |
| 👥 好友 | 6 | 好友请求与管理 |
| 👨🏫 专家 | 7 | 专家咨询系统 |
| 💬 论坛 | 9 | 社区讨论 |
| 🤖 聊天机器人 | 2 | AI 辅助支持 |
| 📧 验证 | 3 | 邮箱验证系统 |
🔥 总计:133+ 个端点覆盖平台全部功能
## 🗺️ 路线图
### ✅ 已完成阶段
- ✅ **阶段 1**:核心智能合约开发与部署
- ✅ **阶段 2**:后端 API(含认证与数据库)
- ✅ **阶段 3**:前端(学生与权威机构门户)
- ✅ **阶段 4**:统计仪表盘与分析
- ✅ **阶段 5**:AI 聊天机器人集成
- ✅ **阶段 6**:学生作品集系统
- ✅ **阶段 7**:好友与社交功能
- ✅ **阶段 8**:实时消息(Socket.io)
- ✅ **阶段 9**:专家聊天系统
- ✅ **阶段 10**:社区论坛(含讨论帖)
- ✅ **阶段 11**:日历集成与截止日期追踪
- ✅ **阶段 12**:邮箱验证与通知系统
- ✅ **阶段 13**:增强安全(速率限制与验证)
- ✅ **阶段 14**:完整的 API 文档
### 🎯 平台状态:生产就绪
本奖学金平台功能完整,已准备好部署。所有主要功能(包括区块链集成、学生/权威机构门户、社交功能、消息、专家咨询与分析)均已成功实现并测试。
## 🧠 我们的收获
- ⛓️ **区块链开发**:构建生产级智能合约,实现 EIP-712 安全离线签名,理解 Gas 优化
- 🔐 **混合认证**:结合传统 JWT 认证与 Web3 钱包签名,提供无缝用户体验
- 🗄️ **数据库设计**:使用 Prisma ORM 创建复杂关系模式,管理多实体间关系并优化查询
- 🎨 **Next.js 15**:利用 App Router、服务器组件与客户端组件实现最佳性能与 SEO
- 📊 **数据可视化**:使用 Recharts 实现交互式图表,提供实时分析与洞察
- 🧪 **智能合约测试**:使用 Hardhat 与 Chai 编写全面的区块链逻辑测试套件
- 🔄 **状态管理**:在 Web2 与 Web3 层之间管理复杂应用状态
- 📧 **邮件集成**:构建可靠的邮箱验证与通知系统(使用 Nodemailer)
- 🤖 **AI 集成**:实现上下文感知的聊天机器人以提升用户体验
- 🚀 **DevOps**:设置开发流程、环境配置与部署流水线
- 🔌 **实时通信**:使用 Socket.io 实现即时消息与通知
- 💼 **作品集系统**:构建完整的动态内容管理的学生作品集
- 👥 **社交功能**:实现好友系统、消息与社区论坛
- 📅 **日历管理**:集成统一日历与多来源事件
- 🏗️ **可扩展架构**:设计模块化、可维护的代码结构以支持长期发展
- 🔒 **安全最佳实践**:实现速率限制、输入验证、XSS 防护与安全文件上传
## 🧩 面临的挑战
- ⚠️ **Web2 与 Web3 桥接**:无缝集成传统后端与区块链智能合约,同时保持数据一致性
- 🔍 **Gas 优化**:通过高效合约设计与批量操作最小化交易成本
- 💾 **数据一致性**:确保链上与链下数据在多服务间同步
- 🔐 **安全性**:实现多层安全机制,包括基于角色的访问控制、输入验证与链上验证
- ⏰ **实时更新**:监听区块链事件、Socket.io 消息并即时更新多客户端 UI
- 📊 **复杂分析**:从区块链、数据库、实时事件等多源聚合数据以生成全面统计
- 🌐 **钱包集成**:处理多种钱包提供方(MetaMask、WalletConnect)并管理边界情况
- 🔄 **事务管理**:管理待处理事务、错误状态并提供清晰用户反馈
- 📱 **响应式设计**:为区块链交互与复杂仪表盘创建移动端友好界面
- 🧪 **测试**:为智能合约、API 端点与集成场景编写全面测试
- 🔌 **Socket.io 扩展**:在保持性能的同时处理实时消息连接
- 💬 **论坛可扩展性**:实现高效分页、投票系统与搜索功能
- 📅 **日历同步**:合并多来源事件到统一视图
- 🎨 **UI/UX 复杂度**:在功能丰富的界面与直观用户体验间取得平衡
- 🗃️ **数据库性能**:优化涉及多关联的复杂查询
- 🤖 **聊天机器人上下文**:维护对话上下文并提供相关回复
## 👥 团队 Blockchainer
![]() 🧑💻 Abhishek ChaudhariFull Stack Developer |
![]() 🧑💻 Lokesh GileBlockchain Developer |
![]() 🧑💻 Yug DeshmukhFrontend Developer |
![]() 🧑💻 Deep MehtaBackend Developer |
## 🔗 项目链接
## 📊 项目统计
| 组件 | 技术 | 数量 |
|-----------|-----------|-------|
| 📜 智能合约 | Solidity | 6 |
| 🛣️ API 端点 | Express.js | 133+ |
| ⚛️ React 组件 | Next.js | 80+ |
| 📄 页面 | Next.js App Router | 25+ |
| 🗄️ 数据库表 | PostgreSQL | 25+ |
| 🔐 认证策略 | JWT + Web3 | 2 |
| 👥 用户角色 | 自定义 RBAC | 4 |
| 📊 图表类型 | Recharts | 6 |
| 🎨 UI 组件 | Shadcn | 40+ |
| 数据库迁移 | Prisma | 5 |
| 🧪 测试文件 | Hardhat | 3 |
| 📚 文档文件 | Markdown | 15+ |
## 🔒 安全考量
- ✅ 智能合约经过审计以防范常见漏洞
- ✅ 实施基于角色的访问控制(RBAC)
- ✅ 所有账户强制邮箱验证
- ✅ 安全文件上传(含验证与清洗)
- ✅ 敏感 API 端点实施速率限制
- ✅ JWT 令牌过期与刷新机制
- ✅ 启用 XSS 与 CSRF 防护
- ✅ 数据库查询防范 SQL 注入
- ✅ 使用环境变量存储敏感配置
- ✅ 生产环境强制 HTTPS
## 🧪 测试
```
# 后端测试
cd backend
npm test
# 智能合约测试
cd blockchain
npx hardhat test
# 前端测试(待办事项)
cd frontend
npm test
```
## 🤝 贡献
我们欢迎贡献!请遵循以下步骤:
1. Fork 本仓库
2. 创建功能分支(`git checkout -b feature/AmazingFeature`)
3. 提交更改(`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支(`git push origin feature/AmazingFeature`)
5. 发起合并请求
## 📄 许可证
本项目采用 MIT 许可证——请参阅 [LICENSE](LICENSE) 文件了解详情。
## 🙏 感谢
- 感谢以太坊社区提供的区块链基础设施
- Hardhat 团队提供的优秀开发工具
- Next.js 团队提供的出色 React 框架
- Prisma 团队提供的直观 ORM
- Supabase 提供的可靠数据库托管
- Shadcn 提供的精美 UI 组件
- 所有为此项目做出贡献的开源开发者
使用 💙 由 BlockChainers 构建
由区块链技术驱动
由区块链技术驱动
标签:MITM代理, Web3, 供应链透明, 分布式账本, 区块链, 去中心化, 可验证性, 多方审批, 多机构协作, 奖学金管理, 审核追踪, 政府资助, 智能合约, 测试用例, 自动化基金释放, 自动化攻击, 规则执行, 赞助商管理, 透明分配, 透明系统, 链上审计, 问责机制, 高校奖学金









