26
Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor

Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor

Embed Size (px)

Citation preview

Page 1: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor

Rolando GaytanClay Schumacher

Josh WeisskopfCory Simon

Aaron Steil (Reiman Gardens) – ClientDr. Tien Nguyen - Advisor

Page 2: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor

Reiman Gardens, the client, needs to keep detailed records of all plants in the botanical gardens.

The current plant database is not user friendly and does not interface well with other software and equipment.

Page 3: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor

BG-Base

BG-Map

KE EMu

Page 4: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor

System will use a web-based client-server architecture

Emphasis on intuitive user interfaces

Provide access from existing AutoCAD maps

Generate files compatible with label-making software

Page 5: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor

HTTP ServerWeb Pages

Database

Queries Responses

Web Browser

Server

Web Browser

Registered Client

AutoCAD Map

Label Makers

Public User

Registered User

Public Client

Page 6: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor

End-user environment ◦ End-users: staff and volunteers◦ Access through a web browser◦ Likely at their desk in the offices◦ May also provide limited access to the general

public

Host environment ◦ Web server with PHP 4.3.2+ and MySQL 4+◦ Regular backups

Page 7: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor

FR-1The product shall store records. FR-1.1 The product shall have eleven

types of records: Accession, Genus, Species, Supplier, Location, Reference, Family, Photo, Propagation, User, and Group.

Page 8: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor

FR-2The product shall allow users to manage records.

FR-2.1 The product shall allow users to create records.

FR-2.2 The product shall allow users to edit records.

FR-2.3 The product shall allow users to view records.

FR-2.4 The product shall allow users to search records by any field in the record.

Page 9: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor

FR-3 The product shall provide user accounts. FR-3.1 The product shall authenticate

users with a username and password. FR-3.2 The product shall have at least two

user groups: Administrators and Staff FR-3.3 The product may have a third user

group for public users. FR-3.4 The product shall provide an

administrative interface for the management of its users.

Page 10: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor

FR-4The product shall allow multiple concurrent users to access the database.

FR-5The product shall export files to be used with the most commonly used label-maker.

Page 11: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor

Input: HTTP Page Requests Output: HTML, CSS, JavaScript,

and Labelmaker Files

Page 12: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor
Page 13: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor
Page 14: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor
Page 15: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor
Page 16: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor

CakePHP is a rapid development framework for PHP◦ Based on Model-View-Controller

architecture pattern◦ Provides abstraction layers for different

databases◦ Provides components for common tasks

(ex: input sanitizing)◦ Good documentation and active

community◦ Object oriented design

Page 17: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor

Views are visual presentations of model data

Each view has a specific function◦ Login◦ Welcome / Home◦ Administration◦ Photo Upload◦ Help Page

Page 18: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor

Views continued◦ Advanced Search◦ Export to File◦ Edit Record◦ Search Results◦ View Record◦ Printable Report◦ Add New Record

Page 19: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor
Page 20: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor

Each controller will be associated with a particular model

Controllers will gather data from the models, manipulate the data, and pass it to the views.

Controllers will use components to perform common actions.

Page 21: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor

In CakePHP, components are similar to controllers except they are not associated with a model.

Components◦ Authentication: Based on obAuth component◦ Labelmaker File Generation: Based on Excel

helper

Page 22: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor

Excel spreadsheet document with the following columns◦ Accession Number◦ Genus◦ Specific Epithet◦ Cultivar◦ Common Name◦ Family Name

Existing CakePHP helper will create Excel file

Page 23: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor

Administrator Staff Public

Models

Accession RWCD RWC R

- accession_num RW RW -

- num_plants RW RW -

- how_received RW RW -

- display_label_present RW RW -

- notes RW RW -

Species RWCD RWC R

- notes RW RW -

Page 24: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor

Server Hardware Specification◦ The product will require an HTTP server + 50 GB of database space.◦ Depending on scalability for the future, the following specifications are recommended:

Under 25 concurrent users: 256mb RAM 1 GHz CPU Pentium 4

25 – 100 concurrent users: 512mb RAM Dual-core 2.4 GHz Pentium Xeon or equivalent

Over 100 concurrent users: 4 GB RAM Dual-core 2.4 GHz Pentium Xeon or equivalent

Client Hardware Specification◦ The end-user will require a computer running Internet Explorer 7 or Firefox 2◦ Minimum Requirements: 233 MHz processor or higher, 64mb RAM, Super VGA or higher

resolution monitor, internet connection, mouse, and keyboard

Page 25: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor

The product’s model view controller architectural modules will be unit tested.

The product’s model view controller architectural modules will be black box tested.◦ Model

Each table in the database will have a PHP class representation that will have to be tested. A basic test includes loading the database with data and ensuring that the model is able to

load the data into corresponding variables. Relationship enforcement needs to be tested.

◦ View Inputs: Data from the model & instructions from the controller Outputs: On screen rendering of model, update requests to the model, and user

interactions to the controller◦ Controller

Inputs: User interactions from the view Outputs: View selection to the view and state changes to the model

Page 26: Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor

Completed◦ Requirements◦ Detailed design◦ Project management and source control software

Future Work◦ Draw up implementation milestones◦ Code and integrate◦ Release incremental test builds◦ Perform final tests