Luminary:第2周 — 构建核心
Source: Dev.to

什么是 Luminary
Luminary 是一个开源平台,旨在庆祝并表彰女性在社会中的成就和贡献。该平台致力于突出在各个领域产生影响的女性,为她们提供一个让其工作得到认可、被发现并与更广泛受众分享的空间。
该项目由前端、后端、设计等多个角色的贡献者协作构建,重点在于打造一个可扩展且易于访问的表彰平台。
本周工作内容
本周我的工作主要集中在维护代码库和构建核心后端基础设施。作为 Lead Maintainer,我的职责之一是确保项目保持稳定且对贡献者友好,同时在技术空白处提供支持。我还兼任 Backend Lead,帮助建立平台的基础后端架构。
主要任务
- 为项目网站设置并配置初始部署 →
- 开始构建 Luminary 的后端服务
- 重构代码库的部分内容,以支持正确的部署和项目结构
- 实现了以下 API 接口:
- 提交女性提名
- 在已提名女性目录中搜索
- 设计并构建了提名系统所需的数据库模式
- 协调仓库维护任务,保持项目组织有序并对贡献者友好
技术实现细分
Luminary 后端采用 Node.js + Express 架构,提供一个 RESTful API 层,与通过 Supabase 管理的 PostgreSQL 数据库进行通信。
前端
- 部署在 Netlify 的静态站点
- 显示被提名人资料并处理提名提交
后端
- 使用 Express 的 Node.js 服务器
- 处理 API 请求、提名提交和目录查询
- 充当前端与数据库之间的中间件
数据库
- 通过 Supabase 管理的 PostgreSQL
- 存储提名记录、提名人信息和被提名人资料
数据库设计
为了支持提名工作流,针对三个主要实体设计了模式:
被提名人(女性)
- 姓名
- 贡献的领域或方向
- 传记或影响描述
- 与认可相关的其他元数据
提名人
- 提交提名的个人信息
- 用于跟踪和潜在的审核工作流
提名
- 将提名人与被提名人关联
- 捕获被认可的成就或影响的详细信息
我遇到的挑战
一个主要的技术难题是 Netlify 部署问题。项目最初把 index.html 放在 pages 目录中,导致 Netlify 无法检测到入口文件。由于 Netlify 期望入口 HTML 文件位于发布目录的根目录,部署因此失败。
解决方案:
通过将 index.html 移动到项目的根目录并更新目录结构,重构了应用结构。这使得 Netlify 能够正确识别入口文件,从而实现了更简洁、适合部署的结构。
本周学习内容
- 在托管静态前端时处理 deployment constraints
- 在作为 Lead Maintainer 协调贡献时管理项目稳定性
团队与贡献者
Luminary 是一个由众多贡献者共同努力的项目:
- Isaac Shosanya — 首席维护者
- Ramnan Ramyil — 项目负责人
- Awoyemi Abiola — 项目负责人
- Daniel Chisom — 工程负责人
- Micheal Omonedo — 设计负责人
- Ariyo Taiwo — UI/UX 设计师
协作是推动项目进展的关键,看到平台逐步成形令人振奋。