Maintenance Manual - California State University,...

Preview:

Citation preview

- 1 -

Maintenance Manual

Senior Project

Mission Control

Product Owner

Charisse Shandro

Mission Meow Cat Rescue and Adoptions, Inc.

Team The Parrots are Coming

Eric Bollinger

Vanessa Cruz

Austin Lee

Ron Lewis

Robert Rico

Eric Wong

- 2 -

TABLE OF CONTENTS

Introduction .............................................................................................................................. 7

Implementation Tools and Technologies ............................................................................... 7

User Interaction ........................................................................................................................ 8

1. User Management ............................................................................................................. 8

○ Description ...................................................................................................................... 8

○ Creation........................................................................................................................... 8

○ Editing ............................................................................................................................10

○ Deletion ..........................................................................................................................12

..............................................................................................................................................13

○ Adding Phone Numbers .................................................................................................14

○ Editing Phone Numbers ..................................................................................................14

○ Removing Phone Numbers .............................................................................................14

○ Promotion .......................................................................................................................14

○ Demotion ........................................................................................................................16

○ Create Adopter Profile ....................................................................................................18

○ Create Foster Profile ......................................................................................................20

○ Uploading Photo .............................................................................................................22

○ Deleting Photos ..............................................................................................................22

○ Default Photo .................................................................................................................22

2. Cat Management ..............................................................................................................24

○ Description .....................................................................................................................24

○ Creation..........................................................................................................................24

..............................................................................................................................................25

..............................................................................................................................................26

○ Editing ............................................................................................................................27

○ Deletion ..........................................................................................................................29

○ Adding Tags ...................................................................................................................32

○ Removing Tags ..............................................................................................................32

○ Adding a Foster Home ....................................................................................................32

○ Adding an Adopter ..........................................................................................................34

..............................................................................................................................................36

- 3 -

○ Adding a Medical History ................................................................................................37

..............................................................................................................................................39

○ Editing a Medical History ................................................................................................40

..............................................................................................................................................42

○ Removing a Medical History ...........................................................................................43

○ Uploading Photos ...........................................................................................................45

○ Deleting Photos ..............................................................................................................45

○ Default Photo .................................................................................................................45

○ Uploading Files ...............................................................................................................45

○ Deleting Files..................................................................................................................45

○ View Adopter/Foster History ...........................................................................................45

○ Exporting a Cat to Adopt-a-Pet .......................................................................................47

3. Adopter Management ......................................................................................................50

○ Description .....................................................................................................................50

○ Creation..........................................................................................................................50

..............................................................................................................................................51

..............................................................................................................................................52

○ Editing ............................................................................................................................53

..............................................................................................................................................55

○ Deletion ..........................................................................................................................56

..............................................................................................................................................57

..............................................................................................................................................58

○ Adding Phone Numbers .................................................................................................59

○ Editing Phone Numbers ..................................................................................................59

○ Removing Phone Numbers .............................................................................................59

○ Adding Tags ...................................................................................................................59

○ Removing Tags ..............................................................................................................59

○ Uploading Photo .............................................................................................................59

○ Deleting Photos ..............................................................................................................59

○ Default Photo .................................................................................................................60

○ Uploading Files ...............................................................................................................60

○ Deleting Files..................................................................................................................60

- 4 -

4. Foster Management .........................................................................................................62

○ Description .....................................................................................................................62

○ Creation..........................................................................................................................62

..............................................................................................................................................63

..............................................................................................................................................64

○ Editing ............................................................................................................................65

..............................................................................................................................................66

..............................................................................................................................................67

○ Deletion ..........................................................................................................................68

..............................................................................................................................................70

○ Adding Phone Numbers .................................................................................................71

○ Editing Phone Numbers ..................................................................................................71

○ Removing Phone Numbers .............................................................................................71

○ Adding Tags ...................................................................................................................71

○ Removing Tags ..............................................................................................................71

○ Uploading Photo .............................................................................................................71

○ Deleting Photos ..............................................................................................................71

○ Default Photo .................................................................................................................72

○ Uploading Files ...............................................................................................................72

○ Deleting Files..................................................................................................................72

5. Contacts Management .....................................................................................................74

○ Description .....................................................................................................................74

○ Creation..........................................................................................................................74

○ Editing ............................................................................................................................77

..............................................................................................................................................79

○ Deletion ..........................................................................................................................80

..............................................................................................................................................82

○ Adding Phone Numbers .................................................................................................82

○ Editing Phone Numbers ..................................................................................................82

○ Removing Phone Numbers .............................................................................................83

6. Litter Management ...........................................................................................................84

○ Description .....................................................................................................................84

- 5 -

○ Creation..........................................................................................................................84

○ Editing ............................................................................................................................87

..............................................................................................................................................89

○ Deletion ..........................................................................................................................90

..............................................................................................................................................92

○ Add a New Cat ...............................................................................................................93

..............................................................................................................................................94

..............................................................................................................................................95

○ Add an Existing Cat ........................................................................................................96

7. Filter Management ...........................................................................................................99

○ Description .....................................................................................................................99

○ Filter Cats .......................................................................................................................99

○ Filter Contacts .............................................................................................................. 101

............................................................................................................................................ 102

○ Filter Adopters .............................................................................................................. 102

○ Filter Fosters ................................................................................................................ 105

8. Phone Numbers Management ....................................................................................... 107

○ Description ................................................................................................................... 107

○ Adding Phone Numbers ............................................................................................... 107

............................................................................................................................................ 109

○ Editing Phone Numbers ................................................................................................ 110

............................................................................................................................................ 112

○ Removing Phone Numbers ........................................................................................... 113

9. Tags Management .......................................................................................................... 116

○ Description ................................................................................................................... 116

○ Creation........................................................................................................................ 116

○ Editing .......................................................................................................................... 118

............................................................................................................................................ 120

○ Deletion ........................................................................................................................ 120

............................................................................................................................................ 123

○ Adding Tags to Entities ................................................................................................. 124

○ Removing Tags from Entities ........................................................................................ 126

- 6 -

10. Files Management ...................................................................................................... 129

○ Description ................................................................................................................... 129

○ Photo/File Creation ....................................................................................................... 129

○ Photo/File Deletion ....................................................................................................... 133

............................................................................................................................................ 135

○ Default Photo ............................................................................................................... 136

11. Event Management ..................................................................................................... 139

○ Description ................................................................................................................... 139

○ Creation........................................................................................................................ 139

............................................................................................................................................ 141

○ Editing .......................................................................................................................... 142

○ Deletion ........................................................................................................................ 144

Other Files ............................................................................................................................. 148

JavaScript Files ..................................................................................................................... 148

○ Description ................................................................................................................... 148

CSS Files ............................................................................................................................... 148

○ Description ................................................................................................................... 148

Appendices ........................................................................................................................... 149

Appendix A: Database ......................................................................................................... 149

ER Diagram ..................................................................................................................... 149

Tables and Elements ....................................................................................................... 150

............................................................................................................................................... 152

Appendix B: Installation Instructions .................................................................................... 153

- 7 -

Introduction

Mission Control Administrative Web System (Mission Control) provides an intuitive web

interface for data management, easy to use tools, and file storage that will prevent the

redundancy and improve the readability of data. It will allow Mission Meow to have four

different user access levels: Admin, Core Volunteer, Volunteer and Foster (listed from

most privileged to least privileged). Users with higher privilege can do everything those

with lesser privileges can do. The following pages contain lists of features and user

stories that will guide the development of Mission Control.

The Maintenance Manual provides maintenance personnel with the information

necessary to maintain the system effectively.

Implementation Tools and Technologies

Programming languages: PHP7, Javascript, jQuery

Technologies, libraries and framework: CakePHP 3, Webflow

Web Services: Apache

Web Technologies: HTML5, CSS

IDE: Eclipse, Idea, MS Visual Studio, Aptana Studio, XCode, NetBeans, Komodo

Networking protocols and data security: TCP, HTTP, POST, GET, FTP and CakePHP 3

Auth

Databases/Data storages: MySQL Database

Application and web servers: CakePHP, Apache, DigitalOcean

For information on how to install the web application and its necessary tools, go to

Appendix B: Installation Instructions.

- 8 -

User Interaction

1. User Management

○ Description

■ The web application is a non-public facing system, an Admin must be able to add users to the system, then edit their permission level and delete them if needed. Non-admin users must be able to edit their own login credentials and contact information.

○ Creation

■ A Core Volunteers can add users to the system by sending them an invitation email to give them access to the system.

■ Code Files Needed for Interaction: ● src/Templates/Users/add.ctp ● src/Controller/UsersController.ctp ● src/Model/Entity/User.php ● src/Model/Table/UsersTable.php

■ Required Input: ● Go to the volunteers’ index page ● Click the paw button on the bottom right ● Click the “Add User” button ● Valid email ● User type

■ Expected Output: ● The system will send a temporary password to

the email provided, inviting the volunteer to become part of the system.

● The system will create a new entry in the “users” table.

● The system will save the inputted email in the “email” column and the User type in the “role.”

- 9 -

User Creation Screenshots

- 10 -

○ Editing

■ All users can edit their own contact information and login credentials in order to display the most current information on their profile.

■ Code Files Needed for Interaction: ● src/Templates/Users/edit.ctp ● src/Controller/UsersController.ctp ● src/Model/Entity/User.php ● src/Model/Table/UsersTable.php ● src/Controller/PhoneNumbers.ctp ● src/Model/Entity/PhoneNumber.php ● src/Model/Table/PhoneNumberTable.php

■ Required Input: ● Select a user from the volunteers’ index page ● Click the paw button ● Click the “Edit” button ● First Name ● Last Name ● Email ● Address ● Phone Number(s)

■ Expected Output: ● The system will save any changes made to the

User’s profile. ● The system will go to the corresponding row in

the “users” table. ● The system will save the inputted information

in the corresponding columns in the “users” table.

● The system will either access an existing entry or create a new entry in the “phone_numbers” table, saving the User’s id as the “entity_id,” the phone type as the “phone_type”, the phone number as the “phone_num” and “entity_type” will be 3.

- 11 -

Editing a User Screenshots

- 12 -

○ Deletion

■ An Admin can delete other users from the system in order to remove inactive users.

■ Code Files Needed for Interaction: ● src/Templates/Users/view.ctp ● src/Controller/UsersController.ctp

■ Required Input: ● Select a user from the volunteers’ index page ● Click the paw button on the bottom right. ● Click the “Delete” button ● Click “Delete” on the confirmation box.

■ Expected Output: ● The system will go to the corresponding row in

the “users” table. ● The system will set the User as deleted in the

database by changing the User’s “is_deleted” value to 1.

- 13 -

User Deletion Screenshots

- 14 -

○ Adding Phone Numbers

■ A Core Volunteer can add one or more phone numbers to users in the system. (For more information look at Phone Numbers Management)

○ Editing Phone Numbers

■ A Core Volunteer can edit existing phone numbers related to any user in the system. (For more information look at Phone Numbers Management)

○ Removing Phone Numbers

■ A Core Volunteer can delete existing phone numbers from any user in the system. (For more information look at Phone Numbers Management)

○ Promotion

■ An Admin can promote other users to increase their privileges and allow them to be able to edit cats, events, and pet lists for other users.

■ Code Files Needed for Interaction: ● src/Templates/Users/edit.ctp ● src/Controller/UsersController.ctp

■ Required Input: ● Select a user from the volunteers’ index page ● Click the paw button on the bottom right. ● Click the “Edit” button ● User’s user type.

■ Expected Output: ● The system will update the “role” column with

the appropriate value. ● The system will update the User’s privileges

accordingly.

- 15 -

Promoting a User Screenshots

- 16 -

○ Demotion

■ An Admin can demote privileged users (but not Admins), restricting their ability to modify cats, events, and pet lists.

■ Code Files Needed for Interaction: ● src/Templates/Users/edit.ctp ● src/Controller/UsersController.ctp

■ Required Input: ● Select a user from the volunteers’ index page ● Click the paw button on the bottom right. ● Click the “Edit” button ● User’s user type.

■ Expected Output: ● The system will update the “role” column with

the appropriate value. ● The system will update the User’s privileges

accordingly.

- 17 -

Demoting a User Screenshots

- 18 -

○ Create Adopter Profile

■ A Core Volunteer can create adopter profiles for users that have

adopted cats from the organization.

■ Code Files Needed for Interaction: ● src/Templates/Users/view.ctp ● src/Controller/UsersController.ctp ● src/Controller/FostersController.ctp ● src/Model/Entity/Foster.php ● src/Model/Table/FostersTable.php

■ Required Input: ● Click the “Create Adopter Profile” button on the

second tab. After that, click “Create Adopter” on the confirmation box.

■ Expected Output: ● The system will access the “adopters” table

and create a new entry. ● The system will save the existing information in

the corresponding columns in the “adopters” table.

● The system will create a new adopter profile with the User’s information.

- 19 -

Creating an Adopter Profile from User Screenshots

- 20 -

○ Create Foster Profile

■ A Core Volunteer can create foster profiles for volunteers that are

currently fostering cats from the organization.

■ Code Files Needed for Interaction: ● src/Templates/Users/view.ctp ● src/Controller/UsersController.ctp ● src/Controller/AdoptersController.ctp ● src/Model/Entity/Adopter.php ● src/Model/Table/AdoptersTable.php

■ Required Input: ● Click the “Create Foster Profile” button on the

second tab. After that, click “Create Foster” on the confirmation box.

■ Expected Output: ● The system will access the “fosters” table and

create a new entry. ● The system will save the existing information in

the corresponding columns in the “fosters” table.

● The system will create a new foster profile with the User’s information.

- 21 -

Creating a Foster Profile from User Screenshots

- 22 -

○ Uploading Photo

■ A Core Volunteer can upload photos related to a user into the system so they can be viewed. (For more information look at the Files Management)

○ Deleting Photos

■ A Core Volunteer can delete photos related to a user in the system so they can be viewed. (For more information look at the Files Management)

○ Default Photo

■ A Core Volunteer can choose a photo related to a user in the system and mark it as a Profile Photo. (For more information look at the Files Management)

- 23 -

Database Table and Relationships

For information on the database and relationships, go to Appendix A: Database.

- 24 -

2. Cat Management

○ Description

■ In order to have an overview of the current inventory and be able to manage cats, an Admin must be able to add, view, update, and remove cats from the system. Other users such as the Core Volunteer will be able to modify and view cats where a Volunteer can only view them, and a Foster can only see the cats associated with their account.

○ Creation

■ A Core Volunteer can add a new cat into the system in order to track the cats in the system.

■ Code Files Needed for Interaction: ● webroot/js/cats.js ● src/Templates/Cats/add.ctp ● src/Controller/CatsController.php ● src/Model/Entity/Cat.php ● src/Model/Table/CatsTable.php

■ Required Input: ● Cat name ● Date of Birth ● Breed ● Color ● Coat ● Gender ● Kitten/Adult Cat ● Adoption Fee ● Microchip number ● Microchip registration ● Good with Kids ● Good with Dogs ● Good with Cats ● Special Needs ● Needs Experienced Adopter ● Specialty Notes ● Biography

■ Expected Output: ● The system will create a new cat profile with

the cat’s information.

- 25 -

Creating a Cat Screenshots

- 26 -

- 27 -

○ Editing

■ A Core Volunteer can edit the existing information of a cat in the system in order to make or add changes.

■ Code Files Needed for Interaction: ● src/Templates/Cats/edit.ctp ● src/Controller/CatsController.php ● src/Model/Entity/Cat.php ● src/Model/Table/CatsTable.php

■ Required Input: ● Cat name ● Date of Birth ● Breed ● Color ● Coat ● Gender ● Kitten/Adult Cat ● Adoption Fee ● Microchip number ● Microchip registration ● Good with Kids ● Good with Dogs ● Good with Cats ● Special Needs ● Needs Experienced Adopter ● Specialty Notes ● Biography

■ Expected Output: ● The system will update the cat profile with the

cat’s updated information.

- 28 -

Editing a Cat Screenshots

- 29 -

○ Deletion

■ An Admin can delete a cat from the system to completely remove an inactive cat profile.

■ Code Files Needed for Interaction: ● src/Templates/Cats/view.ctp ● src/Controller/CatsController.php ● src/Model/Entity/Cat.php ● src/Model/Table/CatsTable.php

- 30 -

■ Required Input: ● Click the “Delete” button on the confirmation

box ■ Expected Output:

● The system will set the cat as deleted in the database by changing the cat’s “is_deleted” value to 1.

- 31 -

Deleting a Cat Screenshots

- 32 -

○ Adding Tags

■ A Core Volunteer can add multiple tags to a cat in the system. (For more information look at the Tags Management)

○ Removing Tags

■ A Core Volunteer can delete existing tags from a cat in the system. (For more information look at the Tags Management)

○ Adding a Foster Home

■ A Core Volunteer can mark a cat as fostered and link the foster home in the system in order to view which cat(s) belong to which foster home(s).

■ Code Files Needed for Interaction: ● webroot/js/cats.js ● src/Templates/Cats/view.ctp ● src/Controller/CatsController.php ● src/Model/Entity/Cat.php ● src/Controller/FostersController.php

■ Required Input: ● Click the “Add Foster” button under the Foster

tab (3rd tab) ● Choose desired foster from list and click

Foster! ■ Expected Output:

● Selected foster card with information should appear

● Association should be created in Cats table under foster_id

- 33 -

Adding a Foster Home to Cat Screenshots

- 34 -

○ Adding an Adopter

■ A Core Volunteer can export a cat from the system to Adopt-a-Pet for advertising purposes.

■ Code Files Needed for Interaction: ● webroot/js/cats.js ● src/Templates/Cats/view.ctp ● src/Controller/CatsController.php ● src/Model/Entity/Cat.php

■ Required Input: ● Click the “Add Adopter” button under the

Adopter tab (4th tab) ● Choose desired foster from list and click

Foster! ■ Expected Output:

● Selected adopter card with information should appear

● Association should be created in Cats table under adopter_id

- 35 -

Adding an Adopter to Cat Screenshots

- 36 -

- 37 -

○ Adding a Medical History

■ A Core Volunteer can add medical information related to a cat into the system so they can be viewed and retrieved later.

■ Code Files Needed for Interaction: ● src/Templates/Cats/view.ctp ● src/Controller/CatsController.php ● src/Controller/CatMedicalHistoriesController.ph

p ● src/Model/Entity/File.php ● src/Model/Entity/CatMedicalHistory.php

■ Required Input: ● Click the “Add New Medical Record” button

under the Medical Histories tab (2nd tab) ● Medical type ● Date ● Notes ● Document

■ Expected Output: ● A new medical record entry will be added to

the Cat’s view under the Medical Histories Tab

- 38 -

Adding a Medical Record to Cat Screenshots

- 39 -

- 40 -

○ Editing a Medical History

■ A Core Volunteer can edit existing medical information related to a cat in the system so that information displayed is always up to date.

■ Code Files Needed for Interaction: ● src/Templates/CatMedicalHistories/edit.ctp ● src/Controller/CatMedicalHistoriesController.ph

p ● src/Model/Entity/File.php ● src/Model/Entity/CatMedicalHistory.php

■ Required Input: ● Click the desired medical record to edit under

the Medical Histories tab (2nd tab) ● Click on the edit button ● Medical type ● Date ● Notes ● Document

■ Expected Output: ● The updated medical entry will be displayed in

the Cat’s view under the Medical Histories Tab

- 41 -

Editing a Medical History in Cats Screenshot

- 42 -

- 43 -

○ Removing a Medical History

■ A Core Volunteer can remove medical information related to a cat into the system so that they cannot be viewed or retrieved.

■ Code Files Needed for Interaction: ● src/Templates/Cats/view.ctp ● src/Controller/CatMedicalHistoriesController.ph

p ● src/Model/Entity/File.php ● src/Model/Entity/CatMedicalHistory.php

■ Required Input: ● Click on the “Delete” button followed by the

clicking “Delete” in the confirmation on the desired record to remove

■ Expected Output: ● Selected medical record should be removed

and the is_deleted database value in the Files table will be set to 1

- 44 -

Removing a Medical History from Cats Screenshot

- 45 -

○ Uploading Photos

■ A Core Volunteer can upload photos related to a cat into the system so they can be viewed. (For more information look at the Files Management)

○ Deleting Photos

■ A Core Volunteer can delete photos related to a cat in the system so they can be viewed. (For more information look at the Files Management)

○ Default Photo

■ A Core Volunteer can choose a photo related to a cat in the system and mark it as a Profile Photo. (For more information look at the Files Management)

○ Uploading Files

■ A Core Volunteer can upload files related to a cat into the system so they can be viewed and retrieved later. (For more information look at the Files Management)

○ Deleting Files

■ A Core Volunteer can delete files related to a cat in the system so they cannot be viewed or retrieved. (For more information look at the Files Management)

○ View Adopter/Foster History

■ A Core Volunteer can view the adopters and foster homes that have been associated with a cat from the system.

■ Code Files Needed for Interaction: ● src/Templates/Cats/view.ctp ● src/Controller/CatsController.php ● src/Model/Entity/Cat.php

■ Required Input: ● Click on the more tab (6th tab) ● Click on “Cat/Kitten Placement”

■ Expected Output:

- 46 -

● Cat/Kitten Placement should appear below

Viewing a Cat’s Adopter/Foster History Screenshots

- 47 -

○ Exporting a Cat to Adopt-a-Pet

■ A Core Volunteer can export a cat from the system to Adopt-a-Pet for advertising purposes.

■ Code Files Needed for Interaction: ● src/Templates/Cats/view.ctp ● src/Controller/CatsController.php ● src/Model/Entity/Cat.php

■ Required Input: ● Click on the “Export” button ● Adoption Status ● Color ● Spayed and Neutered ● Shots Current ● Housetrained ● Declawed ● Cat name ● Date of Birth ● Breed ● Coat ● Gender ● Kitten/Adult Cat ● Adoption Fee ● Microchip Number ● Microchip Registration ● Good with Kids ● Good with Dogs ● Good with Cats ● Special Needs ● Needs Experienced Adopter ● Biography ● Current Diet Notes ● Speciality Notes

■ Expected Output: ● After a few hours, the new profile will be added

in Adopt-A-Pet ● Association should be created in Cats table

under foster_id

- 48 -

Exporting a Cat to Adopt-a-Pet Screenshots

- 49 -

Database Tables and Relationships

For information on the database and relationships, go to Appendix A: Database.

- 50 -

3. Adopter Management

○ Description

■ The organization needs a quick way to reach out to, communicate with, manage, and view adopters, and potential adopters of kittens. In order to do this, Admins must be able to create, view, update, and remove adopters from the system. Adopters may or may not be associated with kittens.

○ Creation

■ A Core Volunteer can add a new adopter into the system to be able to assign cats to the adopter.

■ Code Files Needed for Interaction: ● webroot/js/adopters.js ● src/Templates/Adopters/add.ctp ● src/Controller/AdoptersController.ctp ● src/Model/Entity/Adopter.php ● src/Model/Table/AdoptersTable.php ● src/Controller/PhoneNumbersController.ctp ● src/Controller/PhoneNumbers.ctp

■ Required Input: ● Go to the adopter’s index page ● Click the paw button on the bottom right ● Click the “Add Adopter” button ● Adoptability ● First Name ● Last Name ● Email ● Address ● Phone Number(s) ● Any notes regarding the adopter

■ Expected Output: ● The system will create a new entry in the

“adopters” table. ● The system will save the inputted information

in the corresponding columns in the “adopters” table.

● The system will either access an existing entry or create a new entry in the “phone_numbers” table, saving the adopter’s id as the “entity_id,” the phone type as the “phone_type”, the phone

- 51 -

number as the “phone_num” and “entity_type” will be 1.

Creating an Adopter Screenshots

- 52 -

- 53 -

○ Editing

■ A Core Volunteer can edit existing adopters in the system to make necessary changes to the information of the adopter.

■ Code Files Needed for Interaction: ● webroot/js/adopters.js ● src/Templates/Adopters/add.ctp ● src/Controller/AdoptersController.ctp ● src/Model/Entity/Adopter.php ● src/Model/Table/AdoptersTable.php ● src/Controller/PhoneNumbersController.ctp ● src/Controller/PhoneNumbers.ctp

■ Required Input: ● Select an adopter from the adopter’s index

page ● Click the paw button ● Click the “Edit” button ● Adoptability ● First Name ● Last Name ● Email ● Address ● Phone Number(s) ● Any notes regarding the adopter

■ Expected Output: ● The system will access an existing entry in the

“adopters” table. ● The system will save the inputted information

in the corresponding columns in the “adopters” table.

● The system will either access an existing entry or create a new entry in the “phone_numbers” table, saving the Adopter’s id as the “entity_id,” the phone type as the “phone_type”, the phone number as the “phone_num” and “entity_type” will be 1.

- 54 -

Editing an Adopter Screenshots

- 55 -

- 56 -

○ Deletion

■ An Admin can delete adopters from the system to eliminate inactive and no longer needed adopters.

■ Code Files Needed for Interaction: ● src/Templates/Adopters/view.ctp ● src/Controller/AdoptersController.ctp

■ Required Input: ● Select an adopter from the adopter’s index

page ● Click the paw button on the bottom right. ● Click the “Delete” button ● Click “Delete” on the confirmation box.

■ Expected Output: ● The system will go to the corresponding row in

the “adopters” table. ● The system will set the Adopter as deleted in

the database by changing the Adopter’s “is_deleted” value to 1.

- 57 -

Deleting an Adopter Screenshots

- 58 -

- 59 -

○ Adding Phone Numbers

■ A Core Volunteer can add one or more phone numbers to an adopter in the system. (For more information look at Phone Numbers Management)

○ Editing Phone Numbers

■ A Core Volunteer can edit existing phone numbers related to an adopter in the system. (For more information look at Phone Numbers Management)

○ Removing Phone Numbers

■ A Core Volunteer can delete existing phone numbers from an adopter in the system. (For more information look at Phone Numbers Management)

○ Adding Tags

■ A Core Volunteer can add multiple tags to an adopter in the system. (For more information look at the Tags Management)

○ Removing Tags

■ A Core Volunteer can delete existing tags from an adopter in the system. (For more information look at the Tags Management)

○ Uploading Photo

■ A Core Volunteer can upload photos related to an adopter into the system so they can be viewed. (For more information look at the Files Management)

○ Deleting Photos

■ A Core Volunteer can delete photos related to an adopter in the system so they can be viewed. (For more information look at the Files Management)

- 60 -

○ Default Photo

■ A Core Volunteer can choose a photo related to an adopter in the system and mark it as a Profile Photo. (For more information look at the Files Management)

○ Uploading Files

■ A Core Volunteer can upload files related to an adopter into the system so they can be viewed and retrieved later. (For more information look at the Files Management)

○ Deleting Files

■ A Core Volunteer can delete files related to an adopter in the system so they cannot be viewed or retrieved. (For more information look at the Files Management)

- 61 -

Database Table and Relationships

For information on the database and relationships, go to Appendix A: Database.

- 62 -

4. Foster Management

○ Description

■ In order to assign cats to foster homes, an Admin must be able to manage foster homes by being able to create, view, update, and remove them. Other users such as the Core Volunteer will be able to modify and view foster homes where a volunteer can only view them.

○ Creation

■ A Core Volunteer can add a new Foster Home into the system to be able to assign cats to the Foster.

■ Code Files Needed for Interaction: ● webroot/js/fosters.js ● src/Templates/Fosters/add.ctp ● src/Controller/FostersController.ctp ● src/Model/Entity/Foster.php ● src/Model/Table/FostersTable.php

■ Required Input: ● First Name ● Last Name ● Email ● Address ● Phone Number(s) ● Experience ● Availability ● Rating ● Any notes regarding the foster

■ Expected Output: ● The system will create a new entry in the

“fosters” table. ● The system will save the inputted information

in the corresponding columns in the “fosters” table.

● The system will either access an existing entry or create a new entry in the “phone_numbers” table, saving the foster’s id as the “entity_id,” the phone type as the “phone_type”, the phone number as the “phone_num” and “entity_type” will be 1.

- 63 -

Creating a Foster Screenshots

- 64 -

- 65 -

○ Editing

■ A Core Volunteer can edit existing fosters in the system to make necessary changes to the information of the foster.

■ Code Files Needed for Interaction: ● webroot/js/fosters.js ● src/Templates/Fosters/add.ctp ● src/Controller/FostersController.ctp ● src/Model/Entity/Foster.php ● src/Model/Table/FostersTable.php

■ Required Input: ● First Name ● Last Name ● Email ● Address ● Phone Number(s) ● Experience ● Availability ● Rating ● Any notes regarding the foster

■ Expected Output: ● The system will access an existing entry in the

“fosters” table. ● The system will save the inputted information

in the corresponding columns in the “fosters” table.

● The system will either access an existing entry or create a new entry in the “phone_numbers” table, saving the Foster’s id as the “entity_id,” the phone type as the “phone_type”, the phone number as the “phone_num” and “entity_type” will be 1.

- 66 -

Editing a Foster Screenshots

- 67 -

- 68 -

○ Deletion

■ An Admin can delete fosters from the system to eliminate inactive and no longer needed fosters.

■ Code Files Needed for Interaction: ● webroot/js/fosters.js ● src/Templates/Fosters/view.ctp ● src/Controller/FostersController.ctp

■ Required Input: ● Click the “Delete” button on the confirmation

box. ■ Expected Output:

● The system will go to the corresponding row in the “fosters” table.

● The system will set the Foster as deleted in the database by changing the Foster’s “is_deleted” value to 1.

- 69 -

Deleting a Foster Screenshots

- 70 -

- 71 -

○ Adding Phone Numbers

■ A Core Volunteer can add one or more phone numbers to an foster in the system. (For more information look at Phone Numbers Management)

○ Editing Phone Numbers

■ A Core Volunteer can edit existing phone numbers related to an foster in the system. (For more information look at Phone Numbers Management)

○ Removing Phone Numbers

■ A Core Volunteer can delete existing phone numbers from an foster in the system. (For more information look at Phone Numbers Management)

○ Adding Tags

■ A Core Volunteer can add multiple tags to an foster in the system. (For more information look at the Tags Management)

○ Removing Tags

■ A Core Volunteer can delete existing tags from an foster in the system. (For more information look at the Tags Management)

○ Uploading Photo

■ A Core Volunteer can upload photos related to an foster into the system so they can be viewed. (For more information look at the Files Management)

○ Deleting Photos

■ A Core Volunteer can delete photos related to an foster in the system so they can be viewed. (For more information look at the Files Management)

- 72 -

○ Default Photo

■ A Core Volunteer can choose a photo related to an foster in the system and mark it as a Profile Photo. (For more information look at the Files Management)

○ Uploading Files

■ A Core Volunteer can upload files related to an foster into the system so they can be viewed and retrieved later. (For more information look at the Files Management)

○ Deleting Files

■ A Core Volunteer can delete files related to an foster in the system so they cannot be viewed or retrieved. (For more information look at the Files Management)

- 73 -

Database Table and Relationships

For information on the database and relationships, go to Appendix A: Database.

- 74 -

5. Contacts Management

○ Description

■ The organization needs all users to be able to access a list of contacts. Therefore, Admin must be able to add contacts to the system, edit their information, and delete them if needed. Non-admin users will only have access to the contacts’ overviews.

○ Creation

■ A Core Volunteers can add contacts to the system so that other users can view them and contact them when necessary.

■ Code Files Needed for Interaction: ● src/Templates/Contacts/add.ctp ● src/Controller/ContactsController.ctp ● src/Model/Entity/Contacts.php ● src/Model/Table/ContactsTable.php

■ Required Input: ● Contact Name ● Organization Name ● Contact/Organization Email ● Organization Address ● Phone Number(s)

■ Expected Output: ● The system will create a new entry in the

“contacts” table. ● The system will save the inputted information

in the corresponding columns in the “contacts” table.

● The system will either access an existing entry or create a new entry in the “phone_numbers” table, saving the contact’s id as the “entity_id,” the phone type as the “phone_type”, the phone number as the “phone_num” and “entity_type” will be 2.

- 75 -

Contact Creation Screenshots

- 76 -

- 77 -

○ Editing

■ A Core Volunteers can edit contacts in the system so that other users can view the most current information and contact them when necessary

■ Code Files Needed for Interaction: ● src/Templates/Contacts/edit.ctp ● src/Controller/ContactsController.ctp ● src/Model/Entity/Contacts.php ● src/Model/Table/ContactsTable.php ● src/Controller/PhoneNumbers.ctp ● src/Model/Entity/PhoneNumber.php ● src/Model/Table/PhoneNumberTable.php

■ Required Input: ● Contact Name ● Organization Name ● Contact/Organization Email ● Organization Address ● Phone Number(s)

■ Expected Output: ● The system will save any changes made to the

contact’s profile. ● The system will go to the corresponding row in

the “contacts” table. ● The system will save the inputted information

in the corresponding columns in the “contacts” table.

● The system will either access an existing entry or create a new entry in the “phone_numbers” table, saving the contact’s id as the “entity_id,” the phone type as the “phone_type”, the phone number as the “phone_num” and “entity_type” will be 2.

- 78 -

Editing a Contact Screenshots

- 79 -

- 80 -

○ Deletion

■ An Admin can delete contacts from the system in order to avoid inactive users.

■ Code Files Needed for Interaction: ● src/Templates/Contacts/edit.ctp ● src/Controller/ContactsController.ctp

■ Required Input: ● Select a contact from the contact’s index page ● Click the “Delete” button ● Click “Delete” on the confirmation box.

■ Expected Output: ● The system will go to the corresponding row in

the “contacts” table. ● The system will set the Contacts as deleted in

the database by changing the contact’s “is_deleted” value to 1.

- 81 -

Deleting a Contact Screenshots

- 82 -

○ Adding Phone Numbers

■ A Core Volunteer can add one or more phone numbers to contacts in the system. (For more information look at Phone Numbers Management)

○ Editing Phone Numbers

■ A Core Volunteer can edit existing phone numbers related to any contact in the system. (For more information look at Phone Numbers Management)

- 83 -

○ Removing Phone Numbers

■ A Core Volunteer can delete existing phone numbers from any contact in the system. (For more information look at Phone Numbers Management)

Database Table and Relationships

For information on the database and relationships, go to Appendix A: Database.

- 84 -

6. Litter Management

○ Description

■ In order to have an overview of the current inventory and be able to manage kittens, an Admin must be able to create, view, update, and remove litters. The litters will be collections of kittens that are either incoming, or currently in stock.

○ Creation

■ An Admin can add incoming litters into the system to inform users about cats that will soon be entering the system.

■ Code Files Needed for Interaction: ● src/Templates/Litters/add.ctp ● src/Controller/LittersController.php ● src/Controller/CatsController.php ● src/Model/Entity/Litter.php ● src/Model/Entity/Cat.php ● src/Model/Table/LittersTable.php ● src/Model/Table/CatsTable.php

■ Required Input: ● Litter name ● Kitten Central ID ● Date of Birth ● Breed ● Estimated Arrival ● Foster Notes ● Notes ● Additional Cats

■ Expected Output: ● The new litter should be created with the cats

associated

- 85 -

Litter Creation Screenshots

- 86 -

- 87 -

○ Editing

■ A Core Volunteer can edit the existing information of a litter in the system in order to make or add changes.

■ Code Files Needed for Interaction: ● src/Templates/Litters/edit.ctp ● src/Controller/LittersController.php ● src/Controller/CatsController.php ● src/Model/Entity/Litter.php ● src/Mode/Entity/Cat.php ● src/Model/Table/LittersTable.php ● src/Model/Table/CatsTable.php

■ Required Input: ● Select desired litter to edit. ● Litter Name ● Kitten Central ID ● Date of Birth ● Breed ● Estimated Arrival ● Foster Notes ● Notes

■ Expected Output: ● The selected litter should now have the

updated information

- 88 -

Editing a Litter Screenshots

- 89 -

- 90 -

○ Deletion

■ An Admin can delete a litter from the system to completely remove an inactive litter profile.

■ Code Files Needed for Interaction: ● src/Templates/Litters/view.ctp ● src/Controller/LittersController.php ● src/Controller/CatsController.php ● src/Model/Entity/Litter.php ● src/Mode/Entity/Cat.php ● src/Model/Table/LittersTable.php ● src/Model/Table/CatsTable.php

■ Required Input: ● Select desired litter to remove ● Click on “Delete Selected” button ● Click on the “Delete!” button

■ Expected Output: ● The selected litter should disappear

- 91 -

Deleting a Litter Screenshots

- 92 -

- 93 -

○ Add a New Cat

■ A Core Volunteer can add a new cat to an existing litter in the system.

■ Code Files Needed for Interaction: ● src/Templates/Litters/view.ctp ● src/Controller/LittersController.php ● src/Controller/CatsController.php ● src/Model/Entity/Litter.php ● src/Mode/Entity/Cat.php ● src/Model/Table/LittersTable.php ● src/Model/Table/CatsTable.php

■ Required Input: ● Select on the desired Litter to add a new cat ● Under the Cat tab (1st Tab) click on “Add New

Cat” ● Cat name ● Date of Birth ● Breed ● Color ● Coat ● Gender ● Kitten/Adult Cat ● Adoption Fee ● Microchip Number ● Microchip Registration ● Good with Kids ● Good with Dogs ● Good with Cats ● Special Needs ● Needs Experienced Adopter ● Specialty Notes ● Biography ● Additional cats

■ Expected Output: ● The new cat(s) should be added to the litter

- 94 -

Adding a New Cat Screenshots

- 95 -

- 96 -

○ Add an Existing Cat

■ A Core Volunteer can link a cat to an existing litter in the system.

■ Code Files Needed for Interaction: ● src/Templates/Litters/view.ctp ● src/Controller/LittersController.php ● src/Controller/CatsController.php ● src/Model/Entity/Litter.php ● src/Mode/Entity/Cat.php ● src/Model/Table/LittersTable.php ● src/Model/Table/CatsTable.php

■ Required Input: ● Select desired Litter to add an existing cat ● Under the Cat tab (1st tab) click on “Add

Existing Cat” ● Select an existing cat to add into the litter

■ Expected Output: ● The existing cat should be added to the litter

- 97 -

Adding Existing Cat to Litter Screenshots

- 98 -

Database Table and Relationships

For information on the database and relationships, go to Appendix A: Database.

- 99 -

7. Filter Management ○ Description

■ The organization wants users to be able to filter through Cats,

Contacts, Adopters, and Fosters to be able to find a specific Cat,

Contact, Adopter, or Foster in the system.

○ Filter Cats ■ A Volunteer can filter through the cats to find a specific cat in the

system, allowing the volunteer to view that cat’s information.

■ Code Necessary for Interaction:

● scr/Template/Cats/index.ctp

● scr/Controller/CatsController.ctp

● scr/Model/Behavior/FilterableTagBehavior.php

● scr/Model/Behavior/FilterablePhoneBehavior.php

■ Required Input Includes One or More of the Following:

● Go to the cats’ index page ● Click the paw button on the bottom right ● Click the “Sort/Filter” button ● Name

● Gender

● Adult or Kitten

● Breed

● Color

● Coat

● Date of Birth

● Deceased

● Deleted

● Tags

■ Expected Output:

● The filtered cats will be displayed

- 100 -

Filter Cats Screenshots

- 101 -

○ Filter Contacts

■ A Foster can filter through the contacts to find a specific contact in

the system.

■ Code Necessary for Interaction:

● scr/Template/Contacts/index.ctp

● scr/Controller/ContactsController.ctp

● scr/Model/Behavior/FilterablePhoneBehavior.php

■ Required Input Includes One or More of the Following:

● Go to the contacts’ index page ● Click the paw button on the bottom right ● Click the “Sort/Filter” button ● Contact Name

● Organization Name

● Phone Number

● Email

● Address

■ Expected Output:

● The filtered contacts will be displayed

- 102 -

Filter Contacts Screenshots

○ Filter Adopters

■ A Volunteer can filter through the adopters to find a specific adopter

in the system, allowing the volunteer to view that adopter’s

information.

■ Code Necessary for Interaction:

● scr/Template/Adopters/index.ctp

● scr/Controller/AdoptersController.ctp

● scr/Model/Behavior/FilterableTagBehavior.php

- 103 -

● scr/Model/Behavior/FilterablePhoneBehavior.php

■ Required Input Includes One or More of the Following:

● Go to the adopters’ index page ● Click the paw button on the bottom right ● Click the “Sort/Filter” button ● First Name

● Last Name

● Phone Number

● Email

● Address

● Number of Cats Adopted

● Adoptability

● Tags

■ Expected Output:

● The filtered adopters will be displayed

- 104 -

Filter Adopters Screenshots

- 105 -

○ Filter Fosters

■ A Volunteer can filter through the fosters to find a specific foster in

the system, allowing the volunteer to view that foster’s information.

■ Code Necessary for Interaction:

● scr/Template/Fosters/index.ctp

● scr/Controller/FostersController.ctp

● scr/Model/Behavior/FilterableTagBehavior.php

● scr/Model/Behavior/FilterablePhoneBehavior.php

■ Required Input Includes One or More of the Following:

● Go to the fosters’ index page ● Click the paw button on the bottom right ● Click the “Sort/Filter” button ● First Name

● Last Name

● Rating

● Availability

● Phone Number

● Email

● Address

● Tags

■ Expected Output:

● The filtered fosters will be displayed

- 106 -

Filter Fosters Screenshots

- 107 -

8. Phone Numbers Management

○ Description ■ The organization wants users, fosters, contacts, and

adopters to be able to provide multiple phone numbers to be able to contact them whenever it is necessary.

○ Adding Phone Numbers

■ A Core Volunteer can add one or more phone numbers to users, adopters, and foster in the system.

■ A Foster and a Volunteer can add one or more phone numbers to their own profile.

■ Code Files Needed for Interaction: ● These are the generic files needed to add

one more phone numbers to Users, Adopters, Fosters, and Contacts.

○ src/Model/Entity/PhoneNumber.php ○ src/Model/Table/PhoneNumbersTable.p

hp ○ src/Controller/PhoneNumbersController.

ctp ● In addition to the generic files above, these

files are necessary to add phone numbers to Users.

○ src/Templates/Users/edit.ctp ○ src/Controller/UsersController.ctp

● In addition to the generic files above, these files are necessary to add phone numbers to Contacts.

○ src/Templates/Contacts/edit.ctp ○ src/Controller/ContactsController.ctp

● In addition to the generic files above, these files are necessary to add phone numbers to Adopters.

○ src/Templates/Adopters/edit.ctp ○ src/Controller/AdoptersController.ctp

● In addition to the generic files above, these files are necessary to add phone numbers to Fosters.

○ src/Templates/Fosters/edit.ctp ○ src/Controller/FostersController.ctp

■ Required Input: ● Go to the entity’s view page

- 108 -

● Click the paw button on the bottom right ● Click the “Edit” button ● Click the “Add Phone Number” ● Entity’s Phone Number(s)

■ Expected Output: ● The system will add the given phone numbers

to the entity’s profile. ● The system will create a new entry in the

“phone_numbers” table, saving the entity’s id as the “entity_id,” the phone type as the “phone_type”, the phone number as the “phone_num” and “entity_type” according to the entity type.

- 109 -

Phone Number Creation Screenshots

- 110 -

○ Editing Phone Numbers

■ A Core Volunteer can edit existing phone numbers related to any user in the system.

■ A Foster and a Volunteer can edit existing phone numbers that are related to them and are displayed on their own profile.

■ Code Files Needed for Interaction: ● These are the generic files needed to edit a

phone number that belongs to Users, Adopters, Fosters, and Contacts.

○ src/Model/Entity/PhoneNumber.php ○ src/Model/Table/PhoneNumbersTable.p

hp ○ src/Controller/PhoneNumbersController.

ctp ● In addition to the generic files above, these

files are necessary to edit a phone number that belongs to Users.

○ src/Templates/Users/edit.ctp ○ src/Controller/UsersController.ctp

● In addition to the generic files above, these files are necessary to edit a phone number that belongs to Contacts.

○ src/Templates/Contacts/edit.ctp ○ src/Controller/ContactsController.ctp

● In addition to the generic files above, these files are necessary to edit a phone number that belongs to Adopters.

○ src/Templates/Adopters/edit.ctp ○ src/Controller/AdoptersController.ctp

● In addition to the generic files above, these files are necessary to edit a phone number that belongs to Fosters.

○ src/Templates/Fosters/edit.ctp ○ src/Controller/FostersController.ctp

■ Required Input: ● Go to the entity’s view page ● Click the paw button on the bottom right ● Click the “Edit” button ● Click on the phone number that needs to be

edited ● Click “Edit” ● Entity’s Updated phone number

■ Expected Output:

- 111 -

● The system will take the user to the phone editing page.

● The system will access an existing entry in the “phone_numbers” table where the “entity_id” matches the entity’s id.

● The system will save any changes made to the corresponding tables in the phone_numbers table.

● The system will update the entity’s profile with the updated phone numbers.

Editing a Phone Number Screenshots

- 112 -

- 113 -

○ Removing Phone Numbers

■ A Core Volunteer can delete existing phone numbers from any user in the system.

■ A Foster and a Volunteer can edit existing phone numbers that are related to them and are displayed on their own profile.

■ Code Files Needed for Interaction: ● These are the generic files needed to delete

a phone number that belongs to Users, Adopters, Fosters, and Contacts.

○ src/Model/Entity/PhoneNumber.php ○ src/Controller/PhoneNumbersController.

ctp ● In addition to the generic files above, these

files are necessary to delete a phone number that belongs to Users.

○ src/Templates/Users/edit.ctp ○ src/Controller/UsersController.ctp

● In addition to the generic files above, these files are necessary to delete a phone number that belongs to Contacts.

○ src/Templates/Contacts/edit.ctp ○ src/Controller/ContactsController.ctp

● In addition to the generic files above, these files are necessary to delete a phone number that belongs to Adopters.

○ src/Templates/Adopters/edit.ctp ○ src/Controller/AdoptersController.ctp

● In addition to the generic files above, these files are necessary to delete a phone number that belongs to Fosters.

○ src/Templates/Fosters/edit.ctp ○ src/Controller/FostersController.ctp

■ Required Input: ● Go to the entity’s view page ● Click the paw button on the bottom right ● Click the “Edit” button ● Click on the phone number that needs to be

deleted ● Click “Delete” ● Click “Delete” on the confirmation page.

■ Expected Output: ● The system will access the existing entry in the

“phone_numbers” table where the “entity_id”

- 114 -

matches the entity’s id and the “phone_num” matches the number that needs to be deleted.

● The system will delete the chosen phone number from the entity’s profile.

Removing a Phone Number Screenshots

- 115 -

Database Table and Relationships

For information on the database and relationships, go to Appendix A: Database.

- 116 -

9. Tags Management ○ Description

■ The organization wants users to be able to provide multiple phone numbers to be able to contact them whenever it is necessary.

○ Creation

■ A Core Volunteer can create one or more tag that will help

differentiate the cats, adopters, and fosters in the system from

others of their type.

■ Code Files Needed for Interaction:

● src/Template/Tags/index.ctp

● src/Model/Entity/Tag.php ● src/Model/Table/TagsTable.php ● src/Controller/TagsController.ctp

■ Required Input:

● Tag label

● Entity (or entities) associated with the tag

● Tag color

■ Expected Output:

● The system will create a new entry in the “tags” table.

● The system will save the inputted information in the corresponding columns in the “tags” table.

● The new tag will appear in the tag’s index page.

- 117 -

Tag Creation Screenshots

- 118 -

○ Editing ■ A Core Volunteer can edit existing tags that are related to cats,

adopters, and fosters in the system.

■ Code Files Needed for Interaction:

● src/Template/Tags/index.ctp

● src/Model/Entity/Tag.php ● src/Model/Table/TagsTable.php ● src/Controller/TagsController.ctp

■ Required Input:

● Click on the tag that needs to be edited

● Click the “Edit” button

● Tag label

● Entity (or entities) associated with the tag

● Tag color

■ Expected Output:

● The system will access an existing entry in the “tags” table.

● The system will save the inputted information in the corresponding columns in the “tags” table.

● The tag will be shown on the index page will be updated accordingly.

- 119 -

Edit a Tag Screenshots

- 120 -

○ Deletion ■ A Core Volunteer can delete existing tags that related to cats,

adopters, and fosters in the system.

■ Code Files Needed for Interaction:

● src/Template/Tags/index.ctp

● src/Controller/TagsController.ctp ■ Required Input:

● Click on the tag that needs to be edited

● Click the “Delete” button

● Click “Delete” on the confirmation page

■ Expected Output:

- 121 -

● The system will access an existing entry in the “tags” table.

● The system will set “is_deleted” to 1. ● The selected tag will disappear from the index

page.

- 122 -

Deleting a Tag Screenshots

- 123 -

- 124 -

○ Adding Tags to Entities

■ A Core Volunteer can add one or more tags to cats, adopters, and foster in the system.

■ A Foster can add one or more tags to the cat profiles of the cats they are currently fostering.

■ Code Files Needed for Interaction: ● These are the generic files needed to add

one more tags to Cats, Adopters, and Fosters.

○ src/Controller/TagsController.ctp ○ src/Model/Table/TagsTable.php

● In addition to the generic files above, these files are necessary to add tags to Cats.

○ webroot/js/cats.js ○ src/Templates/Cats/view.ctp ○ src/Controller/CatsController.ctp ○ src/Controller/TagsCatsController.ctp

● In addition to the generic files above, these files are necessary to add tags to Adopters.

○ webroot/js/adopters,js ○ src/Templates/Adopters/view.ctp ○ src/Controller/AdoptersController.ctp ○ src/Controller/TagsAdoptersController.ct

p ● In addition to the generic files above, these

files are necessary to add tags to Fosters. ○ webroot/js/fosters.js ○ src/Templates/Fosters/view.ctp ○ src/Controller/FostersController.ctp ○ src/Controller/TagsFostersController.ctp

■ Required Input: ○ Go to the entity’s view page ○ Click “Add Tag” ○ Select a tag from the list. ○ Click “Add Tag” on the confirmation

page. ■ Expected Output:

○ The system will access the “tags” table to obtain the selected tag’s id.

○ The system will access the entity’s table, for example, for foster it will access the “tags_fosters” table, and create a new entry.

- 125 -

○ The system will save the entity’s id and the obtained tag id as the “tag_id” in the corresponding table.

Adding Tags to Entities Screenshots

- 126 -

○ Removing Tags from Entities

■ A Core Volunteer can delete existing phone numbers from any user in the system.

■ A Foster and a Volunteer can edit existing phone numbers that are related to them on their own profile.

■ Code Files Needed for Interaction: ● These are the generic files needed to add

one more tags to Cats, Adopters, and Fosters.

○ src/Controller/TagsController.ctp ○ src/Model/Table/TagsTable.php

● In addition to the generic files above, these files are necessary to add tags to Cats.

○ src/Templates/Cats/view.ctp ○ src/Controller/CatsController.ctp ○ src/Controller/TagsCatsController.ctp

● In addition to the generic files above, these files are necessary to add tags to Adopters.

○ src/Templates/Adopters/view.ctp ○ src/Controller/AdoptersController.ctp ○ src/Controller/TagsAdoptersController.ct

p ● In addition to the generic files above, these

files are necessary to add tags to Fosters. ○ src/Templates/Fosters/view.ctp ○ src/Controller/FostersController.ctp ○ src/Controller/TagsFostersController.ctp

■ Required Input: ● Go to the entity’s view page ● Click on the “X” icon next to desired tag to

remove

● Click “Delete” on the confirmation page. ■ Expected Output:

● The system will access the entity’s table, for example, for foster it will access the “tags_fosters” table.

● The system will delete the row that contains the entity’s id and the tag id of the selected tag.

● The selected tag will disappear from the entity’s view page

- 127 -

Removing a Tag from an Entity Screenshots

- 128 -

Database Table and Relationships

For information on the database and relationships, go to Appendix A: Database.

- 129 -

10. Files Management

○ Description

■ The organization has several types of files that must be accessible at all times. Some of these files include pictures, medical records, application forms, animal request forms, and adoption forms.

○ Photo/File Creation

■ A Core Volunteer can add new photos and PDF files to all entities

(user, adopter, foster and cat).

■ A Volunteer,can only add a new photo to their personal profile.

■ A Foster can only add new photos to their personal profile and to

the cats they are currently fostering.

■ Code Files Needed for Interaction: ● These are the generic files needed to make

photo and file creation possible for Users, Adopters, Fosters, and Cats.

○ src/Model/Entity/File.php ○ src/Model/Table/FilesTable.php ○ src/Controller/FilesController.ctp ○ src/Model/Behavior/FilesBehavior.php

● In addition to the generic files above, these files are necessary to add photos and files to Users.

○ src/Templates/Users/view.ctp ○ src/Controller/UsersController.ctp

● In addition to the generic files above, these files are necessary to add photos and files to Cats.

○ src/Templates/Cats/view.ctp ○ src/Controller/CatsController.ctp

● In addition to the generic files above, these files are necessary to add photos and files to Adopters.

○ src/Templates/Adopters/view.ctp ○ src/Controller/AdoptersController.ctp

● In addition to the generic files above, these files are necessary to add photos and files to Fosters.

○ src/Templates/Fosters/view.ctp ○ src/Controller/FostersController.ctp

■ Required Input:

- 130 -

● Click on the “Add New Photo” button or the “Add New File” button in the files tab.

● Choose photo and click on “Upload” ■ Expected Output:

● The system will create a new entry in the “files” table.

● If the file is a photo, it will set “is_photo” to 1 and save the the some information about the photo, such as its size, in the corresponding columns.

● The new picture will be displayed under the Pictures section under the files tab in the Adopter’s view.

- 131 -

Photo/Files Creation Screenshots

- 132 -

- 133 -

○ Photo/File Deletion

■ A Core Volunteer can delete existing photos and PDF files from all

entities (user, adopter, foster and cat).

■ A Volunteer,can only add a new photo to their personal profile.

■ A Foster can only delete existing photos from their personal profile

and from the cats they are currently fostering.

■ Code Files Needed for Interaction: ● These are the generic files needed to make

photo and file deletion possible for Users, Adopters, Fosters, and Cats.

○ src/Controller/FilesController.ctp ○ src/Model/Behavior/FilesBehavior.php

● In addition to the generic files above, these files are necessary to delete photos and files to Users.

○ src/Templates/Users/view.ctp ○ src/Controller/UsersController.ctp

● In addition to the generic files above, these files are necessary to delete photos and files to Cats.

○ src/Templates/Cats/view.ctp ○ src/Controller/CatsController.ctp

● In addition to the generic files above, these files are necessary to delete photos and files to Adopters.

○ src/Templates/Adopters/view.ctp ○ src/Controller/AdoptersController.ctp

● In addition to the generic files above, these files are necessary to delete photos and files to Fosters.

○ src/Templates/Fosters/view.ctp ○ src/Controller/FostersController.ctp

■ Required Input: ● Select desired photo or file to remove ● If there is only one photo, upload another photo

before deleting ● Click on “Delete Selected” button ● Click on the “Delete!” button

■ Expected Output: ● The system will go to the corresponding row in

the “files” table.

- 134 -

● The system will set the photo as deleted in the database by changing the photo’s or file’s “is_deleted” value to 1.

Photo/Files Deletion Screenshots

- 135 -

- 136 -

○ Default Photo

■ A Core Volunteer can choose a photo related to a user, adopter, foster, or cat in the system and mark it as a Profile Photo.

■ A Volunteer can choose a photo related to them and mark it as a Profile Photo.

■ A Foster can choose a photo related to them or to a cat they are fostering and mark it as a Profile Photo.

■ Code Files Needed for Interaction: ● These are the generic files needed to

choose a default photo possible for Users, Adopters, Fosters, and Cats.

○ src/Controller/FilesController.ctp ○ src/Model/Behavior/FilesBehavior.php

● In addition to the generic files above, these files are necessary to choose a default photo for a Users.

○ src/Templates/Users/view.ctp ○ src/Controller/UsersController.ctp

● In addition to the generic files above, these files are necessary to choose a default photo for a Cats.

○ src/Templates/Cats/view.ctp ○ src/Controller/CatsController.ctp

● In addition to the generic files above, these files are necessary to choose a default photo for a Adopters.

○ src/Templates/Adopters/view.ctp ○ src/Controller/AdoptersController.ctp

● In addition to the generic files above, these files are necessary to choose a default photo for a Fosters.

○ src/Templates/Fosters/view.ctp ○ src/Controller/FostersController.ctp

■ Required Input: ● Click desired photo to set as default ● Click on the “Mark as Profile Photo” button

■ Expected Output: ● The selected photo should now be the default

profile picture

- 137 -

Setting Default Profile Picture Screenshots

- 138 -

Database Table and Relationships

For information on the database and relationships, go to Appendix A: Database.

- 139 -

11. Event Management

○ Description

■ Pet Adoptions events are held regularly. In order to reach out to volunteers, adopters, and fosters Admins need to be able to create, view, update, and remove adoption events. The adoption events will have features that allow mass communication to users, and subscribed individuals to receive information about an adoption event.

○ Creation

■ As a Core Volunteer, I can add an adoption event into the system so I can schedule adoption events and know which cats are to be shown for adoption.

■ Code Files Needed for Interaction: ● src/Templates/AdoptionEvents/add.ctp ● src/Controller/AdoptionEventsController.php ● src/Mode/Entity/AdoptionEvent.php ● src/Model/Table/AdoptionEventsTable.php ● src/Model/Table/CatsAdoptionEventsTable.php ● src/Model/Table/UsersAdoptionEventsTable.ph

p ■ Required Input:

● Event Date ● Description ● Cat(s) ● User(s)

■ Expected Output: ● The adoption event will be created with the

inputted information and associated cats and volunteers

- 140 -

Adoption Event Creation Screenshots

- 141 -

- 142 -

○ Editing

■ As a Core Volunteer, I can edit an adoption event so that changes can be made after an event has been created.

■ Code Files Needed for Interaction: ● src/Templates/AdoptionEvents/edit.ctp ● src/Controller/AdoptionEventsController.php ● src/Mode/Entity/AdoptionEvent.php ● src/Model/Table/AdoptionEventsTable.php ● src/Model/Table/CatsAdoptionEventsTable.php ● src/Model/Table/UsersAdoptionEventsTable.ph

p ■ Required Input:

● Event Date ● Description ● Cat(s) ● User(s)

■ Expected Output: ● The adoption event will be updated with the

inputted information and associated cats and volunteers

- 143 -

Adoption Event Editing Screenshots

- 144 -

○ Deletion

■ As a Core Volunteer, I am able to delete an event from the system to completely remove information of cancelled or past events.

■ Code Files Needed for Interaction: ● src/Templates/AdoptionEvents/view.ctp ● src/Controller/AdoptionEventsController.php ● src/Mode/Entity/AdoptionEvent.php ● src/Model/Table/AdoptionEventsTable.php ● src/Model/Table/CatsAdoptionEventsTable.php ● src/Model/Table/UsersAdoptionEventsTable.ph

p ■ Required Input:

● Select desired adoption event to remove ● Click on “Delete” button ● Click on the “Delete” button in the confirmation

pop up ■ Expected Output:

● The selected adoption event should disappear

- 145 -

Adoption Event Deletion Screenshots

- 146 -

- 147 -

Database Table and Relationships

For information on the database and relationships, go to Appendix A: Database.

- 148 -

Other Files

JavaScript Files ○ Description

■ The following JavaScript files can be found in most, if not all, interactions. JavaScripts that are unique to a specific entity can be found in that entity’s user interaction.

■ Files: ● webroot/js/global.js ● webroot/js/jquery-ui.js ● webroot/js/jquery-ui.min.js ● webroot/js/jquery.min.js ● webroot/js/modernizr.js ● webroot/js/moment.js ● webroot/js/paws-administrative-system.js ● webroot/js/select2.min.js ● webroot/js/webflow-custom.js ● webroot/js/webflow.js

CSS Files ○ Description

■ The following CSS files can be found in most, if not all, interactions.

■ Files: ● webroot/css/base.css ● webroot/css/cake.css ● webroot/css/components.css ● webroot/css/jquery-ui.css ● webroot/css/normalize.css ● webroot/css/paws-administrative-system.css ● webroot/css/paws-customs.css ● webroot/css/select2.min.css

- 149 -

Appendices

Appendix A: Database

ER Diagram

- 150 -

Tables and Elements

- 151 -

- 152 -

- 153 -

Appendix B: Installation Instructions

Mission Control is written in PHP and Javascript under the CakePHP 3 framework, and

is intended to be run on an Ubuntu-based Linux system. This guide assumes that you

have PHP7, Apache, and MySQL installed and set up, and have prior knowledge of how

to use those services. It also assumes that you will be running the web server and the

the database on the same machine.

CakePHP requires the use of Composer. Please follow the official documentation to get

Composer set up: https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx

Additionally, you will need to install a few PHP libraries: php-intl, php-ext, and php-

imagick. Simply run a “sudo apt-get install php-intl” command for each of these libraries

to install them.

Our project repository can be cloned using Git. Run “git clone

https://github.com/theparrotsarecoming/pas MissionControl” in the webroot

directory of your choice.

Navigate to MissionControl/config, and run “cp app.default.php app.php” to create the

primary configuration file. There are a number of changes that you will need to make to

this file. First, you need to set up the different user types. Enter the following so that the

first few lines look like this:

“<?php

use Cake\Core\Configure;

Configure::write('Roles', [

'Admin' => 1,

'Core' => 2,

'Volunteer' => 3,

'Foster' => 4

]);

return [“

- 154 -

Next, setup the email account that will be used to send account invitations and alerts.

Scroll down to the section labeled “Email Transport”, and enter a new entry called “auto”

so that it looks like this:

“ 'EmailTransport' => [

'default' => [

'className' => 'Mail',

// The following keys are used in SMTP transports

'host' => 'localhost',

'port' => 25,

'timeout' => 30,

'username' => 'user',

'password' => 'secret',

'client' => null,

'tls' => null,

'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null),

],

'auto' => [

'className' => 'Smtp',

'host' => 'smtp.gmail.com',

'port' => 587,

'username' => 'EMAIL@gmail.com',

'password' => 'PASSWORD',

'tls' => true,

]

], “

Be sure to replace EMAIL and PASSWORD with your desired email credentials. If you

wish to use a host other than Gmail, you will have to change the port, host, and other

fields.

Next, scroll down to the section labeled “Datasources” to set the database user values.

You do not need to change much here--just set the username and password to the

desired MySQL user credentials, and change the database name from “my_app” to

“paws_db”. That’s it for app.php, save and close the file.

- 155 -

To set up the database, navigate to MissionMeow/DB. You only need to run a single

command to set up all the required tables. Run “mysql -u USER -p paws_db <

paws_db.sql”, replacing USER with the proper username, and enter your password

when prompted. This will create all the required tables, and create a single admin user

with the email address of “theparrotsarecoming@gmail.com”, and a password of

“password”. Upon initial login, you will be given the opportunity to change this email and

password to anything you like.

Return to the main MissionMeow directory. The directories “logs” and “tmp” need to be

writable by the server, so run “chown -R www-data tmp” and “chown -R www-data

logs” to change ownership of the directories to the server user. The same needs to be

done for MissionMeow/webroot/files, so run “chown -R www-data webroot/files”

from the main directory.

Finally, all the third-party tools used by Mission Meow need to be loaded. Navigate to

MissionMeow/vendor, then type “composer update” to load everything. This may take

a while.

After you complete these steps, follow the typical steps to host a web page on your

server, and Mission Meow will be ready to use!

- 156 -

Appendix C: TreeView

Recommended