Skip to content

lyangfan/MBTI-Recorder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MBTI Vibe

一个功能丰富的 MBTI (Myers-Briggs) 人格类型管理应用,支持好友管理、兼容性分析、地理分布可视化等功能。

MBTI Vibe Vite Tailwind CSS Recharts

✨ 功能特性

核心功能

  • 好友管理: 添加、编辑、删除好友信息
  • MBTI 分类: 支持 16 种 MBTI 人格类型,每种类型配备专属 SVG 头像
  • 多标签分组: 每个好友可添加多个自定义分组标签
  • 智能搜索: 支持按名字、MBTI、籍贯、学历搜索
  • 多维度排序: 支持按添加时间、年龄排序,置顶好友优先显示
  • 数据备份: 支持导出/导入 JSON 数据

🎯 MBTI 兼容性分析

  • 最佳匹配: 显示各人格类型的最佳恋爱/交友匹配
  • 挑战性组合: 提醒需要注意的人格组合
  • 个性化建议: 为每种人格类型提供独特的恋爱建议
  • 智能匹配: 在好友列表中自动标记最佳匹配对象
  • 趣味标签: "智性恋天花板"、"快乐修勾寻找饲养员"等

🗺️ 地理分布地图

  • 中国地图可视化: 交互式地图展示好友地理分布
  • 省/市两级视图: 点击省份查看城市级分布
  • 实时统计: 悬停省份查看该省好友列表和 MBTI 分布
  • 热力图显示: 好友越多颜色越深

🎂 近期生日提醒

  • 智能提醒: 自动显示未来 30 天内要过生日的好友
  • 倒计时显示: 精确计算距离生日的天数
  • 年龄预测: 显示即将满多少岁
  • 特别标注: 今天/明天生日高亮显示

⭐ 好友置顶

  • 一键置顶: 可将重要好友固定在列表顶部
  • 金色标记: 置顶好友显示金色书签图标
  • 优先排序: 置顶好友始终排在最前面
  • 批量置顶: 支持同时置顶多个好友

🕸️ 关系网络图

  • MBTI 兼容性可视化: 展示好友间的 MBTI 兼容性关系
  • 交互式网络图: 节点大小和颜色表示不同 MBTI 类型
  • 智能布局: 自动优化节点位置,避免重叠

🎨 人格分组与配色

分组 MBTI 类型 主色调
🔮 分析家 INTJ, INTP, ENTJ, ENTP 紫色
🌿 外交家 INFJ, INFP, ENFJ, ENFP 绿色
🛡️ 守护者 ISTJ, ISFJ, ESTJ, ESFJ 蓝色
🎭 探险家 ISTP, ISFP, ESTP, ESFP 黄色

🚀 快速开始

环境要求

  • Node.js >= 18.0.0
  • npm >= 9.0.0

安装与运行

# 进入项目目录
cd mbti-vibe

# 安装依赖
npm install

# 启动开发服务器
npm run dev

# 构建生产版本
npm run build

# 预览生产构建
npm run preview

开发服务器默认运行在 http://localhost:5173

📁 项目结构

mbti-vibe/
├── src/
│   ├── components/
│   │   ├── UserCard.jsx              # 好友卡片组件
│   │   ├── FriendFormModal.jsx       # 添加/编辑表单
│   │   ├── GroupTabs.jsx             # 分组标签导航
│   │   ├── StatsView.jsx             # 统计图表
│   │   ├── SearchBar.jsx             # 搜索与排序
│   │   ├── DataManagement.jsx        # 数据导入导出
│   │   ├── BirthdayWidget.jsx        # 近期生日提醒
│   │   ├── MapView.jsx               # 地理分布地图
│   │   └── RelationshipGraph.jsx     # 关系网络图
│   ├── constants.js                  # 常量定义(MBTI 映射等)
│   ├── App.jsx                       # 主应用组件
│   ├── main.jsx                      # 应用入口
│   └── index.css                     # 全局样式
├── index.html
├── package.json
├── vite.config.js
├── tailwind.config.js
└── postcss.config.js

💾 数据结构

好友对象结构:

{
  id: string;              // 唯一标识
  name: string;            // 姓名
  gender: '男' | '女';     // 性别
  mbti: string;            // MBTI 类型(如 'INTJ')
  birthDate: string;       // 出生日期(ISO 格式)
  age: number;             // 年龄(自动计算)
  nationality: string;     // 国籍
  province: string;        // 省份
  city: string;            // 城市
  education: string;       // 学历
  groups: string[];        // 分组标签数组
  tags: string[];          // MBTI 标签(自动生成)
  createdAt: number;       // 创建时间戳
  isPinned: boolean;       // 是否置顶
}

🎯 使用指南

添加好友

  1. 点击右下角悬浮 "+" 按钮
  2. 填写基本信息(姓名、性别、出生日期等)
  3. 点击 MBTI 文字按钮选择人格类型
  4. 可选:添加分组标签
  5. 点击 "添加" 保存

查看 MBTI 详情

  • 点击好友卡片上的 MBTI 类型(如 "建筑师")即可查看详细人格说明

兼容性分析

  • 点击好友卡片上的粉色心形按钮
  • 查看该人格的最佳匹配和挑战性组合
  • 在当前好友列表中自动标记匹配对象

地图分布

  • 点击 "🗺️ 地图分布" 切换到地图视图
  • 悬停省份查看该省好友列表
  • 点击省份进入城市级视图
  • 点击 "返回全国" 回到省级地图

好友置顶

  • 点击好友卡片右下角的书签图标
  • 置顶的好友会自动排在列表最前面
  • 支持同时置顶多个好友

数据备份

  • 点击右上角 "导出数据" 按钮导出 JSON 文件
  • 点击 "导入数据" 按钮恢复之前的备份

🔧 技术栈

  • React 19.2.0: 函数式组件 + Hooks
  • Vite 7.2.4: 构建工具与开发服务器
  • Tailwind CSS 4.1.18: 实用优先的 CSS 框架
  • Recharts 3.7.0: 数据可视化图表库
  • ECharts: 交互式地图可视化
  • Lucide React: 现代化图标库
  • ESLint: 代码质量检查

📝 开发说明

代码风格

  • 使用函数式组件(无类组件)
  • React Hooks 管理状态和副作用
  • useMemo 优化计算性能
  • 中文 UI 和注释

状态管理

  • 采用集中式状态管理,所有状态在 App.jsx 中管理
  • 使用 localStorage 自动持久化数据
  • 无全局状态管理库,保持轻量

数据流

App.jsx (单一数据源)
  ├── GroupTabs (分组过滤)
  ├── SearchBar (搜索与排序)
  ├── StatsView (统计展示)
  ├── UserCard[] (好友卡片)
  └── FriendFormModal (添加/编辑)

🎨 MBTI 人格系统

16 种人格类型

分析家 (🔮 紫色)

  • INTJ - 建筑师:战略性、独立、预言家
  • INTP - 逻辑学家:好奇、分析、拖延症晚期
  • ENTJ - 指挥官:果断、领导、效率机器
  • ENTP - 辩论家:创新、挑战、抬杠冠军

外交家 (🌿 绿色)

  • INFJ - 提倡者:理想主义、深刻、DOOR SLAM
  • INFP - 调停者:和谐、创意、精神内耗
  • ENFJ - 主人公:魅力、利他、读心术
  • ENFP - 竞选者:热情、自由、人类金毛

守护者 (🛡️ 蓝色)

  • ISTJ - 物流师:负责、务实、Excel 狂魔
  • ISFJ - 守卫者:支持、可靠、讨好型人格
  • ESTJ - 总经理:高效、组织、KPI 狂魔
  • ESFJ - 执政官:关怀、合作、八卦中心

探险家 (🎭 黄色)

  • ISTP - 鉴赏家:灵活、动手、拆家办主任
  • ISFP - 探险家:艺术、敏感、颜值即正义
  • ESTP - 企业家:活力、冒险、反矫情达人
  • ESFP - 表演者:娱乐、自发、C 位癌

📸 功能截图

好友卡片列表

  • 彩色渐变卡片设计
  • MBTI 类型头像和颜色分组
  • 分组标签显示
  • 兼容性、置顶、编辑、删除按钮

兼容性分析

  • 最佳匹配类型展示
  • 个性化恋爱建议
  • 好友列表自动匹配

地理分布地图

  • 中国地图热力图
  • 省/市两级视图
  • 悬停显示好友详情
  • 实时统计信息

近期生日提醒

  • 生日倒计时
  • 蛋糕装饰
  • 今天/明天特别提示

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 许可证

MIT License

👤 作者

Created with ❤️


享受探索人格类型的乐趣!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages