Skip to content

Repository files navigation

Praxis

可靠、快速、易用的社会实践管理系统,让实践提交更便捷、审核更透明、管理更省心。

技术栈

  • 运行时:Node.js
  • 前端:React, shadcn/ui
  • 后端:Hono
  • 数据库:SQLite, Drizzle ORM

如何使用

安装依赖:

pnpm install

构建:

pnpm build

如果是生产环境,务必在根目录新建 config.toml

is_production = true

启动:

pnpm start

更多命令见 package.json

配置

配置写在 config.toml 中,缺失的字段自动使用默认值。所有可配置项:

字段 说明 默认值
site_name 网站名称 "Praxis"
icp_beian 页脚展示的备案信息,留空则不显示 ""
port 后端 HTTP 监听端口 3000
vite_port Vite 开发服务器端口(仅开发环境) 5173
backend_host 后端监听地址 "127.0.0.1"
frontend_host 前端开发地址(仅开发环境) "127.0.0.1"
jwt_secret JWT 签名密钥,至少 32 字符(如果泄漏,请立即更换 缺失时写入随机值
jwt_issuer JWT 签发者 "praxis"
jwt_expires_in JWT 有效期,支持 s/m/h/d 后缀 "8h"
login_max_attempts 登录连续失败锁定阈值 5
login_lockout_ms 锁定持续时间(毫秒) 900000(15 分钟)
upload_image_max_size_bytes 单张图片上传大小上限(字节) 5242880(5 MiB)
upload_webp_quality WebP 压缩质量(1–100) 76
upload_max_image_dimension 图片最长边缩放目标像素 1920
upload_webp_effort WebP 压缩力度(0–6) 5
temp_upload_ttl_ms 临时上传文件保留时间(毫秒) 1800000(30 分钟)
temp_upload_cleanup_interval_ms 临时文件清理间隔(毫秒) 5000
trust_proxy 是否信任反向代理转发地址 false
is_production 生产模式,生产环境请务必开启 false
cors_origins 允许的 CORS 域名列表 []
record_max_images 每条实践记录最多图片数 9
max_daily_records 学生每日最多提交记录数 50
overview_class_ranking_limit 概览页班级排名显示数量 30
overview_student_ranking_limit 概览页学生排名显示数量 30
generated_password_length 批量创建用户时的生成密码长度 8
initial_admin_password 首次启动自动创建的默认管理员密码 "12345678"
csv_import_max_size_bytes CSV 批量导入文件大小上限(字节) 52428800(50 MiB)
user_name_max_length 用户姓名最大长度 40
record_title_max_length 记录标题最大字数 25
task_title_max_length 任务名称最大字数 50
content_max_length 记录内容最大字数 5000
comment_max_length 审核评语最大字数 1000
location_max_length 实践地点最大字数 50
max_record_duration 实践时长最大值(小时) 24

默认账号

角色 UID 密码
管理员 1 initial_admin_password 中配置

About

可靠、快速、易用的社会实践管理系统

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages