Leo Qin

← 全部项目

07 · 线上网站

BiphFlora

校园植物双语图鉴。

角色
技术负责人
时间
2024 年 – 2026 年 5 月
BiphFlora demo mode home page: a search box, a count of plant species, and three sample plant cards. All sample data.
使用匿名样例数据的演示模式:搜索首页。

使用的技术

  • React
  • Express
  • MongoDB
  • WebP

项目简介

学校首个数字化生物多样性图鉴基于 React、Express 和 MongoDB 开发,支持双语检索、按角色登录和管理员审核。平台收录 153 条植物记录和 970 张照片。

我为全部 1,033 张图像制作了响应式 WebP 版本。所有 480 px 版本合计比原图小 98.7%(总大小约从 2.1 GB 降至 28 MB);1600 px 版本则小 93.6%。

自 2024 年底以来,服务器日志共记录约 37,000 次页面加载。

截图展示的是演示模式,使用匿名样例数据。

功能

BiphFlora 是一款用 React 和 Express 开发的双语应用,支持查阅、记录、提交和审核校园植物与鸟类资料。

  • 可用中文、英文、拉丁名或别名搜索,也支持模糊匹配。
  • 公开页面包括图鉴、术语表、详情页、季节图库和创作条目。
  • 投稿和修改都由管理员审核。队列里有修改申请,以及待审核的植物、鸟类和创作投稿;管理员可以批准或驳回。
  • 2026 年 7 月下旬的线上快照显示,平台有 153 条植物记录(152 条已通过审核,1 条待审核)、970 条图片记录、27 条艺术作品记录和 18 条已通过审核的创作条目。

构建方式

React 客户端 双语界面 Express API JWT、bcrypt MongoDB 记录 Redis 令牌检查 媒体文件 Sharp、WebP
生产环境在应用前还有一层 Nginx。登录使用 bcrypt 和签名的 JWT,系统会在 Redis 中核验当前令牌,并从 MongoDB 重新读取管理员状态。因此,仅凭令牌里过期的管理员身份无法获得访问权限。

减小图像体积

图库共有 1,033 个可读取的图片文件(57 个 JPEG、976 个 PNG),总计约 2.1 GB。每个原图都生成了 480、960 和 1600 px 三种响应式 WebP 版本,共 3,099 个,全部生成成功;浏览器每次只下载其中一个版本。

各尺寸版本与原图的总大小对比
  1. 480 px 版本合计 27.8 MB 体积减少 98.68%
  2. 960 px 版本合计 73.5 MB 体积减少 96.52%
  3. 1600 px 版本合计 135.7 MB 体积减少 93.57%

统计涵盖全部 1,033 个文件;不同尺寸的缩减比例分别计算,不能相加。 来源: BiphFlora 媒体报告,2026 年 7 月 23 日。

在本地用 6,000 个合成查询测试 Fuse.js 搜索:中位耗时 0.70 ms,第 95 百分位耗时 1.13 ms。结果不包括 API、数据库、界面和生产环境负载的开销。

访问情况

服务器日志记录的页面加载次数(按时间段)
  1. 自 2024 年 10 月 31 日以来 37,409
  2. 过去 365 天 23,215
  3. 过去 90 天 6,398
  4. 过去 30 天 1,802

截至 2026 年 7 月 22 日,统计剔除了机器人、扫描器和内部流量,只计成功的页面文档响应。来源报告说明,这些数据不代表访问次数、页面浏览量或人数。 来源: BiphFlora 流量报告,2026 年 7 月 23 日。

BiphFlora 演示模式中的物种页面:展示物种名称、地点和图片库,内容均为样例数据。
演示模式中的物种页面,使用样例数据。

试试示例

在网站演示模式的三条示例数据里试试中英文搜索。这里只演示操作方式,不是真正的图鉴。

3 条示例,匹配 3 条

  • Synthetic Plant AlphaDemoAlpha演示植物甲
  • Synthetic Plant BetaDemoBeta演示植物乙
  • Synthetic Plant GammaDemoGamma演示植物丙

评论

下一个项目

萤火之森 · CMJ