我所在的天文爱好者协会需要一个程序来跟踪协会所有暂时借给会员的设备。
这些设备主要是望远镜、支架、双筒望远镜和用于观测和天文摄影的设备组件。
到目前为止,一直使用Excel表格进行管理,但随着会员和设备数量的增加,我们决定开发一个专用程序来简化管理和借贷流程。
首先,我们在网上搜索是否有现成的开源解决方案,但只找到了一些复杂的程序或被遗弃的项目,因此我们决定自行开发一个解决方案;由于我们已经有一个WordPress网站,我建议为这个CMS开发一个插件来实现所需功能,提议得到了接受。
这就是资产借贷管理器(ALM)的诞生,我今天早上在GitHub上发布了第一个版本。
插件描述
ALM是一个开源插件,可以安装在任何WordPress网站上,旨在足够通用,以便任何需要跟踪物品、设备和各种资源借贷的组织使用,如协会、学校、实验室等。
当然,今天发布的只是第一个版本,功能有限,但我们已经有很多想法来增强和使其更有用。
在接下来的几天里,我们将开始更深入的测试以验证其功能,然后将其投入生产并开始使用。
从功能角度来看,它很容易解释;首先定义了一些新实体,添加到WordPress的预定义实体中:
- 操作员和会员角色,
- 一个自定义内容类型:资源,
- 一系列自定义分类法:资源类型、资源状态、资源类别等。
- 资源列表视图,
- 资源详细视图,
- CMS后台的一个名为ALM的菜单,包含各种部分。
我们的想法是尝试将插件发布到WordPress官方目录中。
插件功能
资源列表对所有人可见,包括匿名用户,并提供在存档中使用自由文本过滤器或高级搜索面板进行搜索的功能。

点击搜索结果之一时,会打开设备的详细视图,其中包含多个部分,用于更好地描述其特性和执行操作。

部分数量取决于每个用户的权限,因此匿名用户只能看到信息部分的某些字段,而会员和操作员根据其角色分配的权限可以看到更多字段。
特别是会员可以:
- 在目录中进行高级搜索,
- 查看资源的完整信息,
- 请求借用设备,
- 接受或拒绝对自己拥有资源的借用请求。
而操作员除了会员的功能外,还可以:
- 管理设备:添加、修改和删除,
- 管理分类法,
- 管理插件配置,
- 查看分配历史,
- 接收平台内所有借贷的通知,
- 直接分配资源。
关于资源,目前可以有两种类型:组件或套件。其中组件是简单对象(如:双筒望远镜、书籍、画作、支架、简单望远镜等),而套件是组件的集合(通常较大的望远镜由三脚架、各种目镜、电池等组成)。程序允许管理除了借出整个套件外,还可以单独借出一个组件而不失去其作为套件一部分的属性。
系统会在用户执行某些操作后通过电子邮件发送通知:借用请求、借用批准、直接分配等。
可能的扩展
我们还没有开始测试和使用它,但已经有了新的需求和想法,未来可能开发的功能包括:
- 为资源关联二维码和条形码的功能,
- 通过扫描二维码或条形码进行会员资源的“入库”和“出库”,
- 提供REST API以实现与其他程序的互操作性,
- 在后台配置各种参数的界面,
- 管理资源在仓库中的位置,
- 管理其他状态:维修中、已弃用等。
- 在平台内管理用户之间的沟通,以便就资源的交接达成一致。
依赖和开发方法
目前ALM仅依赖于ACF(Advanced Custom Fields),这是一个用于在WordPress内容类型中创建和管理自定义字段的知名插件。
关于开发方法,有一个有趣的点,因为我尝试使用两种AI作为助手或副驾驶:ChatGPT Codex和Claude Code,我必须承认这不仅是一次非常有趣和有教育意义的体验,而且令人惊讶,因此我很可能会在专门的帖子中讨论它。
考虑
如前所述,这只是插件的第一个版本,只有在接下来的几天里我们才会认真测试它,但我们希望能尽快投入生产,并供任何想使用的人使用。
作为一个开源项目,任何人都可以参与其开发,甚至只是提交评论、错误报告或新功能请求。
源代码可在GitHub.com上获取。
来源和参考
- Associazione Astrofili Pisani Galileo Galilei (AAGG),官方网站。
- 资产借贷管理器,GitHub项目。
- ALM在线演示,临时网站,包含系统演示。
- ALM文档:Readme(项目描述),电子邮件通知方案和角色权限方案。
*** 注意:本文通过使用n8n和OpenAI的自动流程翻译。

