八字命理计算系统

八字命理计算系统

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 组件骨架代码(或您选择的前端框架)。

LICENSED UNDER CC BY-NC-SA 4.0