powerplant:software_specification

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revisionBoth sides next revision
companion_planting:powerplant:software_specification [2017/12/10 21:08] – [Product Functionality] aimeejuliapowerplant:software_specification [2018/12/03 21:11] aimeejulia
Line 120: Line 120:
 ==== Product Functionality ==== ==== Product Functionality ====
    
-TODO: Add major functions that the product must perform or must let the user perform.+>TODO: Add major functions that the product must perform or must let the user perform.
  
 === Must Have === === Must Have ===
Line 191: Line 191:
   * This should represent the function of creating multiple beds from a list of seeds/plants you want to plant   * This should represent the function of creating multiple beds from a list of seeds/plants you want to plant
   * TODO   * TODO
-    * Backend: Import plant data from PFAF database, import basic plant relationship data (firebase), create HTTP API call to get compatible groups from a big group of plants.+    * Backend: Import plant data from practicalplants database, import basic plant relationship data (firebase), create HTTP API call to get compatible groups from a big group of plants.
  
 === Detailed function description. === === Detailed function description. ===
Line 216: Line 216:
 == Suggestions == == Suggestions ==
  
-* Provide suggestions for adding specific crops to existing beds +  * Provide suggestions for adding specific crops to existing beds 
-** User can ask for crop suggestions when adding crops to a garden or bed +    * User can ask for crop suggestions when adding crops to a garden or bed 
-* Provide suggestions for adding specific crops to a specific bed +  * Provide suggestions for adding specific crops to a specific bed 
-** User can also ask for suggestions for crops to add to a specific bed +    * User can also ask for suggestions for crops to add to a specific bed 
-* Must have at least one user-selected crop to provide suggestions+  * Must have at least one user-selected crop to provide suggestions
  
 == Notifications == == Notifications ==
  
 Notify users of tasks that should be done for each garden/bed/crop on a given day Notify users of tasks that should be done for each garden/bed/crop on a given day
-* Email notifications +  * Email notifications 
-** should be opt out by default +    * should be opt out by default 
-** include weekly summary of upcoming tasks+    * include weekly summary of upcoming tasks
  
-* Push notifications +  * Push notifications 
-** Need to be enabled in browser (would only work on desktop) +    * Need to be enabled in browser (would only work on desktop) 
-** include events happening on the current day+    Include events happening on the current day
  
 == Tasks and Actions == == Tasks and Actions ==
  
-* Right now, this would include planting, transplanting, and harvesting - only the major events +  * Right now, this would include planting, transplanting, and harvesting - only the major events 
-* Users can add custom tasks from a predefined set of actions (or "other"+  * Users can add custom tasks from a predefined set of actions (or "other"
-** Tasks are associated with a location, bed, or crop +    * Tasks are associated with a location, bed, or crop 
-** Repeatable tasks +    * Repeatable tasks 
-* Mark tasks as complete, or postpone or ignore them+  * Mark tasks as complete, or postpone or ignore them
  
 == Schedule == == Schedule ==
  
 Find optimal planting schedule for a target bed (with at least one user picked crop) Find optimal planting schedule for a target bed (with at least one user picked crop)
-* When adding a crop, users can get suggestions for when to plant it based on the duration of growth +  * When adding a crop, users can get suggestions for when to plant it based on the duration of growth 
-* Goal is to maximize the overall yield and allow for consistent harvest throughout the year+  * Goal is to maximize the overall yield and allow for consistent harvest throughout the year
  
 Information accessible on timeline of different stages and locations of growth (i.e. when to grow in greenhouse and transplant them outside) Information accessible on timeline of different stages and locations of growth (i.e. when to grow in greenhouse and transplant them outside)
  
-* Users can view the schedule for a location or bed as a chart +  * Users can view the schedule for a location or bed as a chart 
-* Growth periods are shaded in bars, single events are represented as lines +  * Growth periods are shaded in bars, single events are represented as lines 
-* Should allow the user to see, at a quick glance, what is growing and when things can be harvested +  * Should allow the user to see, at a quick glance, what is growing and when things can be harvested 
-** Also be able to identify gaps in the schedule which could be filled +    * Also be able to identify gaps in the schedule which could be filled 
-* Should also show information about compatibility interactions +  * Should also show information about compatibility interactions 
-** Needs to be intuitive and simple to understand, obvious from one look at the schedule+    * Needs to be intuitive and simple to understand, obvious from one look at the schedule
  
 == User Contributions == == User Contributions ==
Line 261: Line 261:
  
 Creating Guides should link into OpenFarm directly - Create Guide. Creating Guides should link into OpenFarm directly - Create Guide.
-* pro: less work for developer +  * pro: less work for developer 
-* contra: might be confusing for the user+  * contra: might be confusing for the user 
 Editing Guides should be put into powerplant "centralized improved guide" (except it is your own guide?). This avoids parallel versions of the same guide edited by different users, and instead puts all the edits in one place. Editing Guides should be put into powerplant "centralized improved guide" (except it is your own guide?). This avoids parallel versions of the same guide edited by different users, and instead puts all the edits in one place.
 Editing Cropinformation should be edited in OpenFarm directly. Editing Cropinformation should be edited in OpenFarm directly.
Line 269: Line 270:
 === Terminology === === Terminology ===
  
-Location: Group of gardens whose permaculture zones are defined relative to a common zone 0 +**Location**: Group of gardens whose permaculture zones are defined relative to a common zone 0 
-Garden: combination of beds in the same vicinity and permaculture zone + 
-Bed: Section in a garden (can be a greenhouse, a pot or a patch of soil) +**Garden**: combination of beds in the same vicinity and permaculture zone 
-Crop: Specific instance of a crop that will be planted in a bed + 
-Transplant: action of moving a crop from a pot (non-bed) to a bed +**Bed**: Section in a garden (can be a greenhouse, a pot or a patch of soil) 
-Zone/Permaculture Zone: Ordered area from 0 to 5 by frequency of visits/maintance requirement (/often also related to proximity)+ 
 +**Crop**: Specific instance of a crop that will be planted in a bed 
 + 
 +**Transplant**: action of moving a crop from a pot (non-bed) to a bed 
 + 
 +**Zone/Permaculture Zone**: Ordered area from 0 to 5 by frequency of visits/maintance requirement (/often also related to proximity)
  
-=== 2. Provide a Data Flow Diagram of the system to show how these functions relate to each other. ===+=== Provide a Data Flow Diagram of the system to show how these functions relate to each other. ===
  
 Data flow diagram for cropinformation/croprelationship data (from openfarm) Data flow diagram for cropinformation/croprelationship data (from openfarm)
Line 376: Line 382:
  
 > TO DO: Describe what kind of manuals and what kind of help is needed for the software you will be developing. > TO DO: Describe what kind of manuals and what kind of help is needed for the software you will be developing.
-List the user documentation components (such as user manuals, on-line help, and tutorials) that will be delivered along with the software.//+List the user documentation components (such as user manuals, on-line help, and tutorials) that will be delivered along with the software.
  
-Need to have user documentation. Usability will be severly limited without. Need to have in depth descriptions of how to input data, what screens should look like, how to interpret output. Need to document things before creating them.+Need to have user documentation. Usability will be severely limited without. Need to have in depth descriptions of how to input data, what screens should look like, how to interpret output. Need to document things before creating them.
  
-* User manual +  * User manual 
-* FAQ +  * FAQ 
-* First time user prompts +  * First time user prompts 
-* Community talking points +  * Community talking points 
-* Chat rooms (like FarmOS) +  * Chat rooms (like FarmOS) 
-* Tutorials for most exemplary tasks (Videos, ...)+  * Tutorials for most exemplary tasks (Videos, ...)
  
 ===== Specific Requirements ===== ===== Specific Requirements =====
Line 398: Line 404:
 [[https://medium.com/@marcintreder/the-minimum-viable-design-system-75ca1806848a]] [[https://medium.com/@marcintreder/the-minimum-viable-design-system-75ca1806848a]]
  
-* Lots of rounded rectangles to contain components +  * Lots of rounded rectangles to contain components 
-* Font size standards based on Marvel prototype (maybe change to be based on screen size in the future) +  * Font size standards based on Marvel prototype (maybe change to be based on screen size in the future) 
-** Main page title: 26pt +    * Main page title: 26pt 
-** Subtitle: 18pt +    * Subtitle: 18pt 
-** Body text: 14pt +    * Body text: 14pt 
-* Sidebar menu accessible from any screen which shows the current location and allows jumping to any screen above it in the hierarchy (All Gardens -> Garden Dashboard -> Bed Dashboard -> Crop) +  * Sidebar menu accessible from any screen which shows the current location and allows jumping to any screen above it in the hierarchy (All Gardens -> Garden Dashboard -> Bed Dashboard -> Crop) 
-* Gardens and Beds contain 3 subscreens (fragments?+  * Gardens and Beds contain 3 subscreens (fragments?
-** Dashboard, Beds/Crops, Schedule +    * Dashboard, Beds/Crops, Schedule 
-** Dashboard shows relevant tasks +    * Dashboard shows relevant tasks 
-** Beds/Crops shows all Beds/Crops contained within the Garden/Bed +    * Beds/Crops shows all Beds/Crops contained within the Garden/Bed 
-** Schedule shows history of all past, present, and future crops for the Garden/Bed +    * Schedule shows history of all past, present, and future crops for the Garden/Bed 
-* Any time there is a title/heading of an element containing a Garden, Bed, or Crop, it will have a small drop down menu next to it +  * Any time there is a title/heading of an element containing a Garden, Bed, or Crop, it will have a small drop down menu next to it 
-** Menu items: Edit, delete +    * Menu items: Edit, delete 
-** This is the main mechanism by which user can change settings/status of a specific Garden, Bed, or Crop+    * This is the main mechanism by which user can change settings/status of a specific Garden, Bed, or Crop
  
 === View Description === === View Description ===
Line 434: Line 440:
 > TO DO:  Describe: the connections between the product and other specific software components (name and version),  databases,  operating systems (Windows? Linux? Etc…), tools, libraries and integrated commercial components.  > TO DO:  Describe: the connections between the product and other specific software components (name and version),  databases,  operating systems (Windows? Linux? Etc…), tools, libraries and integrated commercial components. 
  
-* FarmOS +  * FarmOS 
-** FarmOS users can provide the url of their server and save/load all of their data BESIDES crop guides and crop information from there +    * FarmOS users can provide the url of their server and save/load all of their data BESIDES crop guides and crop information from there 
-** There will have to be a moderate amount of translation between powerplant data format and FarmOS data format +    * There will have to be a moderate amount of translation between powerplant data format and FarmOS data format 
-** Rather than building a seperate FarmOS module, we will make our web app compatible with FarmOS +    * Rather than building a seperate FarmOS module, we will make our web app compatible with FarmOS 
-** A FarmOS module could be possible, but requires much more time and expertise than it is worth at the moment +    * A FarmOS module could be possible, but requires much more time and expertise than it is worth at the moment 
-* Openfarm.cc +  * Openfarm.cc 
-** Openfarm stores CropRelationships, Crop Guides, and Crop Information +      * Openfarm stores CropRelationships, Crop Guides, and Crop Information 
-** Powerplant users can choose to register their accounts with Openfarm as well +      * Powerplant users can choose to register their accounts with Openfarm as well 
-** Users who do this will be able to save/modify this data +      * Users who do this will be able to save/modify this data 
-** All users (registered or not), while load this data from Openfarm+      * All users (registered or not), while load this data from Openfarm
  
 > TO DO: Identify data items or messages coming into the system and going out and describe the purpose of each.  > TO DO: Identify data items or messages coming into the system and going out and describe the purpose of each. 
  
-* FarmOS specs go here +  * FarmOS specs go here 
-* openfarm.cc specs go here+  * openfarm.cc specs go here
  
 > TO DO: Describe the services needed.  > TO DO: Describe the services needed. 
Line 454: Line 460:
 > TO DO: Identify data that will be shared across software components. > TO DO: Identify data that will be shared across software components.
  
-* need to look at what FarmOS stores and what we store +  * need to look at what FarmOS stores and what we store 
- figure out what we can store in FarmOS+  figure out what we can store in FarmOS
  
  
Line 462: Line 468:
 TO DO:  TO DO: 
  
-1. Describe the requirements associated with any communication functions required by this product, including e-mail, web browser, network server communications protocols, electronic forms.  +  - Describe the requirements associated with any communication functions required by this product, including e-mail, web browser, network server communications protocols, electronic forms.  
- +   
-2. Define any pertinent message formatting. +  Define any pertinent message formatting. 
  
 ==== communication standards that will be used, such as FTP or HTTP. ==== ==== communication standards that will be used, such as FTP or HTTP. ====
Line 508: Line 514:
 === List of Use case === === List of Use case ===
  
- * a user has an empty garden, and they want to know what they should plant +   a user has an empty garden, and they want to know what they should plant 
- * a user has a non-empty garden, and they want to know what they should add to it +   a user has a non-empty garden, and they want to know what they should add to it 
- * user wants to track their garden's progress/crops planted +   user wants to track their garden's progress/crops planted 
- * user has some data they want to contribute +   user has some data they want to contribute  
- * cool to have +   cool to have 
- *user wants to manage a garden with multiple people working on it+      user wants to manage a garden with multiple people working on it
  
 > TODO: Add more use cases > TODO: Add more use cases
Line 521: Line 527:
 > TODO: Create use case diagrams involving each of the possible types of users > TODO: Create use case diagrams involving each of the possible types of users
  
- +TODO: Convince openfarm to enhance companionship model or find a suitable ruby on rails developer
-General TODO: +
-    Convince openfarm to enhance companionship model or find a suitable ruby on rails developer+
          
 [[https://drive.google.com/file/d/0BwEWI1CO-iYrWnhPV2xJRjZtUkU/view?usp=sharing|Diagrams]] [[https://drive.google.com/file/d/0BwEWI1CO-iYrWnhPV2xJRjZtUkU/view?usp=sharing|Diagrams]]
  
  • powerplant/software_specification.txt
  • Last modified: 2019/04/01 21:46
  • by ecohack