Happiness Dashboard 是一个基于 Evidence 框架构建的交互式数据看板模板,其主要用途是让使用者通过在 Markdown 中编写 SQL 查询来生成数据可视化,从而快速搭建一个可交互的数据仪表盘。
技术栈方面,该模板使用 Evidence 作为框架,DuckDB 作为嵌入式数据库,Svelte 作为前端技术,包管理器为 pnpm。构建输出位于 build 目录,开发端口为 3000。
使用方式上,首先克隆模板仓库,命令为 git clone --depth 1 https://github.com/Eng0AI/happiness-dashboard-template.git .;若目标目录非空,可先克隆到 _temp_template 再移动文件并删除临时目录。之后可选地移除 Git 历史并重新初始化(rm -rf .git 与 git init),接着安装依赖(pnpm install),处理数据源(pnpm run sources),最后执行构建(pnpm run build),构建结果会生成在 build/ 目录中。
部署方面,模板推荐使用 Vercel,相关命令为 vercel pull --yes -t $VERCEL_TOKEN、vercel build --prod -t $VERCEL_TOKEN、vercel deploy --prebuilt --prod --yes -t $VERCEL_TOKEN,并需注意从项目根目录而非 build/ 目录部署。也可使用 Netlify,命令为 netlify deploy --prod --dir=build。
数据来源为 sources/happiness_score/ 目录下的 CSV 文件,包括 hs2024.csv(当年幸福数据)与 hsArchive.csv(历史幸福数据),因此无需进行数据库设置。
限制与注意事项包括:需使用 pnpm 而非 npm(.npmrc 中设置了 shamefully-hoist=true 以兼容 Evidence);建议在本地构建,因为 Vercel/Netlify 的云端构建可能因 DuckDB 编译耗时超过 40 分钟而超时;不要在虚拟机环境中运行 pnpm run dev。