Skip to content

CQMHV/Sexual-Repression-Calculator

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

性压抑指数计算器 (Sexual Repression Index Calculator)

🧠 基于科学研究的专业性心理健康评估工具

项目概述

性压抑指数计算器是一个基于多个经过验证的心理测量量表的专业评估工具,帮助用户科学地了解自己的性心理特征,促进性健康和亲密关系的发展。

✨ 核心特性

  • 🔬 科学可靠: 基于SIS/SES、Mosher性内疚、KISS-9、SOS等国际认可量表
  • 双版本支持: 快测版(39题,8-15分钟) + 完整版(117题,25-40分钟)
  • 📊 专业分析: 四维度分析 + SRI指数(0-100) + 个性化建议
  • 🔒 隐私保护: 100%本地数据处理,无服务器传输
  • 📱 现代化UI: 响应式设计,支持所有设备
  • 💾 数据管理: 历史记录、数据导出、自动保存
  • 🔗 社交分享: 多平台分享、智能文案、二维码生成

🚀 快速开始

环境要求

  • Node.js >= 22.0.0
  • 现代浏览器支持

安装和运行

# 克隆项目
git clone [project-url]
cd Sexual-Repression-Calculator

# 安装依赖
npm install

# 启动开发服务器
npm run dev

# 构建生产版本
npm run build

# 启动生产服务器
npm start

使用 Docker 运行

docker run -p 8000:8000 appe233/sexual-repression-calculator

访问应用

☁️ Cloudflare Pages 部署

该项目已针对 Cloudflare Pages 进行优化,可以轻松部署。

部署配置

  • 构建命令: npm run cf:deploy
  • 输出目录: dist

部署步骤

  1. 将代码推送到 GitHub 仓库
  2. 在 Cloudflare Dashboard 中创建 Pages 应用
  3. 连接 GitHub 仓库
  4. 配置构建设置:
    • 构建命令: npm run cf:deploy
    • 输出目录: dist
  5. 点击部署

注意事项

  • 此应用是纯静态的 React 应用,所有数据处理都在客户端进行
  • 不需要服务器端 API,所有功能都可以在浏览器中完成
  • 应用使用 localStorage 存储用户数据,数据不会上传到服务器
  • 使用 --legacy-peer-deps 参数解决依赖冲突问题

📋 功能说明

评估版本

🏃‍♂️ 快测版 (推荐)

  • 时长: 8-15分钟
  • 题目: 39题
  • 量表: SIS/SES-SF(14) + Mosher性内疚(10) + KISS-9(9) + SOS筛查(5)
  • 适用: 初次使用、快速了解

🎯 完整版

  • 时长: 25-40分钟
  • 题目: 117题
  • 量表: 完整版SIS/SES(45) + 完整Mosher(28) + KISS-9(9) + 完整SOS(21) + BSAS(23)
  • 适用: 深入分析、专业咨询

核心算法

SRI指数计算

SRI = Σ(标准化维度分数) → 0-100映射
四维度: SOS反向 + 性内疚 + 性羞耻 + SIS优势

等级划分

  • 很低 (0-20): 较少压抑
  • 偏低 (20-40): 轻度压抑
  • 中等 (40-60): 中度压抑
  • 偏高 (60-80): 较高压抑
  • 很高 (80-100): 高度压抑

🏗️ 技术架构

前端技术栈

  • 框架: React 19 + TypeScript
  • 路由: React Router v7
  • 样式: Tailwind CSS + shadcn/ui
  • 状态管理: React Query + React Hooks
  • 图表: Recharts
  • 表单: React Hook Form + Zod
  • 图标: Lucide React

后端技术栈

  • 运行时: Deno Edge Function
  • 框架: Hono.js + zValidator
  • 数据验证: Zod
  • 构建工具: Rsbuild

数据架构

用户数据流:
知情同意 → 人口学信息 → 问卷评估 → 结果计算 → 本地存储
                                    ↓
                        历史记录 ← 数据导出

📁 项目结构

src/
├── components/          # React组件
│   ├── assessment/      # 评估相关组件
│   ├── common/         # 通用组件
│   └── ui/             # shadcn/ui组件
├── pages/              # 页面组件
├── lib/                # 工具库
│   ├── scales/         # 量表定义
│   ├── calculator/     # 计算引擎
│   └── storage/        # 存储管理
├── types/              # TypeScript类型
├── server/             # 服务端代码
└── styles/             # 样式文件

🔒 隐私保护

数据安全承诺

  • 本地处理: 所有数据在客户端处理,不上传服务器
  • 匿名化: 导出数据完全匿名化处理
  • 用户控制: 用户拥有完全的数据控制权
  • 安全清理: 提供安全的数据删除功能
  • 透明度: 开源代码,完全透明

数据存储

  • 位置: 浏览器 localStorage
  • 内容: 评估回答、结果分析、人口学信息
  • 加密: 客户端存储,无需加密传输
  • 清理: 用户可随时完全删除

📊 科学依据

量表来源

  1. SIS/SES: Janssen等人的双控制模型量表
  2. Mosher性内疚: 经典性内疚测量工具
  3. KISS-9: Kyle等人的性羞耻量表
  4. SOS: Fisher等人的性观感调查
  5. BSAS: Hendrick等人的性态度量表

信效度

  • 所有量表均经过严格的心理测量学验证
  • 具有良好的内部一致性和重测信度
  • 在多个文化背景下得到验证

🛠️ 开发指南

代码风格

  • TypeScript严格模式
  • ESLint + Prettier格式化
  • 组件化设计原则
  • 函数式编程优先

贡献指南

  1. Fork项目
  2. 创建特性分支
  3. 提交更改
  4. 发起Pull Request

测试

# 类型检查
npm run type-check

# 代码检查
npm run lint

# 构建测试
npm run build

📖 使用指南

开始评估

  1. 访问主页选择评估版本
  2. 仔细阅读知情同意书
  3. 填写基本人口学信息
  4. 按照指引完成问卷
  5. 查看详细结果分析

结果解读

  • SRI指数: 综合性压抑程度(0-100)
  • 四维度分析: 具体问题领域识别
  • 个性化建议: 基于结果的改善建议
  • 非诊断性: 仅供自我了解,不替代专业诊断

⚠️ 重要声明

  • 本工具仅供教育和自我了解使用
  • 不能替代专业心理健康服务
  • 如有严重心理健康问题,请寻求专业帮助
  • 评估结果不构成医学诊断

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

🤝 支持

如果您觉得这个项目有帮助,请给我们一个 ⭐️


性压抑指数计算器 - 让科学研究服务于个人成长和性健康发展

About

Sexual-Repression-Calculator

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 98.9%
  • Other 1.1%