chore: connect GitLink repository history
一个零第三方依赖、本地优先的创客空间工具借还台账。它把“工具在哪、谁在用、何时归还、是否逾期”集中在一张维修台式工作板上,并为关键操作保留只读审计记录。
项目定位:适合个人工作室、校园社团、临时工坊和可信局域网内的流程演示。它不包含生产级身份认证、权限隔离或互联网部署防护,不应直接暴露到公网。
小型创客空间通常不需要一套昂贵的资产平台,却经常需要回答几个现实问题:充电钻被谁拿走了?归还期限到了吗?某次借还是谁登记的?电子表格能记录数据,但很难把“库存状态”和“借还动作”约束为一致的流程。
铆钉台账提供一个可读、可运行的最小实现,也适合作为以下内容的教学样例:
var/ledger.sqlite3
wsgiref.simple_server
sqlite3
cd maker-space-ledger .\scripts\run.ps1
cd maker-space-ledger sh scripts/run.sh
也可以直接执行:
python -m app.server
浏览器打开 http://127.0.0.1:8787。首次写入时会自动创建 var/ledger.sqlite3。
应用直接读取进程环境变量,不会自动加载 .env 文件。
.env
LEDGER_HOST
127.0.0.1
LEDGER_PORT
8787
LEDGER_DB_PATH
示例值见 .env.example。
.env.example
测试只使用标准库,测试数据写入临时目录:
python -m unittest discover -s tests -v
启动真实 HTTP 子进程并走完核心借还流程:
python scripts/smoke_test.py
覆盖范围包括:
GET
/api/health
/api/dashboard
POST
/api/tools
/api/loans/checkout
/api/loans/{id}/return
写接口只接受 Content-Type: application/json,请求体上限为 64 KiB。字段限制以 app/db.py 中的领域校验为准。
Content-Type: application/json
app/db.py
maker-space-ledger/ ├── app/ # WSGI 路由与 SQLite 数据层 ├── static/ # 无构建步骤的前端资源 ├── tests/ # unittest 数据层与 API 测试 ├── docs/architecture.md # 架构、事务与安全边界 ├── scripts/ # Windows / POSIX 启动入口 ├── CHANGELOG.md ├── CONTRIBUTING.md ├── SECURITY.md └── LICENSE
更完整的设计说明见 docs/architecture.md。
项目有参数化 SQL、输入长度/状态校验、静态路径边界检查和基础安全响应头,但没有用户身份、授权、CSRF 防护、TLS、限流或多租户隔离。默认绑定 127.0.0.1 是有意为之。
如果需要跨设备演示,应只在可信局域网短期运行,并由外部反向代理承担 TLS 和访问控制。发现漏洞请参考 SECURITY.md,不要在公开 Issue 中披露可利用细节。
欢迎改进可访问性、数据迁移、测试和文档。提交前请运行完整测试,并阅读 CONTRIBUTING.md。
本项目采用 MIT License。
基于 Python 标准库与 SQLite 的本地创客空间工具借还台账。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
铆钉台账(Maker Space Ledger)
一个零第三方依赖、本地优先的创客空间工具借还台账。它把“工具在哪、谁在用、何时归还、是否逾期”集中在一张维修台式工作板上,并为关键操作保留只读审计记录。
为什么做这个项目
小型创客空间通常不需要一套昂贵的资产平台,却经常需要回答几个现实问题:充电钻被谁拿走了?归还期限到了吗?某次借还是谁登记的?电子表格能记录数据,但很难把“库存状态”和“借还动作”约束为一致的流程。
铆钉台账提供一个可读、可运行的最小实现,也适合作为以下内容的教学样例:
功能
var/ledger.sqlite3。技术边界
wsgiref.simple_serversqlite3快速开始
Windows PowerShell
macOS / Linux
也可以直接执行:
浏览器打开 http://127.0.0.1:8787。首次写入时会自动创建
var/ledger.sqlite3。配置
应用直接读取进程环境变量,不会自动加载
.env文件。LEDGER_HOST127.0.0.1LEDGER_PORT8787LEDGER_DB_PATHvar/ledger.sqlite3示例值见
.env.example。测试
测试只使用标准库,测试数据写入临时目录:
启动真实 HTTP 子进程并走完核心借还流程:
覆盖范围包括:
API 概览
GET/api/healthGET/api/dashboardPOST/api/toolsPOST/api/loans/checkoutPOST/api/loans/{id}/return写接口只接受
Content-Type: application/json,请求体上限为 64 KiB。字段限制以app/db.py中的领域校验为准。项目结构
更完整的设计说明见 docs/architecture.md。
安全说明
项目有参数化 SQL、输入长度/状态校验、静态路径边界检查和基础安全响应头,但没有用户身份、授权、CSRF 防护、TLS、限流或多租户隔离。默认绑定
127.0.0.1是有意为之。如果需要跨设备演示,应只在可信局域网短期运行,并由外部反向代理承担 TLS 和访问控制。发现漏洞请参考 SECURITY.md,不要在公开 Issue 中披露可利用细节。
贡献
欢迎改进可访问性、数据迁移、测试和文档。提交前请运行完整测试,并阅读 CONTRIBUTING.md。
许可证
本项目采用 MIT License。