改变身体的坏习惯并不容易。无论是饮食不当、在健身房懈怠,还是完全忽视健身,很大程度上都取决于心态。个人发展是一种趋势,它激励我们中的许多人摆脱坏习惯,将自己转变为新的、更好的人。
但引发重大变化始于衡量您的进步,以确定您所做的两步是让您更接近目标还是离目标更远。如果没有任何形式的衡量,旅程就会变得没有方向。
ABettaMe 是一款健康生活应用程序,旨在帮助您保持正轨,它允许您衡量不同的变量,以查看您在实现目标方面取得了多大的进步。通过此应用程序,您可以尝试不同的饮食和锻炼,以查看它们对您健康的影响。
Redis 被用来简化组件之间的数据传输,并创建一个对用户命令高度响应的应用程序。让我们看看这个应用程序是如何构建的。
但在我们进一步讨论之前,我们想指出,您可以在 Redis Launchpad 上发现各种类似 ABettaMe 的创新应用程序。
所以在阅读完这篇文章后,一定要去看看它们!
您将构建一个应用程序,通过允许用户详细地衡量进度,来帮助他们做出重要的生活方式改变。下面,我们将引导您完成实现过程的每个阶段,并介绍您将需要的组件,向您展示如何将此应用程序付诸实践。
准备开始了吗?
好的,让我们直接开始。
该项目由五个不同的组件组成。在每个部分中,我们将重点介绍构建应用程序所需的所有不同技术和工具。
Google Protocol Buffers:用作 Google 的语言中立、平台中立的扩展机制,用于序列化结构化数据。
git clone: https://github.com/redis-developer/abetta-ux
打开 docker-compose 文件,该文件指定构建此应用程序所需的各种服务
version: '3.8'
services:
abetta-xp:
container_name: abetta-xp
image: abettame/abetta-xp:local
abetta-gateway:
container_name: abetta-gateway
image: abettame/abetta-gateway:local
ports:
- 8080:8080
abetta-rec:
container_name: abetta-rec
image: abettame/abetta-rec:local
abetta-portal:
container_name: abetta-portal
image: abettame/abetta-portal:local
ports:
- 3000:3000
使用以下命令启动 Docker
docker-compose up -d
docker-compose ps
NAME COMMAND SERVICE STATUS PORTS
abetta-gateway "sh -c 'java -Dserve…" abetta-gateway running 0.0.0.0:8080->8080/tcp
abetta-portal "docker-entrypoint.s…" abetta-portal running 0.0.0.0:3000->3000/tcp
abetta-rec "/bin/sh -c 'ASPNETC…" abetta-rec running
abetta-xp "sh -c 'java -Dserve…" abetta-xp running
ajeetraina@Ajeets-MacBook-Pro abetta-ux %
接下来,打开浏览器并输入以下链接:https://#:8080/
让我们深入探讨构建此应用程序的每个模块。
用于管理现有实验或记录新实验的 UI 界面。
使用的技术:TypeScript、React
以下 Dockerfile 用于构建 UX Docker 镜像 -
# pull official base image
FROM node:13.12.0-alpine
# set working directory
WORKDIR /app
# add `/app/node_modules/.bin` to $PATH
ENV PATH /app/node_modules/.bin:$PATH
# install app dependencies
COPY package.json ./
COPY package-lock.json ./
RUN npm install --silent
RUN npm install react-scripts@3.4.1 -g --silent
# add app
COPY . ./
# start app
CMD ["npm", "start"]
应用程序网关,将流量路由到适当的下游服务。
使用的技术:Java、Spring Cloud GatewayRepo 链接:abetta-gateway
FROM maven:3-jdk-11
ADD . /abetta-gateway
WORKDIR /abetta-gateway
RUN ls -l
RUN mvn clean install -DskipTests
FROM openjdk:11.0-jre-slim
VOLUME /tmp
COPY --from=0 /abetta-gateway/target/abetta-gateway*.jar app.jar
CMD [ "sh", "-c", "java -Dserver.port=$PORT -Xmx300m -Xss512k -XX:CICompilerCount=2 -Dfile.encoding=UTF-8 -XX:+UseContainerSupport -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=heroku -jar /app.jar" ]
文件:https://github.com/ABettaMe/abetta-gateway/blob/main/build-image.sh
build-image.sh 脚本用于构建 AbettaMe 网关。
mvn clean package
docker build -t abettame/abetta-gateway:latest .
docker push abettame/abetta-gateway:latest
推荐服务,分析实验并执行统计显著性检验。
使用的技术:C#、.NET 5、RedisJSON、Redis 发布/订阅
Repo 链接:abetta-rec
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS buildWORKDIR /DockerSource
COPY Recommendations/bin/Release/net5.0/. .
# For local uncomment this and comment line 8# ENTRYPOINT ["dotnet", "Recommendations.dll"]CMD ASPNETCORE_URLS=http://*:$PORT dotnet Recommendations.dll
文件:https://github.com/ABettaMe/abetta-rec/blob/main/heroku-release.sh
docker build -t abetta-rec .heroku container:push -a abetta-rec webheroku container:release -a abetta-rec web
存储库包含所有不同服务之间共享的合同。
使用的技术:Google Protocol Buffers
Repo 链接:abetta-contract
文件:https://github.com/ABettaMe/abetta-contract/blob/main/build.sh
mkdir java-out csharp-out
protoc --proto_path=. \ --java_out=./java-out \ --csharp_out=./csharp-out \ *.proto
这是应用程序中最重要的一方面之一,您可以在其中测试新事物,并查看不同的更改对您的生活产生的影响。首先,点击仪表板上的“创建新实验”图标。
然后,您需要在给定的字段中填写有关您的实验的一些信息,包括
治疗:插入有关您将采取哪些策略来执行您的策略的信息。
在仪表板上,您将看到您的实验概述。点击“添加指标”以记录您的最新结果。然后,您将被带到一个新页面,您将需要填写一些字段,包括日期、指标和值(见下文)。
在屏幕的左侧,您将看到列出的不同实验。在点击要查看的实验后,您将看到一个图表,该图表将直观地显示您的进度。
该应用程序还将列出任何已达成的里程碑,这些里程碑代表您朝着目标前进的程度(见下文)。
衡量进度是个人发展的一个基本方面。它让您可以发现您是前进两步、后退两步,还是完全停滞不前。但对于任何衡量系统来说,要有效,它需要快速、准确且易于访问。
Redis 的高级数据处理能力保证了高度响应的应用程序,用户可以在没有任何滞后、冻结或延迟的情况下实时与它交互。新的指标保存在 RedisJSON 存储中,并通过 RedisPubSub 模块以超高效率发布,为用户提供无缝的应用程序体验。
要详细了解这个应用程序是如何制作的,请确保观看此 YouTube 视频。如果您喜欢这篇文章,请访问 Redis Launchpad,您可以在那里访问更多对日常生活产生影响的令人兴奋的应用程序。
我们有实时车辆跟踪系统、一个加速献血过程的应用程序等等!
去看看。看看。玩得开心点,Redis。
Antonis 是一位创新型软件工程师,目前将他的专业知识投入到 Spotify。如果您想了解他的所有项目,请确保在 GitHub 上关注他。