Thanks to visit codestin.com
Credit goes to github.com

Skip to content

An AWS-hosted plant tracking web app that makes it easy for you and your friends to track their plant growth and lineages.

License

Notifications You must be signed in to change notification settings

dantheand/plants

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

plantopticon2_large_no_shadow 9a4acea00bd4a90a9da6

PLANTOPTICON

A plant tracking app meant to make it easy to track your plants' growth and lineages.

  • backend is the FastAPI backend (Python)
  • plant-app is the React frontend (Typescript)

Development environment setup

Dependencies

  • Python 3.11+
  • Node v20.10.0

AWS stuff

  • aws CLI
  • aws credentials set up (use a profile)

Services used

The AWS infrastructure is an artisinal, hand-crafted set of services made through the AWS console. It would greatly benefit from some sort of IaC approach to reproducibility.

AWS

  • AWS Amplify for front-end builds and deployment
  • AWS Lambda function hosts and runs FastAPI through Mangum handler
  • API Gateway in "proxy" mode triggers lambda function
  • DynamoDB NoSQL DB for basic single-table DB
    • Created global secondary index 'SK-PK-index' to allow querying by plant_id directly
  • S3 for image hosting
  • IAM for role and permissions management for each of the above services
  • Cloudwatch for logging outputs

Google

  • Oauth authentication tokens

Running/Deploying the App

Local

Start FastAPI backend and react frontend using scripts in /scratch/scripts.sh

Production (on the internet)

On pushes to master:

Frontend

  • AWS Amplify pointed at this GitHub repository does automated builds and deployment

Backend

  • Github actions package and deploy FastAPI backend to lambda

Screenshots

Google SSO

image

Plant List

image

Plant Grid View

image

Create New Plants

image

Edit Existing Plants

image

Upload Images

image

Timeline View of Plant Images

Screen.Recording.2024-02-01.at.00.05.20.mov

Plant Lineage Visualizations

image

Multi-User Authentication and Sharing

image

Upcoming Feature ideas

In rough order of decreasing priority:

  • Improving plant view
    • Filter by "current" or not (e.g. has the plant died or been given away)
  • personal data export:
    • ability for users to export their plant data so they can analyze it or migrate it
  • timelapse views
    • creating timelapse view of plant growth from photos
    • would be made easier by having a photo "ghost" overlay to previous photo when adding a new image
  • plant event tracker
    • watering, fertilizing, repotting
  • extracted features from images
    • machine vision to extract height, number of leaves, number of branches
    • species identification
  • care recommendations (keyed to species)
  • allow automated recognition of plant ID (increasing order of difficulty):
    • OCR of numbers written on tags
    • small QR codes
    • matching to previous photos of plant (way too hard)

About

An AWS-hosted plant tracking web app that makes it easy for you and your friends to track their plant growth and lineages.

Resources

License

Stars

Watchers

Forks