简历分析API服务

一个基于RESTful的API服务,用于管理用户、简历档案、职位列表、政策及指令,并集成外部AI服务进行简历分析。

  • by Andrei-Boghiu
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Andrei-Boghiu/nexml-playground-express-service-api

使用说明

Nexml游乐场-快递服务API

用于的RESTful API服务器 Nexml游乐场 平台。
此服务提供基于JSON的端点来管理用户、简历存档、工作列表、策略和说明。它还与外部AI服务集成以分析简历。


特性

  • 用户管理 –使用软删除支持创建、验证和管理用户。
  • 身份验证和安全 –基于JWT的身份验证,具有刷新令牌、bcrypt密码哈希和安全cookie支持。
  • 简历档案管理 –上传、组织和跟踪人工智能分析的简历。
  • 职位列表和政策 –存储和管理招聘相关数据。
  • 可配置的用户限制 –控制用户特定的配额(档案、简历、政策等)。
  • Prisma ORM与PostgreSQL –类型安全数据库层。
  • 健壮的中间件 -头盔、CORS和生产级安全限速。

技术栈

  • 运行时间: Node.js
  • 框架: 快速
  • 数据库: PostgreSQL(通过Prisma ORM)
  • 语言: TypeScript(编译为CommonJS)
  • 验证: 萨德
  • 身份验证: 带bcrypt的JSON Web令牌(JWT)
  • 环境管理: dotenv

数据库模式

定义于 ./src/prisma/schema.prisma,数据库由以下部分组成:

  • 用户 –启用软删除,具有可选的组织和访问元数据。
  • 用户限制 –为档案、简历、政策等自定义每个用户的限制。
  • Cv存档 –为每个用户分组简历。
  • 履历 –存储个人简历及其AI分析结果。
  • 职位列表 –存储职位。
  • 政策 –存储与招聘或分析相关的政策。
  • 指令 –存储自定义AI指令。

关键枚举

  • 用户角色: USER, ADMIN, DEV
  • CvState: NOT_ANALYZED, IN_PROGRESS, ANALYZED, FAILED, REJECTED
  • 资格: UNDER_QUALIFIED, QUALIFIED, OVERQUALIFIED

入门指南

1. 克隆存储库

git clone https://github.com/Andrei-Boghiu/nexml-playground-express-service-api.git
cd nexml-playground-express-service-api

2. 再进行

npm install

3. 设置环境变量

创建一个 .env 文件包含:

DATABASE_URL="postgresql://user:password@localhost:5432/playground_db"
JWT_SECRET="your-secret-key"

4. 运行数据库迁移

发展:

npm run prisma:dev

生产:

npm run prisma:prod

5. 启动开发服务器

npm run dev

构建并开始生产:

npm run build
npm start

API概述

  • 认证

    • POST /auth/login –用户登录
    • POST /auth/register –用户注册
    • POST /auth/logout –无效会话
  • 用户

    • GET /user/profile –获取当前用户配置文件
    • PATCH /user/update –更新用户详细信息
  • 简历档案

    • POST /archives –创建存档
    • GET /archives –列出用户档案
  • 履历

    • POST /cvs –上传简历以供分析
    • GET /cvs/:id –获取简历详细信息
  • 工作清单、政策、说明 –标准CRUD端点。


开发说明

  • 用途 软删除 在…上 User 通过 deletedAt.
  • Prisma架构路径是通过以下方式配置的 package.json → "prisma": { "schema": "src/prisma/schema.prisma" }.
  • 所有数据库交互都通过集中式Prisma客户端进行(src/prisma/client.ts).

参考文献

看 参考文献.md 查看图书馆及其文档的精选列表。


作者