Garden Design Software

Table of contents

Garden Design Software
Author
Introduction
System Flowchart
Q: So, what is this Search Engine? A: Search Tab and Details Tab
The Gardens Tab
The Objects Tab
The Design Tab
Contents of the Package

Garden Design Software

Author

Ron Savage, aka iFlower on the Flower Forums.

Introduction

I'm inching towards release of a free software package, written in Perl, which will be available from both my web site and from my public repository. The latter is hosted by volunteers, in Finland, even though I live in Melbourne, Australia. Such is the nature of the internet.

This article discusses some of the features of the package.

System Flowchart





Data about the flowers is manually entered into text files.
Text (*.csv) files were chosen so I could bootstrap the whole system.
Also, I'm hopeful we could build a communal database by sharing such files.







The files are imported into a database
using the free program SQLite.




(On the left) The Search Engine is discussed below.
(On the right) The Export code can re-create the *.csv files, and it can generate:
o The Flower Catalog,
o The Front Garden Layout, and
o The Back Garden Layout.

Each flower has its own page, and all such pages
are pointed to by the Catalog and the Layouts

via clickable thumbnail images.


Figure 1 - The System Flowchart

Q: So, what is this Search Engine? A: Search Tab and Details Tab

Note: These screenshots were rigged for clarity by using a very large font. Also, as development proceeds, screenshots further down the page contain newer tabs, e.g. Gardens.

Let's step thru the process of searching, and viewing the search results.

Screenshot 1 - The Default Search Screen
Screenshot 2 - Search Results after Typing in 'chor'.
After clicking the first result's thumbnail, the 5 sub-tabs under 'Details'
- 'Flower' to 'URLs' - are filled in automatically and
the 'Flower' tab gets the focus


Figure 2 - The Search Tab

Screenshot 3 - The Flower Tab.
The tab is the only one of the five which has Reset and Save buttons.
Clicking either one affects all fields on all 5 sub-tabs
Screenshot 4 - The Attributes Tab
Screenshot 5 - The Images Tab.
Image files are found, as is the thumbnail, by combining
'homepage_dir' and 'image_dir' from the constants table,
with a cleaned-up version of the flower's Latin name.
Cleaned-up basically means spaces are replaced by full-stops, and
multiple, adjacent full-stops, from cases such as
'Aquilegia flabellata var. pumila alba', are replaced by a single one.
Hence the thumbnail for that is assumed to be named
'Aquilegia.flabellata.var.pumila.alba.0.jpg'.
There is provision for 20 images on the tab, but that number is in the constants table.
Screenshot 6 - The Notes Tab.
There is provision for 20 lines of notes, but that figure is also in the constants table.
Screenshot 7 - The URLs Tab.
There is provision for 10 URLs, and that figure is also in the constants table.
Screenshot 8 - The Help Tab for Searching


Figure 3 - The Details Tab

The Gardens Tab

Gardens are defined by the name of the property where they are located, and by their name.

This tab displays all existing gardens per property, and allows defining new ones.

The point is that when the Design tab is finished, drag-and-drop will be used for both gardens and objects (next) to build the layout image of your garden.

A list of property/garden combinations from the database is displayed in the left.
Autocomplete is used to find the property and garden names, if any, when adding.
After a new property/garden pair are added, the 'On file' list is updated.


Figure 4 - The Gardens Tab

The Objects Tab

Objects refers to passive tiles which are used to represent garden features. An object becomes a feature when placed at a specific location within a given garden. Before placement, it's colloquially known as 'junk in the shed'.

This tab will allow you to edit existing tiles and generate new ones.

The tiles are called passive because when the export software outputs the layouts - as *.svg files - for each garden, such tiles can't be clicked, whereas the flower thumbnails are always linked to each flower's web page.

You can see my front garden and back garden layouts on-line.

After a color is chosen by any of the 3 methods, a swatch is displayed
(currently hidden by the spectrum) against the text 'Color chosen'.


Figure 5 - The Objects Tab

The Design Tab

This will provide an interactive version of the layouts referred to elsewhere.

Not implemented yet.

Design refers to the acts of placing (a) thumbnails of flowers, and (b) objects' tiles, within a grid laid over a virtual garden.

Contents of the Package

o The Source Code

Yes. Being a standard Perl package (aka distro) you get the source code of every component. This includes the source code of various small Perl programs, each just a few hundred bytes in size.

There are no pre-compiled - and hence unreadable - components, such as *.exe files, which you might be used to downloading.

o A Set of *.csv Files

The package includes a set of *.csv (Comma-Separated Variables) text files containing details of the plants in my garden. These files are imported into the database to bootstrap the system. The package also includes an export component which generates these:

Since these files only contain partial information on my flowers, I'm hoping you can either help me find a public database of flower data I can incorporate into my package, and thereby ship to all those who download my program, or perhaps everyone using the program can enter the details of a few flowers, and I can combine all your data into a new database for another free download.

o The Flower Catalog

This is a HTML table which the code can incorporate into a stand-alone page, or which can be embedded in another web page, as I do here.

o A Set of Garden Layout Pages

In this case the output is one *.svg image for each garden. Here they are for my front garden and for my back garden.

o Various other data files

One of these is the database produced by the import component, and with which all other components interact.

o A Search Engine

Yes - You get a search engine specifically written to work with the database.