openfarmcc / Crops

Discussion on how to best manage a Crops data provider so that it's most widely useable.
Other
22 stars 1 forks source link

User stories #9

Open andru opened 8 years ago

andru commented 8 years ago

A place for our user stories for the crop db/schema project.

andru commented 8 years ago

Hortomatic

As a crop planner and tracker, Hortomatic wants to present the user with a wide selection of common garden and field crops to choose from to plant in their growing space. The focus will be largely on heirloom genetics but also the kind of F1 strains you're likely to come across in a garden store. As such, while the user is interested in one plant at a time, the database needed will contain a large number of crops for which there is an abundance of data from varied sources.

It wants users to be able to search for crops by common name in different languages or with different common taxonomic nomenclatures (Brassica oleracea var. italica or Brassica oleracea Italica Group). Hortomatic should also be aware of the taxonomy for the crop, for things like displaying a generic genus-level icon if none is available for the exact crop, and for calculating planting rotations.

Once a plant is chosen by the user, Hortomatic wants to be able to offer an estimate of various important life stages to the user, and of the appropriate harvest periods for different parts/crops of the plant. Ideally, the data should be presented in a form that allows the app to derive from it a custom planting schedule based on their climate and chosen planting date. It would like to be able to offer the user basic environmental requirements like PH, moisture, temperature tolerances etc, in order to compare to current weather to requirements and offer the user care advice.

Over time, Hortomatic will represent a crowd-sourced data collection of it's own which it would like to contribute back to the project as an additional source of observed phenology timing data.

Practical Plants

Practical Plants maintains uses data, environmental preferences and tolerances, images and name data on over 7000 plants. This feels like too much for one small project, and it would like to focus efforts on stewarding just a niche database of traditional or unusual uses for a wide variety of wild and cultivated plants. It would prefer to be able to import environmental and name data from other sources, while also contributing edits back to those sources from it's users where appropriate. Names should be multilingual. Environmental data should have climate context.

It would like to be able to share the uses database as a simple flatfile export easily consumable by other tools to enhance the usefulness of it's data to the community.

mstenta commented 8 years ago

farmOS

farmOS is a whole-farm planning, management, and record-keeping application. It manages crops/plantings, livestock, equipment, and more types can be added via modules.

With regards to crops/plantings: farmer currently has the ability to build their own taxonomy of "Crops" in farmOS, and those are instantiated as "Plantings". This is manual data entry right now.

The goal as it relates to this discussion: to be able to import individual crop definitions or groups of definitions, with two end-goals: 1) to make it easier to populate your own individual farm's crop list, and 2) to also pull in some data points that the software can use to help automate the process of planning plantings - when to seed, how closely, when to expect first harvest, duration of harvest, those sorts of things will be the derivative functions.

farmOS will not provide a default set of crops, or make any assumptions about what you will be growing. It will be up to the user to define those things, and import the ones that are needed. A set of modules will probably be written to ease this process: ie, by creating a UI that provides easy searchable, one-click-import access to publicly available data sets provided by seed companies or other maintainers.

The catalog of "crops that are being grown" will become an archive of all the crops that the farm has grown in the past, are growing currently, and will potentially grow in the future. As they are referenced on specific plantings, a detailed record will be developed, which can be used for organic certification and other record-keeping requirements.

Seed suppliers

Similarly, seed companies can provide their catalogs in the standardized format. This can then be used in a few ways:

1) Apps like farmOS can access their datasets and offer them in the UI for import.

2) The seed companies themselves can use the data files to auto-generate their own website and catalog.

3) Other third-party databases, ie OpenFarm, can also pull in their data to build comprehensive databases of cultivars including supplier-specific ones.

roryaronson commented 8 years ago

OpenFarm

OpenFarm started out (and still is) a place for two types of data: 1) Crop data, which we generally regard to be factual, indisputable data. This data is edited wiki-style by the entire community, and there is only one entry in the database for each crop. 2) Growing Guides, which are single-author documents that explain a technique for how to grow a Crop. Guides are generally non-factual data because there is no "right way" to grow a Crop. Because of this, there can be unlimited Guides created for each Crop.

As OpenFarm has grown, it has become monolithic in nature. The team has also come to find that many other people and apps want to partake in creating/using/maintaining a shared open crop database - as that work would otherwise need to be duplicated for each app. This has moved us to spin-off the crops database into its own project so that it can more easily be improved upon and shared with others, while simplifying OpenFarm's core product to be all about the Guides.

