Skip to content

7LPdWcaW/GrowTracker-Android

Repository files navigation

GrowTracker

Latest alpha GitHub commits since latest release Subreddit subscribers GitHub license

Welcome to grow tracker. This is a utility app designed for gardening and tracking various parameters of your grow.

Discontinuation

As of 2020, major version 2 of the app is in maintenance mode, meaning only critical bugs will be fixed. All further development is reserved for major version 3 of the application which will eventually replace this. Read more here

Install

GitHub release (latest SemVer) F-Droid

Get it on F-Droid

The app requires no permissions except for external storage (for caching plant data and images) which you can see here in order for users to maintain anonymity, and a minimum Android version of 4.2 and above

How to install from APK

  1. Follow this guide to enable unknown sources
  2. Download the APK from here
  3. Click on downloaded app and install

Updating

You can either elect to update manually, or get notified on releases by installing the Update plugin.

For updates, do not uninstall first, you will lose your existing plant data. Always back up your data!

Installing the app via F-Droid makes it updateable through the F-Droid mechanism.

Screenshots

main plant list dark main plant list

More screenshots

install main plant list plant details plant photos plant actions plant statistics schedule details schedule dates watering details garden tracker dark main plant list dark plant details dark plant photos dark plant actions dark plant statistics dark schedule details dark schedule dates dark watering details dark garden tracker settings

About the app

The app was designed with data in mind. All data is easily accessible via the app's files folder in Android/data/me.anon.grow/files/. You will need a file explorer to browse this folder, or alternatively, you can back your data up via the app settings which will create copies in backups/GrowTracker/

The structure is very simple, and consists of a few different objects.

Note: date timestamps are all unix timestamps from 1/1/1970 in milliseconds. All objects in arrays are in date order, where index 0 is the oldest and index (size - 1) is the newest.

API Data structure

Expand section

Plant object

  • plantDate in milliseconds
  • images is an array of file paths. Image file names are the taken date as unix timestamp in milliseconds
{
    "id": <String>,
    "actions": [<Action>],
    "images": [<String>],
    "name": <String>,
    "strain": <String>,
    "clone": <Boolean>,
    "medium": <Medium>,
    "mediumDetails": <String>,
    "plantDate": 1234567890
}

Medium (ENUM)

One of,

SOIL, HYDRO, COCO, AERO

Actions

All actions have the following 3 properties

{
    "type": <String>,
    "date": 1234567890,
    "notes": <String>,
}

Only the following actions are currently supports

Action object (type = Water)

  • Temperature measured in ºC
  • Amount measured in ml
  • Date is milliseconds
  • Notes as string

Water action for waterings

{
    "additives": [<Additive>],
    "ph": <Double>,
    "tds": <Tds>,
    "runoff": <Double>,
    "amount": <Double>,
    "date": 1234567890,
    "type": "Water",
    "temp": <Double>,
    "notes": <String>
}

Additive object

  • Amount is measured in ml

Object for nutrient dosages

{
    "description": <String>,
    "amount": <Double>
}

Tds object

Object for measuring conductivity or PPM

{
    "amount": <Double>,
    "type": <TdsUnit>
}

Tds Unit (ENUM)

One of,

PPM500, PPM700, EC

Action object (type = Action)

  • Date in milliseconds

Action object for recording plant actions such as trimming, transplanting.

{
    "action": <Action>,
    "date": 1234567890,
    "type": "Action",
    "notes": <String>
}

Action (ENUM)

One of,

FIM, FLUSH, FOLIAR_FEED, LST, LOLLIPOP, PESTICIDE_APPLICATION, TOP, TRANSPLANTED, TRIM, TUCK

Stage change (type = StageChange)

  • Date in milliseconds

Action object for recording a change in plant stage.

{
    "newStage": <PlantStage>,
    "date": 1234567890,
    "type": "StageChange",
    "notes": <String>
}

PlantStage (ENUM)

One of,

PLANTED, GERMINATION, SEEDLING, CUTTING, VEGETATION, FLOWER, DRYING, CURING, HARVESTED

Note action (type = Note)

  • Date in milliseconds
{
    "notes": <String>,
    "date": 1234567890,
    "type": "Note"
}

Garden object

The garden object is similar to the plant object, and accepts Action types, but is software-restricted to the following

{
    "id": <String>,
    "name": <String>,
    "plantIds": [<String>],
    "actions": [<Action>]
}

Temperature change action (type = TemperatureChange)

  • Temperature measured in ºC
  • Date in milliseconds
{
    "temp": <Double>,
    "notes": <String>,
    "date": 1234567890,
    "type": "TemperatureChange"
}

Humidity change action (type = HumidityChange)

  • Date in milliseconds
{
    "humidity": <Double>,
    "notes": <String>,
    "date": 1234567890,
    "type": "HumidityChange"
}

Light schedule change action (type = LightingChange)

  • on time format HH:mm
  • off time format HH:mm
  • Date in milliseconds
{
    "on": <String>,
    "off": <String>,
    "notes": <String>,
    "date": 1234567890,
    "type": "LightingChange"
}

Encryption

Note that this is not a guaranteed form of protection from law enforcement agencies.

Encryption in the app uses basic AES for encryption using a provided passphrase. If the passphrase is less than 128 bits (16 UTF-8 chars), it will be padded with 0x0 bytes. You can view the key generator method here

You can decrypt your files using your passphrase either by writing a script that uses AES decryption, or an online tool such as Online-Domain-Tools.

Translators

Translating is done conveniently through Transifex

See more about translating GrowTracker

Translations provided by;

  • Chinese (Taiwan) - TW - Chinese (Taiwan); Chief Ndora (chiefndora), codecyang
  • Dutch - NL - Dutch; Heimen Stoffels (Vistaus)
  • French - FR - French; Maxtille, yassine azirem (yassix.well)
  • German - DE - German; Acrylic Boy, Alex (Noxmiles), Basti B (Weltenesche), Patrick B (EukalyptusX), Sascha Zenglein (szenglein), Vexatos, W Q (williq)
  • Hungarian - HU - Hungarian;
  • Norwegian Bokmål - NB - Norwegian Bokmål; Syver Stensholt (SuperPotato)
  • Russian - RU - Russian; 9YbQiuEohUu1
  • Slovenian - SI - Slovenian; Klemen Skerbiš (aha999)
  • Spanish - ES - Spanish; EmmanuelMess, Raul Choque (choqueraul123)
  • Ukranian - UK - Ukrainian; 9YbQiuEohUu1

License

Copyright 2014-2021 7LPdWcaW

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.