blackspider-ops/gdg-ctf-challenge

GitHub: blackspider-ops/gdg-ctf-challenge

一个基于React和Supabase构建的CTF竞赛托管平台,提供排行榜、证书发放和活动管理功能,适合社区和企业举办网络安全竞赛。

Stars: 0 | Forks: 0

# GDG CTF 平台 一个为 Google Developers Group 构建的夺旗赛 (CTF) 挑战平台,采用 React、TypeScript 和 Supabase 开发。 ## 项目概述 GDG CTF 平台是一个用于举办网络安全和编程挑战的 Web 平台。参与者可以解决 CTF 挑战,跟踪他们的进度,并在排行榜上竞争。 ## 功能特性 - **CTF 挑战系统**:多种难度级别的网络安全和编程挑战 - **实时排行榜**:跟踪参与者排名和分数 - **用户资料**:个人进度跟踪和统计数据 - **管理面板**:为组织者提供的综合管理工具 - **证书系统**:为表现优异者颁发证书 - **活动管理**:控制活动状态和设置 - **渐进式提示**:为遇到困难的参与者提供帮助系统 ## 技术栈 - **前端**:React 18 配合 TypeScript - **样式**:Tailwind CSS 配合自定义赛博主题组件 - **后端**:Supabase(PostgreSQL 数据库、身份验证、存储) - **构建工具**:Vite - **UI 组件**:Shadcn/ui 组件 ## 入门指南 ### 前置条件 - Node.js(v16 或更高版本) - npm 或 yarn 包管理器 ### 安装步骤 1. 克隆仓库: ``` git clone cd gdg-ctf-platform ``` 2. 安装依赖: ``` npm install ``` 3. 设置环境变量: 使用你的 Supabase 凭证创建一个 `.env` 文件: ``` VITE_SUPABASE_URL=your_supabase_url VITE_SUPABASE_ANON_KEY=your_supabase_anon_key ``` 4. 启动开发服务器: ``` npm run dev ``` 应用程序将可通过 `http://localhost:8080` 访问 ### 生产环境构建 ### 生产环境前置条件 - Node.js 18+ - 所有环境变量已配置 - Supabase 项目已设置适当的 RLS 策略 ### 构建命令 ``` # 安装依赖 npm install # Build for production npm run build # 在本地预览 production build npm run preview ``` 构建后的文件将位于 `dist` 目录中。 ### 生产环境部署 1. 在你的托管平台中设置环境变量 2. 构建项目:`npm run build` 3. 将 `dist` 文件夹内容部署到你的 Web 服务器 4. 配置你的 Web 服务器为所有路由提供 `index.html` 服务(SPA 路由) 5. 确保已启用 HTTPS 6. 在生产环境中测试所有功能 ### 托管建议 - **Vercel**:零配置部署,自动 HTTPS - **Netlify**:轻松部署,支持表单处理和重定向 - **AWS S3 + CloudFront**:可扩展的静态托管 - **Firebase Hosting**:Google 提供的带 CDN 的托管服务 ### 包含的性能优化 - ✅ 代码分割和懒加载 - ✅ 优化的包体积 - ✅ 图片优化就绪 - ✅ 字体预加载 - ✅ CSS 清理 - ✅ Gzip 压缩就绪 - ✅ 用于缓存的 Service worker - ✅ 用于移动端安装的 PWA manifest ### 响应式设计特性 - ✅ 移动优先的响应式设计 - ✅ 触控友好的界面 - ✅ 针对所有设备尺寸优化(320px 至 2560px+) - ✅ 带有移动端卡片布局的响应式表格 - ✅ 带有汉堡菜单的移动端导航 - ✅ 无障碍设计模式 ## 项目结构 ``` src/ ├── components/ # Reusable UI components ├── hooks/ # Custom React hooks ├── integrations/ # External service integrations ├── lib/ # Utility functions ├── pages/ # Main application pages └── types/ # TypeScript type definitions ``` ## 数据库结构 应用程序使用 Supabase,包含以下主要数据表: - `profiles` - 用户信息和角色 - `challenges` - 编程挑战定义 - `challenge_progress` - 用户在挑战中的进度 - `user_summary` - 汇总的用户统计数据 - `certificates` - 证书管理 - `event_settings` - 全局活动配置 ## 贡献指南 1. Fork 本仓库 2. 创建一个功能分支 3. 进行你的更改 4. 彻底测试 5. 提交 Pull Request ## 许可证 本项目采用 MIT 许可证授权。
标签:CTF平台, Google Developers Group, PostgreSQL, React, Shadcn/ui, Supabase, Syscall, Syscalls, Tailwind CSS, TypeScript, Vite, Web开发, 夺旗赛, 安全插件, 安全教育, 实时排行榜, 活动管理, 测试用例, 漏洞修复, 竞赛系统, 管理员面板, 网络安全, 网络安全培训, 自动化攻击, 自动化攻击, 认证证书系统, 隐私保护