So, we have two user stories for how OpenFarm and its users will utilize the Crops database:

Guide Creation

An 'expert' decides they want to share their knowledge of how they grow a Crop. From the guide creation flow, they search for and select a Crop. Scientific, common, and local names in any language should work, and a type-ahead should provide a photo or icon of the crop. The author will then fill out their guide using their own knowledge. When the guide is rendered to readers, a small amount of basic factual Crop information may also be displayed such as alternative namings, photos/icons, spread, height at maturity, etc.

Crop/Guide Searching/Viewing

A user of OpenFarm will find Guides and Crop info by searching OpenFarm for the Crops they are interested in. Again, scientific, common, and local names in any language should work, and a type-ahead should provide a photo or icon of the crop. The "Crop page" on OpenFarm displays basic factual information about the Crop and lists all of the Guides written for that Crop. Additionally in the future, it would be nice to pull in more Crop info from other sources (such as usage data from Practical Plants)

(@simonv3 feel free to edit this)

roryaronson commented 8 years ago

FarmBot

FarmBot is an open-source CNC farming machine that plants seeds, waters them, detects and removes weeds, and uses sensors to learn about the plants, soil, and the environment. It is controlled and 'programmed' by the user using a web app that we hope is sufficiently abstracted for fast and easy farming.

To do this, we're developing a drag-and-drop farm designer (a-la Farmville) where the user can graphically design their farm. The user will search for a crop they want to plant. Scientific, common, and local names in any language should work, and search results should return an icon of each crop. When the user selects a crop, they should be displayed basic factual info such as spread, height, etc, as well as photos and the icon. Additionally, the crop will be searched for on OpenFarm in order to find Guides written for that Crop. To "plant" the crop, the user will drag the icon into the map view. The user will then "apply" an OpenFarm growing guide to that crop (if there is a suitable one available), or "apply" a FarmBot 'growing regimen' to it (which is the FarmBot app's version of an OpenFarm growing guide scoped to FarmBot's hardware abilities and created by the FarmBot user).

Ideally, OpenFarm Guides and FarmBot Regimens will be inter-operable, so that FarmBot users can use OpenFarm Guides (as mentioned) and so that FarmBot users who create regimens can contribute them to OpenFarm.

Mageistral commented 8 years ago

Not Yet Named App

pure data

The main goal of the supposed app is to help people, amateur or even pro (more in the permaculture spirit). The main help was to design and plan the crops with all types of associations (what to put at the same time, not put at the same time, not after another). Only practical information/data in the central database, not leaf colors for example but taxonomy (not so useful for end-gardeners but structuring), water needs, rusticity, preferred ph, and some information (not yet designed) around the ideal way to seed like depth, how to plant, when to plant. This part was supposed to be participative, all fixed constants but the vegetables were supposed to be completed/created by people, and me a lot for sure. Also, support for property overloading for some species. ex : the "tomatoes" are described as they need 40cm around but (that's an example !) the "Giant tomato" inherits of all tomatoes properties except "space around" that is overloaded by he value 60cm. Every possible string is internationalized by locale + translation table.

gardeners data

The gardeners have some kind of profile with some information about location and climate. The idea was also to describe the plots with other information like wind, exposure, type of soil, climate. On each plot, set the size and be able to design it giving some preference on what crops the gardener wants to see or putting some on the design and click something "Fill the rest with my favourite crops". So, in the gardeners profile, can be saved the ordered favourites crops of the gardener. The data and plots design are stored to be reused the year after not to mess with the crops that should not be done after another one. Also, he can mark what was really wrong, what worked well even if it was not recommended, why not. As long as we have the information, put reminders in some kind of agenda would have been great. With the gardeners data, it could be interesting to do some stats to find some unusual working/not working associations, influence of climate or soils.

That said, this sounds very similar to Practical Plants / Hortomatic ... a year late :D

And not so much in a social media style, really efficient presentation. I think that someone that likes to spend time in his garden doesn't want to spend so much time on his computer clicking everywhere and chatting a lot, there are forums for it :) but maybe I'm wrong and people would love to tweet "Hey, look at ... my design ?" Mmmhhh, not sure.