Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Javesun99/rectification

Repository files navigation

整改跟踪系统 (Rectification Tracking System)

本项目是一个基于 Next.js + Prisma + SQLite 的整改任务跟踪系统,旨在帮助管理员高效分发整改任务,并让各县市用户方便地查看和反馈整改情况。

🛠 技术栈

  • 框架: Next.js (App Router)
  • 语言: TypeScript
  • 数据库: SQLite (通过 Prisma ORM 管理)
  • 样式: Tailwind CSS
  • 工具: XLSX (Excel 导入导出)

🚀 快速开始 (开发环境)

1. 环境准备

确保您的本地环境已安装:

  • Node.js (推荐 v18 或更高版本)
  • npm (Node.js 安装包通常自带)

2. 安装依赖

在项目根目录下执行:

npm install

3. 数据库初始化

本项目默认使用本地 SQLite 数据库 (prisma/dev.db)。首次运行前需初始化数据库结构:

# 1. 生成 Prisma Client 代码
npx prisma generate
# 2. 将 Schema 同步到数据库文件 (自动创建 dev.db)
npx prisma db push

4. 初始化管理员账号

执行内置脚本创建一个默认的管理员账号:

  • 用户名: admin
  • 密码: admin
node prisma/seed.js

5. 启动开发服务器

npm run dev

启动成功后,访问浏览器:http://localhost:3000


📖 使用指南

登录系统

访问 /login 页面。

  • 管理员: 使用 admin/admin 登录,进入后台管理。
  • 普通用户: 使用管理员创建的账号登录,自动跳转至所属县市的任务批次列表。

管理员功能 (/admin)

  1. 批量导入: 上传 Excel 文件导入整改任务,支持自定义列映射(如指定哪一列是"县市")。
  2. 任务管理: 查看所有批次,删除误导的批次,或导出特定批次的数据。
  3. 用户管理: 创建各县市的普通用户账号(需绑定具体的县市名称,如"北京")。
  4. 数据导出: 支持导出全部数据或按批次导出 Excel。

普通用户功能

  1. 批次选择: 登录后查看相关的任务批次及完成进度。
  2. 任务反馈: 点击进入任务列表,查看具体问题并提交整改反馈(支持文字和图片)。
  3. 数据导出: 可导出当前所属县市的任务数据。

🐳 部署指南 (推荐 Docker)

1. 准备数据目录

在服务器上创建一个目录用于存放数据库文件,防止容器重启数据丢失。

mkdir -p ./data
# 确保该目录有写权限
chmod 777 ./data

2. 启动容器

本项目已发布到 GitHub Container Registry,直接运行即可(支持 x86 和 arm64):

docker run -d \
 --name rectification-app \
 --restart always \
 -p 3000:3000 \
 -v $(pwd)/data:/app/data \
 -e DATABASE_URL="file:/app/data/dev.db" \
 ghcr.io/javesun99/rectification:latest

说明:

  • 容器启动时会自动检测数据库是否存在。如果不存在,会自动创建表结构并初始化默认管理员账号 (admin/admin)。
  • 请勿修改 /app/data 容器内路径,这是数据库的默认存储位置。

3. 访问系统

访问 http://服务器IP:3000 即可。

4. 关于 HTTPS 安全配置

新代码兼容了"生产环境跑在内网 IP(无 SSL)"的常见情况。

  • 默认情况:允许 HTTP 访问(secure Cookie 策略为 false)。
  • 启用 HTTPS:如果您配置了域名和 HTTPS(反向代理),为了恢复最高安全性,请在启动命令中添加 -e USE_HTTPS=true
    docker run -d ... -e USE_HTTPS=true ...

📦 部署指南 (独立运行包 Standalone)

如果您不想使用 Docker,可以直接下载我们构建好的独立运行包(包含 Node.js 运行时以外的所有依赖,支持 Linux x86/ARM64 和 macOS)。

1. 下载运行包

前往 GitHub 仓库的 Actions 页面,找到最新的构建记录,下载 standalone-package Artifact。

2. 解压并运行

# 解压
tar -xzf rectification-system-standalone.tar.gz
cd app
# 启动 (使用内置脚本,自动处理数据库初始化)
./start.sh

前置要求:

  • 服务器需安装 Node.js 18 或更高版本。
  • 确保端口 3000 未被占用。

💻 开发与源码部署

1. 环境准备

  • Node.js 18+
  • npm

2. 安装与启动

# 安装依赖
npm install
# 初始化数据库
npx prisma generate
npx prisma db push
node prisma/seed.js
# 开发模式启动
npm run dev
# 生产模式编译与启动
npm run build
npm start

🛠 常用维护命令

  • 查看/管理数据库:

    npx prisma studio

    这会打开一个网页版数据库管理器,方便直接查看和修改数据。

  • Schema 变更后更新: 如果修改了 prisma/schema.prisma 文件,必须执行:

    npx prisma generate

    并重启开发服务器。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /