使用 GitHub Actions 和 Google Forms 创建初创公司
使用 GitHub Actions 和 Google Forms 创建初创公司
阿姆斯特丹的房地产市场太疯狂了,太疯狂了 大学告诉学生不要来阿姆斯特丹,除非他们已经有地方住在这里 ,而且只会越来越糟。
租金和房地产价格飞涨,而且由于阿姆斯特丹是一个科技中心,总有一位 Booking 工程师有足够的钱让你出价过高。所以,你可以做什么?
好吧,如果您的速度足够快,您可以在房屋上市后立即预订看房,然后提出足以让业主当场接受的报价。
列出房屋后立即获得通知的最佳方式是向其中一家租赁机构付费,他们会在您的电子邮件中列出新房屋时通知您。
太好了,但是因为我想在 Telegram 上收到通知,所以不想花任何钱,因为 #节俭生活
, 我写了一个脚本来抓取funda.nl并为我找房子 .
这对我来说效果很好,但是对于缺乏编程技能的人来说,设置一个 GitHub 帐户和搞乱 GitHub Actions 有点过分了,所以我决定创建一个免费的 名为 Home Finder 的开源项目 (我知道这是一个独特的名字)使用 GitHub Actions 和 Google Forms 来帮助任何人找到新房子。
启动?
你一定想知道为什么我称它为初创公司,嗯, 有很多公司提供这样的服务,按月收费 ,所以是的,我想你可以简单地:
- 克隆我的项目
- 部署到您自己的网络域
- ???
- 利润
你问我为什么要制作这个免费的开源软件?好吧,因为我很生气。
商业计划书
在阿姆斯特丹付房租已经够贵了,而且 供暖价格上涨速度超过狗狗币 , 支付额外服务来找房子是不行的,但是托管一个带有数据库和后端来抓取网络的网站并不是免费的,Digital Ocean 上最便宜的撕裂将花费每月 5 美元 - 仍然比大多数人都好租赁机构,虽然。
谢天谢地, GitHub Actions 有 2000 小时的免费套餐 对于任何 GitHub 帐户,这样就解决了脚本在后台抓取网页的问题,但是用户如何提交他们的数据,以便脚本可以根据他们的需要寻找房子呢?
有一种解决方法可以在任何网站上使用 Google 表单作为表单 ,使用您想要的任何布局,所有表单提交的数据都将存储在 Google 电子表格中,稍后可以通过抓取脚本下载该电子表格以获取用户数据并查找房屋。
这就是堆栈:GitHub Actions、GitHub Pages、Google Spreadsheet 和 Google Forms。
但是在做任何代码之前,我开始思考业务模型和用例,并提出了以下用例:
为什么不是 Firebase?
因为。
编码
为了构建这个网站,我从我的待开发 SSG 框架 Gatsby 开始。我几乎只是 复制 和 粘贴 从一个 Gatsby 项目到另一个项目的相同代码,这次也不例外。
盖茨比的伟大之处在于我可以在 节点.js
Gatsby 的一部分,并过滤掉我不想发送到前端的任何数据,例如用户电子邮件和 tcharam,没有数据泄漏。对于这个项目,我不必这样做,但我是为这个博客做的——所以每当用户用他们的电子邮件发表评论时,该电子邮件永远不会出现在前端构建中。
这个项目将有 2 个不同的部分,盖茨比网站,我将构建一次, 使用 Node Fetch 从 Google Forms 获取表单数据 ,以及脚本 将下载 Google 电子表格数据 并用 xlsx .
我还想确保我不会将同一个房子发送给同一个用户两次,为此,我需要一个数据库来保存我已经发送给该用户的房子,因为我将简单地使用 db.json
具有以下结构的文件:
要将这些数据保存到 repo,我将使用 git-auto-commit-action GitHub 操作。这是有问题的,因为现在任何人都可以访问该存储库并查看所有用户的电子邮件和链接,而我不能拥有它,因此该存储库需要是私有的,但您可以克隆 这个 如果需要,可以添加到您自己的 GitHub 帐户。
限制
由于我不想使用超过 GitHub Actions 免费层,我将每小时运行一次脚本,这应该足以不超过每月限制 - 当然,这取决于用户数量。
我还必须手动编写抓取脚本 各种房地产网站 ,因此您无法从荷兰任何地方的任何网站收到通知。
这就是我制作这个免费和开源的原因,我强烈鼓励人们部署自己的版本并更改抓取脚本的频率以满足他们的需求。
部署自己的版本
要部署您自己的版本,您需要克隆 2 个 GitHub 存储库, 主页查找器 和 主页查找器脚本 .如果你真的不需要前端部分,你可以克隆脚本仓库。
前端
为了 主页查找器 项目,您将需要执行以下步骤:
1. 使用克隆项目 使用此模板
GitHub 上的按钮并确保项目保持公开,否则,您无法将其部署到 GitHub Pages。
2.改变 网站网址 和 路径前缀 Gatsby 的属性,因此 GitHub Actions 可以将项目部署到 username.github.io/home-finder
适当地。
3. 创建一个 像这样的谷歌表单 具有完全相同的字段名称和字段类型。
4. 获取 Google Forms 表单 ID,例如, 1FAIpQLSfNXZrkvG-in6kurmGRQt4SOt2xyDOautibKpC4PAeQElzrgQ
并将其添加到您的 回购的秘密 用名字 GATSBY_GOOGLE_FORM_ID
.
5. 将您的更改推送到 主要的
分支,网站将在推送时自动构建。
后端
为了 主页查找器脚本 项目,您将需要执行以下步骤:
1. 使用克隆项目 使用此模板
GitHub上的按钮并确保将项目更改为私有,否则您可能会泄露用户数据。
2. 更新 模板.html
使用您自己的网站 URL
- 或者如果您跳过前端,您可以简单地删除电子邮件页脚中的链接。
3. 从之前创建的表单中获取 Google 电子表格,并确保 将 Google 电子表格发布到网络 并将其提供给任何拥有该链接的人。
- 或者如果您跳过任何 Google 电子表格都可以执行的前端,但电子表格需要具有与 Google 表单相同的标题字段。
4. 获取 Google 电子表格 ID
和 网格 ID
, 例如, 对于这个电子表格 , 这 ID
是 1jRMEvfI6OsWUwnaHgH5UwnoikZA0a3s8wPnCortNJ_A
和 网格 ID
是 0
.
5.新增5个 回购的秘密 :
EMAIL_USER
:将用于发送电子邮件的 Gmail 电子邮件。EMAIL_PASSWORD
:Gmail 帐户的密码。强烈建议您 创建应用密码 为了那个原因。GOOGLE_SPREADSHEET_ID
: 谷歌电子表格ID
.GOOGLE_SPREADSHEET_GID
: 谷歌电子表格网格 ID
.用户代理
:爬虫脚本使用的用户代理。您可以使用 你自己的用户代理 如果你想。
6.更新 cron 工作频率 以满足您的需求。
7. 将您的更改推送到 主要的
分支,脚本将根据 cron 作业设置自动运行。
如何使用网站
前往 Home Finder 网站上的表单页面 ,并使用您的电子邮件和房地产网站的所有链接以及您的搜索参数填写表格,例如, https://www.funda.nl/en/huur/amsterdam/beschikbaar/0-2000/40+woonopp/2+slaapkamers/1-dag/ ,然后单击提交。之后,只需等待脚本找到新房子并将它们直接发送到您的电子邮件。
在撰写本文时,该项目支持的网站有: 基础.nl , vbo.nl , huislijnl , zah.nl , pararius.nl , jaap.nl 和 hoekstraenvaneck.nl ,所以继续访问这些网站,添加您的过滤器并将它们添加到 主页查找器 .
结论
结合 GitHub Actions、创造力和一些黑客技术,您几乎可以在没有任何预算的情况下做任何事情,然后如果需要,可以从那里扩展。
如果您有一个好主意,请将其部署到 GitHub Pages,使用 GitHub Actions,使用 Google 电子表格(好的,或者 Firebase)并从那里开始您的项目,如果您使用的不仅仅是免费层,那么可能是开始扩展的好时机,也许正在考虑赚取一些收入或为您的想法寻找合作伙伴或投资者。
祝你好运,如果你正在荷兰寻找房子,别忘了使用 主页查找器 并将其推荐给您的朋友。
下一篇见。
最初发表于 https://pablo.gg .
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明