DevForge

PROJECT INFO

StageIdea
Prioritymedium
CreatedMar 22
UpdatedMar 22

ACTIVITY TREND

Commits per week (8 wk)

LINKS

GitHub RepositoryWebsiteDocs

About This Project

An AI-powered medical diagnostic assistant that analyzes patient data, assesses symptoms, and generates treatment recommendations. Built with a React frontend and Python AI backend, it processes medical records, lab results, and patient histories to provide clinical decision support. Designed for healthcare professionals to accelerate diagnosis workflows while maintaining evidence-based medical standards.

README

医美 AI SaaS 平台 - API 后端

基于 Hono + TypeScript + Prisma 的医美 SaaS 平台 API 服务。

技术栈

  • 框架: Hono (轻量高性能 Web 框架)
  • 语言: TypeScript
  • ORM: Prisma
  • 数据库: PostgreSQL
  • 认证: JWT + API Key
  • 验证: Zod

快速开始

1. 环境要求

  • Node.js 20+
  • PostgreSQL 16+
  • npm 或 pnpm

2. 安装依赖

npm install

3. 配置环境变量

复制 .env.example.env 并修改配置:

cp .env.example .env

主要配置项:

DATABASE_URL="postgresql://postgres:password@localhost:5432/med_ai?schema=public"
JWT_SECRET="your-super-secret-jwt-key"
PORT=3000

4. 初始化数据库

# 生成 Prisma Client
npm run db:generate

# 同步数据库结构
npm run db:push

# 初始化种子数据
npm run db:seed

5. 启动开发服务

npm run dev

服务启动后访问: http://localhost:3000

演示账号

项目结构

src/
├── index.ts              # 入口文件
├── app.ts                # Hono 应用配置
├── core/                 # 核心基础设施
│   ├── middleware/       # 中间件
│   │   ├── auth.ts       # JWT + API Key 认证
│   │   ├── tenant.ts     # 多租户隔离
│   │   ├── validator.ts  # 请求验证工具
│   │   └── error.ts      # 错误处理
│   ├── response.ts       # 统一响应格式
│   ├── errors.ts         # 错误类定义
│   ├── context.ts        # Context 类型
│   └── db.ts             # Prisma Client
│
└── modules/              # 业务模块
    ├── auth/             # 认证模块
    ├── tenant/           # 租户管理 (平台级)
    ├── customer/         # 客户管理
    ├── project/          # 项目管理
    ├── appointment/      # 预约管理
    └── order/            # 订单管理

API 概览

认证接口 /api/auth

方法路径说明
POST/login账号密码登录
POST/refresh刷新 Token
POST/logout登出
GET/me获取当前用户
PATCH/me更新当前用户
GET/me/permissions获取权限列表
POST/password/change修改密码
GET/sessions获取会话列表
DELETE/sessions/:id踢出会话

客户管理 /api/customers

方法路径说明
GET/获取客户列表
POST/创建客户
GET/:id获取客户详情
PATCH/:id更新客户
DELETE/:id删除客户
POST/:id/assign分配客户
POST/batch/assign批量分配
GET/:id/appointments获取客户预约
GET/:id/orders获取客户订单

项目管理 /api/projects

方法路径说明
GET/获取项目列表
POST/创建项目
GET/categories获取分类
GET/categories/tree获取分类树
GET/:id获取项目详情
PATCH/:id更新项目
DELETE/:id删除项目
PATCH/:id/status更新状态
POST/:id/copy复制项目

预约管理 /api/appointments

方法路径说明
GET/获取预约列表
POST/创建预约
GET/today获取今日预约
GET/calendar获取日历数据
GET/:id获取预约详情
PATCH/:id更新预约
POST/:id/confirm确认预约
POST/:id/cancel取消预约
POST/:id/reschedule改约
POST/:id/checkin签到
POST/:id/complete完成
POST/:id/noshow标记爽约

订单管理 /api/orders

方法路径说明
GET/获取订单列表
POST/创建订单
GET/:id获取订单详情
PATCH/:id更新订单
POST/:id/pay支付订单
POST/:id/cancel取消订单
POST/:id/complete完成订单
GET/:id/items获取订单明细
GET/:id/payments获取支付记录

租户管理 /api/platform/tenants (平台管理员)

方法路径说明
GET/获取租户列表
POST/创建租户
GET/:id获取租户详情
PATCH/:id更新租户
DELETE/:id删除租户
POST/:id/suspend停用租户
POST/:id/activate启用租户
GET/:id/stats获取租户统计

响应格式

成功响应

{
  "code": 0,
  "message": "success",
  "data": { ... },
  "timestamp": 1705747200000
}

分页响应

{
  "code": 0,
  "data": {
    "list": [...],
    "pagination": {
      "page": 1,
      "pageSize": 20,
      "total": 100,
      "totalPages": 5
    }
  },
  "timestamp": 1705747200000
}

错误响应

{
  "code": 400,
  "message": "请求参数错误",
  "errors": [
    { "field": "phone", "message": "手机号格式不正确" }
  ],
  "timestamp": 1705747200000
}

错误码

错误码说明
0成功
400请求参数错误
401未认证
403无权限
404资源不存在
409资源冲突
422业务逻辑错误
429请求过于频繁
500服务器错误

开发脚本

npm run dev          # 开发模式 (热重载)
npm run build        # 构建
npm run start        # 生产模式启动
npm run db:generate  # 生成 Prisma Client
npm run db:push      # 同步数据库结构
npm run db:migrate   # 数据库迁移
npm run db:studio    # Prisma Studio
npm run db:seed      # 初始化种子数据

文档

License

MIT

Leave Feedback

STATS

Commits108
Open Issues2
Progress0%

ACTIVITY

01Feb 23Feb 28Mar 5Mar 10Mar 15Mar 20OpenedResolved

RELEASE

Latest: idea

Mar 22

LABELS

Idea

RESOURCES

GitHub
Docs (coming soon)

CONTRIBUTORS

1 contributor