一只受伤的动物。一个被打翻的垃圾桶。以及一个被污染的热点。我们大多数人都可能在当地社区遇到过其中一种情况。但是,知道如何快速应对这些情况可能是一个挑战。我应该联系谁?报告健康危害的流程是什么?这会占用我多少时间?
不知道这些问题的答案可能就是采取行动与不采取行动的区别。归根结底,社区就是一切,如果我们能够轻松地报告社区问题,那么我们可以促进一个更健康、更安全、更绿色的星球。
Bryon Rosas Salguero 正在应对这一挑战。通过他创新的应用程序 Helplanet,个人只需在手机上点击几下,即可立即报告当地的风险或事故。但是,为了使该应用程序能够正常运行,必须实时传输数据,以跟上现实生活中发生的事件。
Redis 对于实现这一点至关重要,它使 Byron 的创新得以实现。让我们来看看他是如何将这个应用程序组合在一起的。但在我们深入了解所有细节之前,我们想让您知道我们在 Redis Launchpad 上有各种各样的有趣应用程序供您查看。
所以别忘了在看完这篇文章后去看看它们!
您将构建一个允许人们报告社区中社会问题的应用程序。这些可以包括
下面我们将引导您完成应用程序构建过程的每个步骤,并突出显示您需要的组件及其功能。
准备好开始了吗?好的,让我们直接开始。
克隆此项目或下载为 zip
git clone https://github.com/byronrosas/helplanet.git
执行 redis (https://github.com/RedisLabsModules/redismod)
docker run -p 6379:6379 --name myredis redislabs/redismod
sudo docker start myredis
cd helplanet/server
npm install
cd help-planet
npm install
npm install -g @ionic/cli
npm install @ionic-native/core@4 --save
cd helplanet-support
npm install
npm install -g @angular/cli
(打开三个终端)
首先使用此命令启动服务器(启动服务)
cd ..
cd server
npm run build
npm run dev
第二步启动 ionic 应用程序 (http://localhost:8100)
cd help-planet
ionic serve
第三步启动 web angular 应用程序 (http://localhost:4200)
cd helplanet-support
ng serve
以下是每个服务的 RediSearch CLI 命令
Redis 工具
FT.DROPINDEX usersIdx
FT.DROPINDEX notificationsIdx
FT.CREATE usersIdx ON HASH PREFIX 1 hpa:users: SCHEMA username TEXT password TEXT email TAG status NUMERIC role NUMERIC
FT.CREATE notificationsIdx ON HASH PREFIX 1 hpa:notifications: SCHEMA geo GEO userId TAG userOrg TAG
SET hpa:session:[email protected] "xyaszTOKENsdsjlvj" EX 24*60*60
DEL hpa:session:[email protected]
GET hpa:session:[email protected]
HSET "hpa:notifications:1621188142413-0" userId "[email protected]" level "0" text "trash" situation "garbage" geo "-78.62285039999999,-1.2543408"
和
EXPIRE "hpa:notifications:1621188142413-0" 172800
HDEL "hpa:notifications:1621188142413-0" userOrg dateAttention
HSET "hpa:notifications:1621188142413-0" userId "[email protected]" level "0" text "trash" situation "garbage" geo "-78.62285039999999,-1.2543408" serOrg [email protected] dateAttention new Date()
DEL "hpa:notifications:1621188142413-0"
FT.SEARCH notificationsIdx * LIMIT 0 10
FT.SEARCH notificationsIdx @userId:{email/@hotmail/.com} LIMIT 0 10
XADD hpa:report MAXLEN 30 * userId "[email protected]" level "0" situation "garbage" lat "-7.54545" lon "-0.4545" text "trash"
XRANGE hpa:report 1621188142413 1621188142413
XRANGE hpa:report 1621188142413-0 + COUNT 1
HGETALL "hpa:notifications:1621188142413-0"
FT.SEARCH notificationsIdx @geo:[ "-0.4545" "-7.54545" 15 m]
HSET hpa:users:[email protected] username "byronman" password "encryptpassword" email "[email protected]" role "0"
FT.SEARCH usersIdx @email:{[email protected]}
HGETALL hpa:users:[email protected]
HSET hpa:users:[email protected] username "byronman" password "encryptpassword" email "[email protected]" role "0"
FT.SEARCH usersIdx @email:{[email protected]}
FT.SEARCH * LIMIT 0 10
XREAD COUNT 1 BLOCK 5000 STREAMS hpa:report $
中间件也用于每个路由
如果有人在他们的社区中遇到危害或社会问题,他们可以通过 Helplanet 应用程序报告它。用户只需打开该应用程序,然后他们将面临许多选项(见下文)。
然后,用户将选择最能描述他们遇到的问题或担忧的选项。与 Facebook Messenger 非常相似,将会出现一个聊天窗口,他们可以在其中提供有关他们所报告事件的更多详细信息(见下文)。
注意:多亏了 Redis,一切都将实时报告。
该组织将收到公众成员报告的所有事件的通知。他们将能够在他们的仪表板上获得所有报告事件的整体视图(见下文)。
从这里,组织可以选择一个事件并更详细地查看它。将提供的关于该事件的信息将包括
组织可以根据位置过滤所有内容。这将使他们能够快速了解地图上每个即时位置(见下文)。
如果组织想要以不同的沟通形式(例如电子邮件)与用户联系,他们还可以查看用户的个人详细信息(见下文)。
社会依赖于那些承担报告对当地社区构成威胁的问题的个人。但是由于有如此多的不同组织和专业人士需要联系,整个报告过程可能既不明确又繁琐。
Byron 的应用程序能够通过创建一个强大而简单的应用程序来消除这些障碍。然而,为了使这个应用程序能够有效地运行并促进无缝体验,数据需要实时传输。
多亏了 Redis,应用程序架构中的组件变得更加互连,数据传输既无缝又超高效。
如果您想了解更多关于 Helplanet 是如何创建的,请务必观看 此处的 YouTube 视频。
我们还在 Redis Launchpad 上提供了各种其他突破性应用程序供您查看。在这里,您将深入了解如何使用 Redis 来创建令人兴奋的应用程序,这些应用程序正在对世界各地人们的日常生活产生影响。
那么,您可以使用 Redis 构建什么?
Byron 是一位极具创新精神的软件工程师,他以自由职业者的身份独立工作。请务必访问他的 GitHub 页面,及时了解他的所有活动。