受伤的动物。翻倒的垃圾桶。污染热点。我们大多数人可能都在我们的当地社区遇到过这些问题之一。但了解如何快速应对这些情况可能是一项挑战。我应该联系谁?报告健康危害的流程是什么?这将占用我多少时间?
不知道这些问题的答案可能是行动与不行动之间的区别。归根结底,社区 *至关重要*,如果我们能够轻松地报告社区问题,那么我们就可以促进一个更健康、更安全、更绿色的地球。
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:byron@hotmail.com "xyaszTOKENsdsjlvj" EX 24*60*60
DEL hpa:session:byron@hotmail.com
GET hpa:session:byron@hotmail.com
HSET "hpa:notifications:1621188142413-0" userId "byron@reporter.com" 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 "byron@reporter.com" level "0" text "trash" situation "garbage" geo "-78.62285039999999,-1.2543408" serOrg x@hotmail.com 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 "user@x.com" 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:byron@hotmail.com username "byronman" password "encryptpassword" email "byron@hotmail.com" role "0"
FT.SEARCH usersIdx @email:{email@x.com}
HGETALL hpa:users:byron@hotmail.com
HSET hpa:users:byron@hotmail.com username "byronman" password "encryptpassword" email "byron@hotmail.com" role "0"
FT.SEARCH usersIdx @email:{email@x.com}
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 页面,随时关注他的所有活动。