Pfans 是一个专为无畏契约(Valorant)玩家打造的粉丝社区平台。在这里,你可以分享精彩的游戏录像、截图,参与比赛复盘讨论,以及收集和分享游戏中的“精彩语录”。
-
视频与图片分享
- 支持上传游戏录像和精彩截图。
- 视频采用 Supabase 对象存储,支持在线播放。
- 视频标签分类(排位赛、普通模式、死斗模式等)。
- 视频时间轴展示 (
/videos)。
-
精彩语录 (P言P语)
- 收录游戏中的经典语录和黑话。
- 支持用户贡献新词。
- 视频上传时可关联相关语录标签。
-
比赛复盘
- 专业的比赛复盘工具 (
/match-review)。 - 战术板与即时讨论。
- 专业的比赛复盘工具 (
-
用户系统
- 完整的注册/登录流程。
- 个人主页展示 (
/profile)。 - 视频点赞、评论互动。
-
管理后台
- 管理员数据看板 (
/admin)。 - 内容管理与审核。
- 管理员数据看板 (
-
移动端适配
- 响应式设计,支持手机端访问。
- 前端框架: React + Vite
- UI 库: Tailwind CSS + Lucide React (图标)
- 后端/BaaS: Supabase
- Auth: 用户认证
- Database: PostgreSQL 数据库
- Storage: 视频与图片对象存储
- 进程管理: PM2 (生产环境后台运行)
git clone https://gitee.com/pcxtu/pfans.git
cd pfansnpm install在项目根目录创建 .env 文件,填入你的 Supabase 配置:
VITE_SUPABASE_URL=你的_SUPABASE_URL
VITE_SUPABASE_ANON_KEY=你的_SUPABASE_ANON_KEY同时启动前端和后端服务(开发模式):
npm run dev- 前端地址:
http://localhost:5173 - 后端API:
http://localhost:3001
npm run build项目包含自动化脚本,可使用 PM2 在后台运行服务:
# 赋予脚本执行权限
chmod +x start.sh stop.sh
# 启动服务
./start.sh
# 停止服务
./stop.shpm2 list # 查看进程列表
pm2 logs # 查看运行日志pfans/
├── api/ # 后端 API 服务 (Express)
├── src/
│ ├── components/ # 公共组件
│ ├── context/ # React Context (如 AuthContext)
│ ├── lib/ # 工具库 (Supabase 客户端等)
│ ├── pages/ # 页面组件
│ ├── types/ # TypeScript 类型定义
│ └── App.tsx # 路由配置
├── public/ # 静态资源
├── supabase/ # Supabase 迁移文件
├── ecosystem.config.cjs # PM2 配置文件
└── ...
欢迎提交 Issue 和 Pull Request 来改进这个项目!