Files
tangfamily/README.md
2026-06-24 22:13:01 +08:00

141 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 唐家族谱网站
基于 Cloudflare Workers 的全栈家族族谱网站,使用树状图展示家族成员关系。
## 功能特性
- 密码保护访问(访问密码:`tangfamily`
- 响应式设计,支持电脑端和手机端
- 树状图展示家族成员信息
- 管理后台用于添加、编辑、删除成员(管理密码:`shumengya5201314`
- 数据存储在 Cloudflare KV
## 项目结构
```
tangfamily/
├── src/
│ ├── index.ts # Worker 主文件,包含 API 路由
│ └── init-data.js # 初始化数据脚本
├── public/
│ ├── index.html # 访客登录页面
│ ├── tree.html # 族谱树展示页面
│ ├── admin-login.html # 管理员登录页面
│ └── admin.html # 管理后台页面
├── wrangler.jsonc # Cloudflare Workers 配置
└── package.json
```
## 本地开发
1. 安装依赖:
```bash
npm install
```
2. 启动开发服务器:
```bash
npm run dev
```
3. 访问 http://localhost:8787/
## 初始化数据
项目已包含初始家族成员数据(唐治明、舒邦莲、唐永洪、唐伟)。
### 方式一:通过管理后台添加
1. 访问 http://localhost:8787/admin-login.html
2. 输入管理员密码:`shumengya5201314`
3. 在管理后台逐个添加成员
### 方式二:查看初始化数据
运行以下命令查看初始化数据:
```bash
node src/init-data.js
```
## 访问说明
### 访客访问
1. 访问首页
2. 输入密码:`tangfamily`
3. 查看族谱树
### 管理员访问
1. 访问 `/admin-login.html`
2. 输入管理员密码:`shumengya5201314`
3. 在管理后台进行成员管理
## 部署到 Cloudflare
1. 登录 Cloudflare 账户:
```bash
npx wrangler login
```
2. 创建 KV 命名空间:
```bash
npx wrangler kv:namespace create "FAMILY_DATA"
```
3. 将输出的 ID 更新到 `wrangler.jsonc` 中的 `kv_namespaces.id` 字段
4. 部署 Worker
```bash
npm run deploy
```
5. 访问你的 Workers 域名即可使用
## 数据结构
每个家族成员包含以下信息:
- `id`: 唯一标识符
- `name`: 姓名
- `birthYear`: 出生年份
- `gender`: 性别(男/女)
- `fatherId`: 父亲 ID可选
- `motherId`: 母亲 ID可选
## API 接口
- `POST /api/login` - 登录(访客或管理员)
- `GET /api/members` - 获取所有成员(需要认证)
- `POST /api/members` - 添加/更新成员(需要管理员权限)
- `POST /api/members/delete` - 删除成员(需要管理员权限)
## 技术栈
- Cloudflare Workers - 边缘计算平台
- Cloudflare KV - 键值存储
- TypeScript - 类型安全
- 原生 HTML/CSS/JavaScript - 前端页面
## 安全说明
- 所有 API 接口都需要身份验证
- Session Token 存储在 KV 中,有效期 24 小时
- 管理操作需要管理员权限验证
- 建议在生产环境中修改默认密码
## 自定义
### 修改密码
编辑 `src/index.ts` 中的常量:
```typescript
const VISITOR_PASSWORD = 'tangfamily';
const ADMIN_PASSWORD = 'shumengya5201314';
```
### 修改样式
所有样式都内联在 HTML 文件中,可直接修改 `public/*.html` 文件中的 `<style>` 标签。
## License
MIT