Download - Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06
![Page 1: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/1.jpg)
Clay Schumacher Josh Weisskopf Cory Simon
Advisor: Tien Nguyen
Reiman Gardens Plant Database
Dec 08-06
![Page 2: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/2.jpg)
Planning
![Page 3: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/3.jpg)
Reiman Gardens◦ Occupies 14 acres on the ISU campus◦ Indoor and outdoor gardens, five greenhouses◦ Keep detailed records of all plants in the gardens
Existing Database System◦ Difficult to use ◦ Isolated from other software and equipment◦ Inaccessible to the public
Problem Statement
![Page 4: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/4.jpg)
Create a new plant database for Reiman Gardens:
◦ Primary: Plant record management Friendly user interface Low Cost
◦ Secondary: Create files for label making machines Allow public access Print forms for use in the gardens
Project Goal
![Page 5: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/5.jpg)
The product shall store nine types of records: Accession, Genus, Species, Supplier, Location, Reference, Family, Photo, and Propagation
The product shall allow users to create, edit, view, and search records
The product shall have three user groups: administrator, staff, and public
The product shall export files containing plant information to be printed by label makers
Basic Requirements
![Page 6: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/6.jpg)
Market SurveyBG-Base
![Page 7: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/7.jpg)
Market SurveyKE EMu
![Page 8: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/8.jpg)
Shared Drive Database◦ Similar to existing system, host database on the
existing shared drive at Reiman Gardens
Local Server◦ Use a web based approach hosted on a new
server at Reiman Gardens.
Design Alternatives
![Page 9: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/9.jpg)
Web based system hosted off site◦ Capable of satisfying all requirements◦ Familiar interface for users◦ Tested and supported design
LAMP server solution stack◦ Linux operating system◦ Apache web server◦ MySQL database management system◦ PHP scripting language
Final Design Concept
![Page 10: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/10.jpg)
Positive Plant record management Relatively low cost Customized user interface Public access Customized file output
Negative- Cost: previous system was free- Capability: commercial systems have more
functionality
Design vs. Goals
![Page 11: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/11.jpg)
Basic Diagram
HTTP Server PHP
Database
Queries Responses
Server
Web Browser
ClientLabel Makers
Public User
Registered User
![Page 12: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/12.jpg)
Schedule Initially had four members – scheduled 135
hours for each 1st Semester, 90 hours for each 2nd semester
Created WBS for each semester and assigned tasks to each group member◦ Major headings:
Project Plan Design Document Implementation User Manual Testing
![Page 13: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/13.jpg)
Schedule After First Semester We had produced a basic system design
◦ Ready for development
Total hours to this point:◦ 538 (out of 540 scheduled)◦ Rolando: 123◦ Clay: 134◦ Cory: 135◦ Josh: 146
Planned to finish implementation by Thanksgiving
![Page 14: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/14.jpg)
System Design
![Page 15: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/15.jpg)
Input/Output Specification
Input: HTTP Page Requests Output: HTML, CSS, JavaScript,
and Labelmaker Files
![Page 16: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/16.jpg)
User Interface Specification
Login Page
Welcome Page
Help Page
Search Results Page
Model Index Page
Add Record Page
View Record Page
Edit Record Page
![Page 17: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/17.jpg)
Software SpecificationModel-View-Controller
![Page 18: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/18.jpg)
CakePHP is a rapid development framework for PHP◦ Based on Model-View-Controller
architecture pattern◦ Easy installation and no configuration
required◦ Active community with useful forums◦ Object oriented design
Software SpecificationCakePHP
![Page 19: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/19.jpg)
Software SpecificationModels
Species
Genera
Families
Suppliers
GardensUsers
Nativities
Accessions
Alternative Names
Removals
Propagations
References
![Page 20: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/20.jpg)
All Models inherit from AppModel class◦ Defines defaults that can be overridden
Each class defines key fields and methods◦ Validation rules and error messages◦ Identifying field for auto complete◦ Input Cues◦ Related models◦ Visible fields and related models◦ Get display name function – for special names
CakePHP provides functions through model classes for retrieving/saving info from the DB
Software SpecificationModels
![Page 21: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/21.jpg)
AppController Superclass◦ Contains index, add, edit, and view◦ Contains search and autocomplete functions◦ Verifies authentication, access control
Additional Actions:◦ Accessions and Gardens: Export to Excel◦ Species: Upload Image, Remove Image, Full Image◦ Users: Login, Logout, Register, Reset Password
Unique Controllers◦ Species: Overwrites add, edit, view◦ Genus: Overwrites add, edit
Software SpecificationControllers
![Page 22: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/22.jpg)
Classes containing useful functions for controllers
Prebuilt components◦ Email: used by users controller◦ Auth, Session, Cookie: used for authentication
Custom components◦ Upload: used for uploading images
Software SpecificationComponents
![Page 23: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/23.jpg)
Views are the interface Layout
◦ Defined in one file and used everywhere◦ Header
Navigation, Search, Breadcrumbs◦ Footer
Content◦ Individually defined for each controller and action◦ Sandwiched between header and footer
CSS◦ Defined in one file and used everywhere◦ Dictates cosmetics (positioning, color scheme, etc.)
Software SpecificationViews
![Page 24: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/24.jpg)
Helpers◦ Classes that provide presentation logic◦ Standard CakePHP helpers:
HTML, Javascript, Form, Ajax, and Pagination◦ Additional helpers
Breadcrumbs and Excel .xls generation◦ Custom helpers
Add, edit, view forms and cosmetic markup Elements
◦ Reusable chunks of markup (mini-views)◦ Custom element standardizes search results,
indices
Software SpecificationHelpers and elements
![Page 25: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/25.jpg)
Label maker software accepts Excel files containing data
Fields:◦ Accession Number◦ Common Name, Genus, Specific Epithet◦ Variety, Subspecies, or Forma◦ Cultivar, Family◦ Nativity◦ Quantity, Size◦ Source, Date Planted, Notes
Software SpecificationExternal Interface
![Page 26: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/26.jpg)
Implementation and Testing
![Page 27: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/27.jpg)
Subversion◦ Version Control
Trac◦ Project management
Wiki Issue tracking Activity log
Development Tools Apache
◦ Web Server
Samba◦ File Sharing
![Page 28: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/28.jpg)
A basic process was followed for each team member to accomplish a task
Development Strategy
![Page 29: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/29.jpg)
Alpha Release – November 9◦ Basic functionality
Beta Release – December 3◦ Feature complete
Final Release – December 15
Release Strategy
![Page 30: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/30.jpg)
Imported taxa from USDA database to create a large load on the system
Over 400 families, 4000 genera, 38000 species
Highlighted deficiencies in code◦ Areas that weren’t limiting query results
Beneficial side-effect: system is pre-populated with taxa
Stress Testing
![Page 31: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/31.jpg)
Public users cannot edit any database information
Users must be registered by an administrator
Authenticated users use SSL for all data transfers
Authentication verified before any controller action is executed
Data Sanitization – CakePHP Component◦ Remove any HTML, PHP, Javascript, or SQL in input
Key ChallengesSecurity
![Page 32: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/32.jpg)
One of the most important functions for the database is the search
CakePHP provides model functions to search the database◦ Powerful, but unfamiliar – learning curve
A challenge to search for records of one model that are related to another
Key ChallengesSearch
![Page 33: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/33.jpg)
Basic search strings match as “and” terms delimited by spaces◦ To match a record must contain a match for each term (in
any field)
Which related models to search for each model is specified in the model class
User has finer grain control over results displayed – still refining
Code is modular for search and index◦ Search uses index of each model being searched◦ Use a common view element to display results
Key ChallengesSearch
![Page 34: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/34.jpg)
Individual Accession or all Accessions from a garden can be exported to an .xls file
File serves dual purpose◦ It can be printed and serve as a hardcopy report◦ It is compatible with label-making software
Key ChallengesExcel Files
![Page 35: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/35.jpg)
Conclusion
![Page 36: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/36.jpg)
Currently all requirements are met
The project is very nearly complete◦ Finish Search ◦ Create Help Page◦ Visual touch-ups
Expect to be finished by next week
Status
![Page 37: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/37.jpg)
Evaluated progress, reduced scope with client approval on November 13
Redesigned photo requirements◦ Previous requirement:
Independent model containing pictures associated with Gardens, Species, and Accessions
◦ Reduced requirement Photo field in Species model only
Scope Reduction
![Page 38: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/38.jpg)
Ticket Activity
9/14-9/20
9/20-9/27
9/28-10/4
10/5-10/11
10/12-
10/18
10/19-
10/25
10/26-11/1
11/2-11/8
11/9-11/15
11/16-
11/22
11/23-
11/29
11/30-12/6
12/7-12/13
0
5
10
15
20
25
30
35
40
45
50
Tickets CreatedTickets ClosedTotal Open Tickets
![Page 39: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/39.jpg)
Subversion Commit Activity
![Page 40: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/40.jpg)
Spring: 538
Project Hours Fall: 658
311.5
226.5
467.5
82.5
Hours per Phase
PlanDesignImplementTest
330
352
391
123
Hours per Person
Clay
Cory
Josh
Rolando
![Page 41: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/41.jpg)
BCWS: 900 hours @ $10/hour = $9,000 ACWP: 1,196 @ $10/hour = $11,960 BCWP: $9000 x 95% = $8,550
Cost Variance: 9,000 – 11,960 = -2,960 Schedule Variance: 8,550 – 9,000 = -450 Cost Performance: 9,000/11,960 = 0.753 Schedule Performance: 8,550/9,000 = 0.95
Evaluation
![Page 42: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/42.jpg)
Lost team member prior to implementation phase◦ Chose to proceed as planned
Significantly more hours ◦ Should have reassessed requirements and reduced project scope
Could have dropped public access and used a single log on system
Selected CakePHP during design phase◦ This was the right decision◦ Should have created CakePHP prototype during design phase
Would have helped the team understand capabilities and limitations CakePHP is complicated, would have jumpstarted our development
Lessons Learned
![Page 43: Clay SchumacherJosh WeisskopfCory Simon Advisor: Tien Nguyen Reiman Gardens Plant Database Dec 08-06](https://reader036.vdocuments.site/reader036/viewer/2022062801/56649e525503460f94b47e5d/html5/thumbnails/43.jpg)
Demo