github仓库链接:https://github.com/theisness/destiny-analysis
中华文化博大精深,国学中命理学就是其中的一个应用。但是四柱八字的计算较为繁杂,为了简化计算,推出八字命理系统,方便大家记录、研究八字,且带有社区功能,方便大家讨论。
登录页

命理详情页

八字记录页 
提示词如下:
项目名称: 八字命理排盘与用户管理系统
项目目标:
创建一个现代化的、前后端分离的 Web 应用程序,核心功能是根据用户输入的出生日期时间计算并显示八字命盘。系统需支持用户注册、登录,并能保存已登录用户的八字信息。
技术栈要求:
后端 (Backend): Node.js + Express
数据库 (Database): MongoDB
前端 (Frontend): React
认证 (Authentication): JWT (JSON Web Tokens)
部署环境: Docker/Docker Compose
核心功能模块:
1. 后端 (Node.js/Express/MongoDB)
A. 用户管理与认证 (Auth):
路由:
/api/auth/register (POST): 用户注册。
/api/auth/login (POST): 用户登录,成功后返回 JWT。
/api/auth/current (GET): 验证 JWT 并返回当前登录用户信息。
数据模型 (User Model): 存储 username, email, password (需加密存储,如使用 bcrypt)。
B. 八字计算与存储 (Bazi):
数据模型 (Bazi Record Model): 存储与用户关联的八字记录。字段包括:userId (关联到 User), name, gender, gregorianDate (公历日期时间), lunarDate (农历日期时间,排盘所需), baziResult (存储排盘结果,如年柱、月柱等)。
核心算法:
实现公历日期时间转换为农历日期时间的算法。
实现根据农历日期时间计算八字四柱(年柱、月柱、日柱、时柱,包含天干地支)。
排盘结果应包含: 大运、流年、五行旺衰、神煞等(简化版可只排四柱和藏干)。
路由 (需 JWT 保护):
/api/bazi (POST): 根据输入信息计算八字并保存到数据库。
/api/bazi (GET): 获取当前用户保存的所有八字记录列表。
/api/bazi/:id (GET): 获取某条八字记录的详细排盘结果。
/api/bazi/community (get): 获取保存到社区的所有八字。
C. 目录结构:
/backend
/config
/controllers
/middleware
/auth.js (JWT 验证)
/models
/User.js
/BaziRecord.js
/routes
/auth.js
/bazi.js
/utils
/lunar-converter.js (农历转换工具)
/bazi-calculator.js (八字计算核心逻辑)
server.js
2. 前端 (React/Vue/Angular)
A. 界面设计:
登录/注册页: 简洁的表单,用于用户认证。
用户中心/记录列表页: 显示已保存的八字记录,可进行“新增”或“查看详情”操作。
八字输入与计算页:
输入表单:可选公历/农历/四柱
选公历则输入姓名、性别、公历出生日期(年、月、日、时、分)。
选农历则输入姓名、性别、农历出生日期(年、月、日、时、分)
选四柱则出现选择年月日时八字选择弹窗
三种输入方式都可选择“添加到讨论社区”
提交后调用后端 API 进行计算和保存。
八字详情展示页:
清晰展示计算出的八字结果,包括姓名、型别、时间、四柱、藏干、五行、大运、神煞、起运时间、流年、流月、五行金木水火土用五种颜色显示
社区页:
保存添加到讨论社区的所有八字,以姓名的拼音字母进行排序,且右侧显示A-Z的侧边栏可快速滑动到列表对应位置,且顶部有搜索框,可搜索名字
B. 交互逻辑:
使用 fetch 或 axios 与后端 API 进行通信。
实现路由管理(如 React Router)。
利用 Local Storage 或 Session Storage 存储 JWT,实现前端的持久化登录状态。
C. 目录结构:
/frontend
/public
/src
/api (API 服务封装)
/components (通用组件)
/pages
/Auth
/Dashboard
/BaziDetail
/BaziInput
/context/AuthContext (用户状态管理,如 React Context)
App.js
index.js
Cursor 期望的输出:
后端 server.js 和关键路由文件 bazi.js 的骨架代码。
后端 utils/bazi-calculator.js 中关于“公历转农历”和“农历转四柱”的关键函数结构和核心逻辑思路。
前端 Auth.js 登录/注册页面的 React 组件骨架代码(或您选择的前端框架)。