园艺伴侣应用程序Plant-it

2023-12-27 12:04

本文主要是介绍园艺伴侣应用程序Plant-it,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

什么是 Plant-it ?

Plant-it 是一款园艺伴侣应用程序,可帮助您照顾植物。它不会建议您采取哪些操作,而是旨在记录您正在执行的活动。这是故意的,软件作者坚信,唯一负责知道何时给植物浇水、何时施肥等的人是你(在多个在线资源的帮助下)。Plant-it 可以帮助您记住上次对植物进行处理的时间、您拥有哪些植物、收集植物的照片,并通知您自上次处理植物以来经过的时间。

安装

在群晖上以 Docker 方式安装。

docker-compose.yml

采用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

本文折腾时,前后端镜像 latest 对应的版本为 0.0.17

version: "3"services:backend:image: msdeluise/plant-it-backend:latestcontainer_name: plant-it-backendrestart: unless-stoppedenv_file: backend.env.txtdepends_on:- db- cachevolumes:- "./upload:/upload-dir"ports:- "3096:8080"db:image: mysql:8.0container_name: plant-it-dbrestart: alwaysenv_file: backend.env.txtvolumes:- "./db:/var/lib/mysql"cache:image: rediscontainer_name: plant-it-cacherestart: alwaysfrontend:image: msdeluise/plant-it-frontend:latestcontainer_name: plant-it-frontendenv_file: frontend.env.txtlinks:- backendports:- "3095:3000"

backend.env.txt

将下面的内容保存为 backend.env.txt 文件,这是后端服务的环境变量设置文件

MYSQL_HOST=db
MYSQL_PORT=3306
MYSQL_USERNAME=root
MYSQL_PSW=root
MYSQL_ROOT_PASSWORD=root
MYSQL_DATABASE=bootdbJWT_SECRET=f302ce974585f4d89dfabb2d7e927fcca4be800a5568b0ebb569f91f044773df1bd86c3655f330bab5af059ce678f841909b1d59b755840ef978e78b65da4205
JWT_EXP=1USERS_LIMIT=2 # including the admin account, so <= 0 if undefined, >= 2 if defined
UPLOAD_DIR=/upload-dir
API_PORT=8080CACHE_TTL=86400
CACHE_HOST=cache
CACHE_PORT=6379TRAFLE_KEY=ALLOWED_ORIGINS=*
  • backend.env.txt 文件中主要的几个参数:
    • API_PORT:后端服务的容器端口,不要改;
    • JWT_SECRET :可以用 Vaultwarden 的密码生成器,也可以用 openssl rand -hex 64
    • MYSQL_:和 MySQL 数据库相关的设置

在这里插入图片描述

frontend.env.txt

将下面的内容保存为 frontend.env.txt文件,这是前端页面的环境变量设置文件

PORT=3000
API_URL=http://192.168.0.197:3096/api
WAIT_TIMEOUT=5000PAGE_SIZE=25BROWSER=none
  • frontend.env.txt 文件中主要的几个参数:
    • PORT:前端页面的容器端口;
    • API_URL:后端 API 服务的外部可访问地址,例如http//<群晖主机IP>:<API_PORT>/api,如果反代了,这里要用域名;

然后执行下面的命令

# 新建文件夹 plantit 和 子目录
mkdir -p /volume1/docker/plantit/{db,upload}# 进入 plantit 目录
cd /volume1/docker/plantit# 将 docker-compose.yml 、 frontend.env.txt、 backend.env.txt 放入当前目录# 一键启动
docker-compose up -d

在这里插入图片描述

运行

在浏览器中输入 http://群晖IP:3095 就能看到首页

在这里插入图片描述

第一次需要通过 create an account 创建账号,之后就可以通过 login 登录,登录成功后的主界面

在这里插入图片描述

这个页面风格一看就是主要针对手机的用户的

添加植物

点下面的放大镜图标,然后在点击 Custom 的图片,来添加自己的植物

在这里插入图片描述

  • Scientific classification --> 科学分类

    • Family --> 科
    • Genus --> 属
    • Species --> 种
    • Thumbnail --> 缩略图
  • Plant --> 植物

    • Name --> 名称
    • Purchased date --> 购买日期
    • Purchased on --> 购买于
    • Note --> 备注

这些不是都需要设置,老苏就设置了 Name ,并上传了 Thumbnail,设置完成点下面的 SAVE PLANT 即可

在这里插入图片描述

保存成功就能看到了

在这里插入图片描述

重复上面的步骤,添加另外的植物

在这里插入图片描述

添加事件

点屏幕下方正中间的 + 号创建事件

在这里插入图片描述

Name 支持下拉,也支持多选

在这里插入图片描述

  • Type --> 事件类型
    • Biostimulating --> 生物刺激
    • Fertilizing --> 施肥
    • Misting --> 喷雾
    • Observation --> 观察
    • Seeding --> 播种
    • Transplanting --> 移栽
    • Treatment --> 处理
    • Watering --> 浇水
    • Water changing --> 换水

在这里插入图片描述

接下来加上时间和备注

在这里插入图片描述

SAVE EVENT 保存之后

在这里插入图片描述

继续填加其他事件,不同的类型有不同的图标和颜色,熟悉之后一目了然

在这里插入图片描述

最后看看手机上的效果

在这里插入图片描述

参考文档

MDeLuise/plant-it: 🪴 Self-hosted, open source gardening companion app
地址:https://github.com/MDeLuise/plant-it

这篇关于园艺伴侣应用程序Plant-it的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/543069

相关文章

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

Java Web应用程序的推荐目录结构

以前没有用过maven管理过项目的依赖,最后使用上了maven,发现通过不能方式建立出来的web应用程序目录结构基本都不一样,既然每次都要到网上搜索如何建立maven管理的Web应用程序,不如自己找百度谷歌一下。 找了半天 ,感觉比较好的maven管理的web应用程序目录结构是这个: ├── pom.xml└── src├── main│ ├── java│ │ └── myg

C++入门(02)简单了解C++应用程序的开发部署

文章目录 1. 开发C++应用程序2. 简单示例计算器程序3. 需求分析4. 设计5. 编码6. 编译7. 调试8. 测试9. 部署10. 部署示例10.1 使用Visual Studio Installer Projects创建安装程序10.2 安装VisualStudio Installer Projects扩展10.3 在calculator解决方案中创建安装项目10.3.1 添加安装

自动驾驶系列—记忆泊车技术:未来驾驶的智能伴侣

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中一起航行,共同成长,探索技术的无限可能。 🚀 探索专栏:学步_技术的首页 —— 持续学习,不断进步,让学习成为我们共同的习惯,让总结成为我们前进的动力。 🔍 技术导航: 人工智能:深入探讨人工智

android应用程序访问隐藏的api

前言 在android系统开发中需要添加一些aidl文件。 这些aidl是hide的,应用程序无法直接的使用,从而引出了应用程序如何访问内部内藏的api接口 步骤 1.android在编译完成后,会生成framework.jar。难道应用程序要使用这个framework.jar吗? 其实不是的,需要使用的是 out/target/common/obj/JAVA_LIBRARIES/f

android应用程序jni访问C库

应用程序访问C库 –通过jni访问 如果应用程序,需要访问C的动态库,可以通过ndk的方式生成动态库,也可以在ubuntu中通过命令行得到动态库。本文通过命令行的方式得到动态库libhardcontrol.so 交叉编译 arm-linux-gcc -fPIC -shared hardcontrol.c -o libhardcontrol.so -I /usr/lib/jvm/java-1.

在移动应用程序中集成模糊方法的基于物联网的天气监测系统的实现

这篇论文的标题是《IMPLEMENTATION OF WEATHER MONITORING SYSTEM BASED INTERNET OF THINGS USING INTEGRATED FUZZY METHOD IN MOBILE APPLICATIONS》,作者是 Muhammad Malik Amin,来自 Politeknik Negeri Jakarta 的 D-IV INSTRUME

Qt 运行一个应用程序,再次点击程序快捷方式弹出程序窗口

代码实现 .h文件 #ifndef SINGLEAPPLICATION_H#define SINGLEAPPLICATION_H#include <QObject>#include <QWidget>#include <QApplication>#include <QtNetwork/QLocalServer>class SingleApplication : public QAppl

7、Django Admin删除默认应用程序

admin文件 from django.contrib.auth.models import User, Groupadmin.site.unregister(User)admin.site.unregister(Group) 显示效果: 前 后

MAC XCode 得到当前应用程序的路径

- (IBAction)OnBT1:(id)sender {     NSString *resourcePath=[[NSBundlemainBundle] bundlePath];         m_LB1.stringValue = resourcePath;