GoodAction Hub 是一个聚合公益活动信息与无障碍餐饮指南的开源站点,包含两大模块:
- 公益慈善活动截止日期(路径:
/deadlines):基于 hust-open-atom-club/open-source-deadlines 改造与扩展,汇总会议、竞赛与活动的关键时间节点,帮助公益从业者、志愿者和爱心人士不再错过参与机会。 - 无障碍友好美食指南(路径:
/Barrier-Free-Bites):原创功能模块,聚焦无障碍就餐体验与友好餐饮空间,提供更易获取的线索与导航入口(路径大小写需一致)。
为便于理解项目结构与来源,现对两大模块的来源说明如下:
-
公益慈善活动截止日期(改造自开源项目)
- 基于 hust-open-atom-club/open-source-deadlines 改造开发
- 我们的改动:
- 🎯 主题转换:从开源技术活动切换为公益慈善活动
- 🎨 UI 增强:视觉与交互优化
- 📊 数据适配:统一数据模型,适配公益活动特点
- 致谢:感谢原项目团队的开源贡献与优秀架构
-
无障碍友好美食指南(原创模块)
- 路径:
/Barrier-Free-Bites - 目标:提升餐饮空间的无障碍友好度信息的可获得性
- 内容:餐厅无障碍设施线索、就餐体验与导航建议
- 注意:请使用大小写一致的路径以避免托管平台的大小写路由差异
- 路径:
-
公益慈善活动截止日期(路径:
/deadlines)- 汇总公益会议、竞赛与活动的关键时间节点,支持时区展示与人类可读日期
- 提供「日历添加」与「倒计时」等便捷功能(组件参考:
components/AddToCalendar.tsx、components/CountdownTimer.tsx、components/TimelineItem.tsx) - 活动数据由独立数据仓库统一维护并提供
-
无障碍友好美食指南(路径:
/Barrier-Free-Bites)- 聚焦无障碍就餐体验与友好餐饮空间,提供更易获取的线索与导航入口
- 建议使用「大小写一致」的路径访问:
/Barrier-Free-Bites(注意大小写),以保证在不同托管平台上的最佳路由兼容性
我们非常欢迎社区贡献。活动数据与无障碍友好美食数据现已统一迁移到独立数据仓库维护,请在以下仓库提交与更新:
适用范围:
- 新增或修正公益活动(会议、竞赛、活动)信息
- 新增或修正无障碍友好美食地信息
- 补充无障碍要素、来源链接与说明
提交方式:
- 在数据仓库发起 Pull Request
- 或在数据仓库提交 Issue,由维护者协助跟进
如对本仓库页面结构或展示逻辑有改进建议,欢迎在本仓库继续提交 PR 或在 Discussions 讨论。
💡 新手友好提示:如果您不熟悉 Pull Request 流程,也可以通过 Discussions 和 Issues 提交信息,我们来协助整理。
🎉 每一份贡献都很珍贵,欢迎您的参与!
Bun: 本项目使用 Bun 作为包管理器和运行时。
-
克隆项目
git clone <your-repository-url> cd GoodAction-Hub
-
安装依赖
bun install
-
激活 Git Hook(此步骤会在安装依赖后自动执行)
bun run prepare
-
启动开发服务器
bun run dev
-
(可选)剪枝
bun run knip
现在,在浏览器中打开 http://localhost:3000 即可看到项目页面。
- 推荐平台:Netlify(已集成
@netlify/plugin-nextjs)- 构建命令:
npm run build - 如遇到路由大小写或缓存相关问题,建议在 Netlify 后台执行 “Clear cache and deploy site” 重新构建
- 构建命令:
- 也可选择 GitHub Pages 或华为云部署(参考仓库根目录的相关文档与脚本)
- 提交 Issue:用于报告 bug 或提出功能建议
- 发起讨论:欢迎在 Discussions 分享使用体验与数据来源
- 路由与无障碍建议:如发现路径大小写或页面访问问题,请附上平台与链接便于排查
- 框架: Next.js
- UI: Tailwind CSS & shadcn/ui
- 状态管理: Zustand
- 搜索: Fuse.js