Sai-pavan-05/War-Room-Dashboard

GitHub: Sai-pavan-05/War-Room-Dashboard

基于 Next.js 和 Supabase 构建的实时事件响应作战室仪表板,提供团队在关键系统故障期间协同所需的实时聊天、任务同步和在线状态跟踪功能。

Stars: 0 | Forks: 0

# 🚨 Serverless 实时作战室仪表板 这是一个为事件响应、高风险项目协调和实时团队协作而构建的实时交互式仪表板。本应用采用现代的 serverless 架构,确保在所有已连接的客户端之间实现即时状态同步,且无需承担管理自定义 WebSocket 服务器的开销。 ## ✨ 核心功能 * **实时同步:** 由 Supabase Realtime 提供支持,任何数据库更改(任务、聊天消息、事件状态)都会立即广播给所有已连接的客户端。 * **Edge 就绪渲染:** 利用 Next.js App Router 和 Server Components 实现近乎即时的初始页面加载和零布局偏移。 * **安全的多租户:** 集成 Supabase Auth 和 PostgreSQL 行级安全性 (RLS),以确保用户只能访问其有权查看的事件。 * **现代 UI/UX:** 使用 Tailwind CSS 进行样式设计并添加动画效果,提供时尚、响应迅速且易于访问的用户体验。 ## 🛠️ 技术栈 * **框架:** [Next.js](https://nextjs.org/) (React) * **语言:** [TypeScript](https://www.typescriptlang.org/) * **数据库与身份验证:** [Supabase](https://supabase.com/) (PostgreSQL) * **样式:** [Tailwind CSS](https://tailwindcss.com/) * **图标:** [Lucide React](https://lucide.dev/) ## 🚀 快速开始 ### 前置条件 * Node.js 18.17 或更高版本 * Supabase 账号和项目 ### 1. 克隆仓库 ``` git clone [https://github.com/your-username/war-room-dashboard.git](https://github.com/your-username/war-room-dashboard.git) cd war-room-dashboard ``` ### 2. 安装依赖 ``` npm install # 或 yarn install # 或 pnpm install ``` ### 3. 设置环境变量 在项目的根目录下创建一个 `.env.local` 文件,并添加您的 Supabase 凭证: ``` NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key ``` ### 4. 数据库设置 (Supabase) 在您的 Supabase SQL 编辑器中运行以下 SQL 命令以建立 schema: ``` -- Create Incidents Table CREATE TABLE incidents ( id UUID DEFAULT gen_random_uuid() PRIMARY KEY, title TEXT NOT NULL, status TEXT DEFAULT 'active', severity TEXT DEFAULT 'medium', created_at TIMESTAMP WITH TIME ZONE DEFAULT timezone('utc'::text, now()) NOT NULL ); -- Create Tasks Table CREATE TABLE tasks ( id UUID DEFAULT gen_random_uuid() PRIMARY KEY, incident_id UUID REFERENCES incidents(id) ON DELETE CASCADE, title TEXT NOT NULL, is_completed BOOLEAN DEFAULT false, created_at TIMESTAMP WITH TIME ZONE DEFAULT timezone('utc'::text, now()) NOT NULL ); -- Create Messages Table CREATE TABLE messages ( id UUID DEFAULT gen_random_uuid() PRIMARY KEY, incident_id UUID REFERENCES incidents(id) ON DELETE CASCADE, user_id UUID REFERENCES auth.users(id), content TEXT NOT NULL, created_at TIMESTAMP WITH TIME ZONE DEFAULT timezone('utc'::text, now()) NOT NULL ); ``` *注意:请确保在您的 Supabase 仪表板设置中为 `incidents`、`tasks` 和 `messages` 表启用 Realtime(Insert、Update、Delete)。* ### 5. 运行开发服务器 ``` npm run dev # 或 yarn dev ``` 使用浏览器打开 [https://war-room-dashboard-fv2cmnx4k-devprs.vercel.app/login](https://war-room-dashboard-fv2cmnx4k-devprs.vercel.app/login) 查看结果。 ## 📂 项目结构 ``` ├── src/ │ ├── app/ # Next.js App Router (pages, layouts, globals) │ │ ├── dashboard/ # Protected dashboard routes │ │ ├── login/ # Authentication pages │ │ └── ... │ ├── lib/ # Utility functions and configurations │ │ └── supabase.ts # Supabase client initialization │ └── proxy.ts # Proxy configurations ├── public/ # Static assets (SVGs, icons) ├── package.json # Project dependencies and scripts ├── tailwind.config.ts # Tailwind CSS configuration (if applicable) └── tsconfig.json # TypeScript configuration ``` ## 🤝 贡献 欢迎提交 Pull request。对于重大更改,请先 open 一个 issue,以便讨论您想要更改的内容。 ## 📄 许可证 本项目基于 MIT License 授权。
标签:Supabase, 全栈框架, 团队协作, 实时通信, 测试用例, 自动化攻击, 运维监控