门户摘要
该模板为您提供了一个黑客马拉松项目门户后端,支持用户帐户、团队组建、项目提交跟踪和评审分数审核,以便组织者将每个项目保持在一个工作区中。
- 用户和角色跟踪 — 跟踪组织者、参与者、评审和导师的用户名、电子邮件、角色和显示名称。
- 在一个模型中构建团队 — 跟踪 Team.teamName、Team.track、Team.status、Team.captain、Team.members 和 Team.maxMembers,并使用可查询的 Parse 类。
- 提交工作流程 — 存储 ProjectSubmission.projectTitle、repositoryUrl、demoUrl、submissionStatus 和 submittedAt 字段。
- 评分捕捉 — 记录每个提交的 JudgingScore.criteria、分数、评论、评审和 judgedAt。
什么是黑客马拉松项目门户模板?
客户希望在黑客马拉松项目门户中获得主动更新,这只有在案例状态、文档和下一步操作都集中在一个系统中时才现实。团队在早晨的站会上最先感受到这一点。这个模板在 Back4app 上建模 Team、ProjectSubmission 和 JudgingScore,并提供基于角色的访问权限,因此每个黑客马拉松项目门户团队成员都能看到他们所拥有的工作流程的一部分。该架构涵盖用户(用户名、电子邮件、角色、显示名称)、团队(团队名称、轨道、状态、队长、成员、最大成员数)、项目提交(项目标题、项目摘要、存储库网址、演示网址、团队、提交者、提交状态、挑战轨道、提交时间)和 JudgingScore(提交、评审、标准、分数、评论、评审时间),并内置了身份验证和基于角色的访问权限。连接您首选的前端,加快发布速度。
最佳适合:
此黑客马拉松项目门户后端的组织方式
黑客马拉松项目门户质量是滞后指标;领先指标是前线更新是否在同一天流入报告。
中心保持团队、项目提交和评分语言的一致性,以便产品、运营和工程在说“记录”时意思相同。
门户功能
此中心中的每个技术卡片都使用相同的门户架构,包括用户、团队、ProjectSubmission 和 JudgingScore。
帐户和角色设置
用户存储用户名、电子邮件、角色和显示名称以访问门户。
团队组建
团队链接队长、成员数组、轨道、状态和最大成员数。
项目提交详细信息
ProjectSubmission存储projectTitle、projectSummary、repositoryUrl、demoUrl和challengeTrack。
提交工作流程
ProjectSubmission 跟踪团队、提交者、提交状态和提交时间。
评审与评分
JudgingScore 记录提交、评审者、标准、分数、评论和评审时间。
为什么 Back4app 适合黑客马拉松项目门户
Back4app 为黑客马拉松提供所需的门户原语,使您的团队可以专注于注册、提交处理和评分审查,而不是基础设施工作。
- •用户、团队、项目提交和评审分数类: 从一开始就在专门的 Parse 类中建模事件、团队成员、项目详情和评审打分。
- •提交和分数跟踪: 存储 ProjectSubmission.repositoryUrl、demoUrl、submittedAt,以及 JudgingScore.criteria、score 和 comments,而无需在后期即兴修改您的架构。
- •实时评审可见性: 在保持 REST 和 GraphQL 可供评审和组织者使用的同时,使用 Live Queries 进行 JudgingScore 更新。
从一个后端合同在网页和移动端运行注册、提交和评审。
门户福利
一个黑客马拉松门户后端,在比赛期间保持事件操作有序。
更快的活动启动
从用户和团队类开始,而不是从零开始设计注册表。
清晰的提交跟踪
使用 ProjectSubmission 字段,如 submittedAt、demoUrl 和 submissionStatus 来跟踪每个项目条目。
为评审准备的评分记录
将 JudgingScore 条目与 ProjectSubmission 和评审者关联,以便审核保持可审计。
基于角色的访问流程
使用 ACL 和 CLP 规则保护组织者、评审、导师和参与者的操作。
您可以查询的事件数据
为仪表板和排行榜在一个地方存储用户、团队、项目提交和评分对象。
AI辅助设置
通过一个结构化提示生成后端框架和集成说明。
门户技术栈
此Hackathon项目门户后端模板中包含的一切。
门户实体图
黑客马拉松项目门户架构的实体关系模型。
涵盖用户、团队、项目提交和评分记录的架构。
查看图表源
erDiagram
User ||--o{ Team : "captain"
User }o--o{ Team : "members"
User ||--o{ ProjectSubmission : "submittedBy"
User ||--o{ JudgingScore : "judge"
Team ||--o{ ProjectSubmission : "team"
ProjectSubmission ||--o{ JudgingScore : "submission"
User {
String objectId PK
String username
String email
String password
String role
String displayName
Date createdAt
Date updatedAt
}
Team {
String objectId PK
String teamName
String track
String status
String captainId FK
Array members
Number maxMembers
Date createdAt
Date updatedAt
}
ProjectSubmission {
String objectId PK
String projectTitle
String projectSummary
String repositoryUrl
String demoUrl
String teamId FK
String submittedById FK
String submissionStatus
String challengeTrack
Date submittedAt
Date createdAt
Date updatedAt
}
JudgingScore {
String objectId PK
String submissionId FK
String judgeId FK
String criteria
Number score
String comments
Date judgedAt
Date createdAt
Date updatedAt
}
门户集成流程
登录、团队面板查找、项目提交、分数输入和实时更新的典型运行流程。
查看图表源
sequenceDiagram
participant User
participant App as Hackathon Project Portal App
participant Back4app as Back4app Cloud
User->>App: Sign in to the hackathon workspace
App->>Back4app: POST /login
Back4app-->>App: Session token
User->>App: Browse team formation board
App->>Back4app: GET /classes/Team?include=captain
Back4app-->>App: Teams and member lists
User->>App: Create or update a project submission
App->>Back4app: POST or PUT /classes/ProjectSubmission
Back4app-->>App: Submission saved
Judge->>App: Review a project and enter scores
App->>Back4app: POST /classes/JudgingScore
Back4app-->>App: Score stored
App->>Back4app: Live query project updates and score changes
Back4app-->>App: Realtime portal events字段字典
黑客马拉松门户架构中每个类的完整字段级参考。
| 字段 | 类型 | 描述 | 必填 |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | 自动 |
| username | String | Login name for a portal account | |
| String | Email address used for team invites and judging notifications | ||
| password | String | Hashed password (write-only) | |
| role | String | Portal role such as organizer, participant, judge, or mentor | |
| displayName | String | Name shown inside teams, submissions, and score review | — |
| createdAt | Date | Auto-generated creation timestamp | 自动 |
| updatedAt | Date | Auto-generated last-update timestamp | 自动 |
8 字段在 User 中
门户访问规则
ACL和CLP策略如何保护用户、团队、项目提交和评审分数数据。
参与者拥有规则
只有团队队长或组织者应更新团队成员、项目详情或提交状态。
评审评分边界
评审可以为分配的提交创建评分记录,而只有组织者可以覆盖事件级别的规则。
范围事件可见性
向需要访问的角色公开用户、团队和项目提交数据,并保持私人备注或审核字段受到限制。
JSON模式
准备好复制到Back4app中的原始JSON模式定义,或用作实现参考。
{
"classes": [
{
"className": "User",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"username": {
"type": "String",
"required": true
},
"email": {
"type": "String",
"required": true
},
"password": {
"type": "String",
"required": true
},
"role": {
"type": "String",
"required": true
},
"displayName": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Team",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"teamName": {
"type": "String",
"required": true
},
"track": {
"type": "String",
"required": true
},
"status": {
"type": "String",
"required": true
},
"captain": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"members": {
"type": "Array",
"required": true,
"targetClass": "User"
},
"maxMembers": {
"type": "Number",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "ProjectSubmission",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"projectTitle": {
"type": "String",
"required": true
},
"projectSummary": {
"type": "String",
"required": true
},
"repositoryUrl": {
"type": "String",
"required": true
},
"demoUrl": {
"type": "String",
"required": false
},
"team": {
"type": "Pointer",
"required": true,
"targetClass": "Team"
},
"submittedBy": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"submissionStatus": {
"type": "String",
"required": true
},
"challengeTrack": {
"type": "String",
"required": true
},
"submittedAt": {
"type": "Date",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "JudgingScore",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"submission": {
"type": "Pointer",
"required": true,
"targetClass": "ProjectSubmission"
},
"judge": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"criteria": {
"type": "String",
"required": true
},
"score": {
"type": "Number",
"required": true
},
"comments": {
"type": "String",
"required": false
},
"judgedAt": {
"type": "Date",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
}
]
}与AI代理一起构建
使用Back4app AI代理从此模板生成一个真实的黑客马拉松项目门户应用程序,包括前端、后端、身份验证,以及用户、团队、项目提交和评分流程。
在 Back4app 上创建一个安全的黑客马拉松项目门户后端,使用此精确的架构和行为。 架构: 1. 用户(使用 Back4app 内置):用户名,电子邮件,密码,角色,显示名称;objectId,createdAt,updatedAt(系统)。 2. 团队:teamName(字符串,必填),track(字符串,必填),status(字符串,必填),captain(指向用户的指针,必填),members(用户指针数组,必填),maxMembers(数字,必填);objectId,createdAt,updatedAt(系统)。 3. 项目提交:projectTitle(字符串,必填),projectSummary(字符串,必填),repositoryUrl(字符串,必填),demoUrl(字符串,选填),team(指向团队的指针,必填),submittedBy(指向用户的指针,必填),submissionStatus(字符串,必填),challengeTrack(字符串,必填),submittedAt(日期,选填);objectId,createdAt,updatedAt(系统)。 4. 评分:submission(指向项目提交的指针,必填),judge(指向用户的指针,必填),criteria(字符串,必填),score(数字,必填),comments(字符串,选填),judgedAt(日期,必填);objectId,createdAt,updatedAt(系统)。 安全性: - 参与者只能编辑自己的团队成员资格和自己的项目提交草稿/最终记录。 - 裁判可以为分配的提交创建和审核评分行。 - 组织者可以读取所有团队、项目提交和评分条目,然后在截止日期后锁定提交。 - 在设置最终状态后,保持提交数据不可变,组织者的更正除外。 身份验证: - 注册、登录、登出。 行为: - 团队组建、项目提交和评分录入。 - 提交状态和评分变化的实时更新。 - 包括 Parse CLPs、ACLs 和基于角色的访问规则,适用于组织者、参与者和裁判。 交付: - Back4app 应用,包含架构、权限和团队组建、提交以及评分审核的示例数据。
按下面的按钮打开带有此模板提示预填充的代理。
这是没有技术后缀的基础提示。您可以在之后调整生成的前端堆栈。
API 沙盒
尝试在黑客马拉松门户架构中使用 REST 和 GraphQL 端点。响应使用模拟数据,无需 Back4app 账户。
使用与此模板相同的架构。
选择您的技术栈
展开每个卡片以查看如何将Team、ProjectSubmission和JudgingScore与您选择的技术栈集成。
Flutter 黑客松项目门户后台
React 黑客松项目门户后台
React 原生 黑客松项目门户后台
Next.js 黑客松项目门户后台
JavaScript 黑客松项目门户后台
Android 黑客松项目门户后台
iOS 黑客松项目门户后台
Vue 黑客松项目门户后台
Angular 黑客松项目门户后台
GraphQL 黑客松项目门户后台
REST API 黑客松项目门户后台
PHP 黑客松项目门户后台
.NET 黑客松项目门户后台
每种技术所带来的收益
每个技术栈都使用相同的黑客马拉松后端架构和API契约。
统一的门户数据结构
使用一致的架构轻松管理用户、团队、项目提交和评分。
黑客马拉松活动的团队组建
让参与者创建团队,加入成员,并指定队长。
提交和评分工作流程
在一个后台跟踪项目提交、评审和总分。
基于角色的活动访问
为组织者、评委、导师和参与者定义访问级别。
黑客马拉松堆栈比较
比较所有支持技术的设置速度、SDK 风格和 AI 支持。
| 框架 | 设置时间 | 黑客松福利 | SDK 类型 | AI 支持 |
|---|---|---|---|---|
| 大约 5 分钟 | 用于移动和网页的黑客松门户的单一代码库。 | 类型化 SDK | 完整 | |
| 少于 5 分钟 | 供黑客松评审和团队使用的快速网络仪表板。 | 类型化 SDK | 完整 | |
| 约 3-7 分钟 | 跨平台移动应用程序用于黑客马拉松提交流程。 | 类型化 SDK | 完整 | |
| 快速(5分钟)设置 | 服务器渲染的网页应用程序用于黑客马拉松门户。 | 类型化 SDK | 完整 | |
| 大约 3-5 分钟 | 轻量级网页集成用于黑客马拉松门户。 | 类型化 SDK | 完整 | |
| 大约 5 分钟 | 原生 Android 应用程序用于黑客马拉松门户。 | 类型化 SDK | 完整 | |
| 少于5分钟 | 用于黑客马拉松门户的原生iOS应用程序。 | 键入的SDK | 完整 | |
| ~3-7分钟 | 用于黑客马拉松门户的React网页UI。 | 键入的SDK | 完整 | |
| 快速(5分钟)设置 | 用于黑客马拉松门户的企业网页应用。 | 键入的SDK | 完整 | |
| 少于2分钟 | 灵活的 GraphQL API 用于黑客马拉松门户。 | GraphQL API | 完整 | |
| 快速(2分钟)设置 | 用于黑客马拉松门户的 REST API 集成。 | REST API | 完整 | |
| 大约 3 分钟 | 用于黑客马拉松门户的服务器端 PHP 后端。 | REST API | 完整 | |
| 大约 3–7 分钟 | .NET 黑客松门户的后端。 | 类型化 SDK | 完整 |
设置时间反映从项目启动到使用该模板架构的第一个用户、团队或项目提交查询的预计持续时间。
门户常见问题解答
有关使用此模板构建黑客松项目门户后端的常见问题。