MyGarden
February 18, 2026 · View on GitHub
Objective:
MyGarden is an application that allows anyone to easily plot an edible garden. Users can focus on the more relaxed motions of building and watching their efforts come to fruition.
MyGarden deployed via Heroku
Installation:
Prerequisites
Docker
This project relies on Docker to run the PostgreSQL server. You must install Docker first before continuing.
Once you've installed Docker Desktop, you'll need to launch the app. On macOS,
it's located in /Applications/Docker.
Node
You'll need to install Node v14 or above. nvm is highly recommended.
Set Up the Development Environment
Install NPM Packages
npm install
Set Up postgres User Password and Database Name
Set up information in order to start a new PostgreSQL server instance, as well as to connect to it later from the Express server.
-
Copy the example environment file
cp .env.example .env -
You can choose to edit
.envor just use as-is.
See the PostgreSQL Docker image documentation for more information.
Initialize the Database
Let's set up the database server, create the application database, and seed it with some data. You only need to do this the first time you set up your development environment.
npm run db:init
ℹ️ If you ever need to start over with the database, you can run this command again which will delete your existing data and start from scratch.
Start your Development Environment
The following command will start up the postgres container with Docker Compose Start the backend server Start the frontend server
npm start
Visit http://localhost:3000.
Shut Down the Development Environment
Ctrl-Cto stop the Express and React development servers.- To stop and destroy the PostgreSQL Docker container run. (Don't worry, your data is safe.)
`npm run db:stop`
Need to Start a psql Session?
npm run psql
Technologies:
- PostgreSQL, Object-Relational Database
- Express, backend
- React, frontend
- NodeJS, serving Express and React
Application Programming Interfaces:
- Auth0 (Securing Single Page React App)
- Auth0 (Securing Backend - Authorization)
- Plant Hardiness Zones (Walkdoj)
Data Collected From
Minimal Viable Product:
Google Doc for MyGarden Project development
MVP:
- Easy secure login with Google account or Sign Up.
- Based on user’s zipcode input, display user’s zone.
- Display suggested plants based on user’s zone
- User can save plant selections
Future Features:
- If user opts for Indoor growing, display plants that don’t need full sun
- User can group plant selections
- User can name plant groupings (containers)
- Plant companions will be displayed
- Plant Groupings will display care instructions per group
- Soil type, watering, light, fertilizer needs
- Spacing, if necessary
- Links, with disclaimers, to helpful articles
- Notify user of upcoming significant changes in weather
- Harsh weather conditions expected //edge cases
- Watering reminders
- Coverings for Heat waves/Frost
- Maintenance Tracking
- Timer/Scheduling
- Watering
- Light
- Fertilizer
- Transplanting Needs
- Crop rotation
- Repotting
- Timer/Scheduling
Technical Risks:
- Exploring external API calls.
- Auth0 is said to be difficult to set up.
- Cross-referencing APIs for data extraction.
- Figure out appropriate conditionals to display suggestions for plants.
- Design clean display content with CSS
Database Schema:

User Flowchart:

Wireframes:
