facebook tutor system

31
Team 1, Project 1 Final Phase Macy Miles Mark Lalich Christian Chavez David Gavigan Cody Felske

Upload: david-gavigan

Post on 24-Mar-2016

214 views

Category:

Documents


0 download

DESCRIPTION

A school prooject

TRANSCRIPT

Team 1, Project 1 – Final Phase

Macy Miles

Mark Lalich

Christian Chavez

David Gavigan

Cody Felske

Table of Contents

Contents Problem and Solution Statement ........................................................................................................ 3

Use Case Diagram .............................................................................................................................. 4

Use Case Tables .............................................................................................................................. 5-6

Activity Diagram ................................................................................................................................ 7

Domain Class Diagram ....................................................................................................................... 8

Relational Database Schema .............................................................................................................. 9

Noun List ......................................................................................................................................... 10

User Interface Design .................................................................................................................. 11-15

Profile Page ......................................................................................................................... 11

Create Study Group .............................................................................................................. 12

Edit Study Group .................................................................................................................. 13

Study Group Page ................................................................................................................ 14

Search for and join a Study Group ........................................................................................ 15

Test Cases ................................................................................................................................... 16-22

Create a Study Group ...................................................................................................... 16-17

Edit a Study Group .......................................................................................................... 18-19

Search for Study Group ................................................................................................... 20-22

Appendix .................................................................................................................................... 23-31

Macy Miles

Mark Lalich

Christian Chavez

David Gavigan

Cody Felske

Problem and Solution Statement

Today there are many social media outlets that can be used to help bring two groups of people

together, which is what Facebook is most known for. The problem is there are not many ways to bring

students together unless they have classes together and friend each other on Facebook. The application that

our group has decided to develop in order to make this outlet for students easier is a tutoring application. In

this application, the two parties of people brought together are the students who are excelling in a certain

class or subject, and students in the same class, major or subject that are struggling or having a hard time.

Although there are tutoring systems similar on campus, this application would make getting a study group

together a lot easier than arriving at the library and hoping someone is there to help with the subject you

need. This application would request the user to fill out information such as whether they are the students

looking to give help or tutoring or whether they are the student looking for the tutoring. As well as, their

school and their school/work schedule and what times they are available to meet. The application would then

sort through the opposite party to find a convenient match and give the user the option to message the other

party or parties in order to set up a place to meet, then the student receiving the message or request to meet

would then have the option to approve or deny. In making this Facebook application we are hoping to make a

functional and manageable outlet for students looking to get together to improve their grades help other

students.

Use Case Diagram

Tutor

Student

Create Study

Group

Select Degree

Major

Select/Join

A Study Group

Facebook Tutor Finding App

Use Case 1 – Tutor creates study group

Precondition: Tutor must be a member of Facebook.

Actor: System:

1. Tutor creates new instance of proposed study group.

1.1 Form for new study group instance is presented.

2. Provide required information for a valid study group instance to be created.

2.1 Name the study group. 2.2 Using keywords, such as Course ID

“CIS3374”, the Tutor defines which class(es) the study group covers.

2.3 Define the time and location the study group will be held.

2.4 Define the maximum student head count. 2.5 Determine which groups of students

should be able to view and join the study group.

3. Confirm study group information. 3.1 The study group instance is created and saved.

Post condition: Group created and available for public view.

Use Case 2- Student classifies Degree Major

Precondition: Student must be a member of Facebook.

Actor: System:

1. Student selects Degree Major. 1.1 Form with list of available Degree Majors is presented.

1.2 Selection saved.

Post condition: Student added to Degree Major grouping.

Use Case 3 – Student searches for study group

Precondition: Student has selected a Degree Major.

Actor: System:

1. Student searches for available study groups.

1.1 Search results displayed according to the student’s Degree Major grouping and available study group viewing rights. i.e. Degree specific or general studies courses.

2. Student selects from results list and submits a join request.

2.1 Join request sent for validation of study group availability.

Exception:

1. If study group is full. 1.1 Student is told the study group is full and presented again with the available study group list.

2. If study group doesn’t exist. 2.1 Student is presented with form to request the particular study group be created.

Post condition: Student’s study group join request submitted.

Use Case 4 – Student joins study group

Precondition: Student’s join request passes validation, i.e. group not full.

Actor: System:

0.1 Student added to requested study group roster.

0.2 A message is sent to the student and the tutor that the student was successfully added to the study group.

1. Attend study group!

Post condition: Study group attended.

Activity Diagram

Create Study

Group

Select Degree

Major

Select/Join

A Study Group

Tutor Student

Attend Study

Group

Tutor\Attend

Study Group

Domain Class Diagram

-TutorID

-Name

-Email

-PhoneNumber

Tutors -SessionID

-Name

-Date

-Time

-Location

-Notes

Sessions

-ClassID

-Name

Classes

-MajorID

-Name

Majors-StudentID

-Name

-Email

-PhoneNumber

Students

1 * * 1

1

*

*

0-5

* 1

-SessionID

-StudentID

Session2Students

0-5

*

Relational Database Schema

Table Attributes

Tutors TutorID, Name, Email, PhoneNumber

StudentsStudentID, Name, Email, PhoneNumber,

MajorID

SessionsSessionID, Name, Date, Time, Location,

Notes, TutorID, ClassID

Classes ClassID, Name, MajorID

Majors MajorID, Name

Sessions2Students SessionID, StudentID

Noun List

Identified nouns Notes on including noun as a thing to store Facebook No

Tutors Yes

Tutor Name Yes, needed to identify the tutor

Tutor Email Yes, needed for contacting the tutor

Tutor Phone Number Yes, needed for contacting the tutor

Students Yes

Student Name Yes, needed to identify the student

Student Email Yes, needed for contacting the student

Student Phone Number Yes, needed for contacting the student

Sessions Yes

Session Date Yes, it is relevant to coordinating the session

Session Time Yes, it is relevant to coordinating the session

Session Location Yes, it is relevant to coordinating the session

Session Notes Yes, but optional

Classes Yes, it is relevant to sessions and finding relevant session

Class Name Yes, needed to identify the class

Majors Yes, it is relevant to sessions and students

Major Name Yes, needed to identify the major

User Interface Design (Profile Page)

Profile PageProfile Page

Welcome back your name!

Input Integrity Controls

Field combination controls:

none

Completeness controls:

none

Value limit controls:

none

Data validation controls:

none

1

Study Groups you started

1. Study Group 1

2. Study Group 2

Study Groups you a member of

1. Study Group 1

2. Study Group 2

Create a new Study Group

Search for a Study Group

User Interface Design (Create Study Group)

Create Study GroupCreate Study Group

strNameStudy Group Name:

strClassIDNew Course ID:

strClassIDExisting Course ID:

or

dtDateDate/Time:

Location: strLocation

intMaxStuCntMax Student Count:

Create Group

*

*

/

*

* required fields

dtTime *

Notes: strNotes

Input Integrity Controls

Field combination controls:

none

Completeness controls:

strName, strClassID, dtDate,

dtTime, strLocation

Value limit controls:

none

Data validation controls:

none

1 Study Group Addition ConfirmationStudy Group Addition Confirmation

You have successfully created the

study group!

OK

2a

Input Integrity Controls

Field combination controls:

none

Completeness controls:

none

Value limit controls:

none

Data validation controls:

none

Study Group Addition ErrorStudy Group Addition Error

An error occurred while creating the

study group! Please try again.

OK

2b

User Interface Design (Edit Study Group)

Edit Study GroupEdit Study Group

strNameStudy Group Name:

strClassIDNew Course ID:

strClassIDExisting Course ID:

or

dtDateDate/Time:

Location: strLocation

intMaxStuCntMax Student Count:

Commit Changes

*

*

/

*

* required fields

dtTime *

Notes: strNotes

Input Integrity Controls

Field combination controls:

none

Completeness controls:

strName, strClassID, dtDate,

dtTime, strLocation

Value limit controls:

none

Data validation controls:

none

1

User Interface Design (Study Group Page)

Study Group 1Study Group 11

Group name

Group result 1 nameCourse1, Course2, Course3

Group administrator: tutor name

tutor email, tutor phone

time, location

notes

Input Integrity Controls

Field combination controls:

none

Completeness controls:

none

Value limit controls:

none

Data validation controls:

none

User Interface Design (Search for Study Group)

Search for Study GroupSearch for Study Group

strKeywordKeyword search

strClassIDSelect from list

or

Search

Input Integrity Controls

Field combination controls:

none

Completeness controls:

strKeyword or strClassID

Value limit controls:

none

Data validation controls:

none

Search for Study Group ResultsSearch for Study Group Results

1

2

Available Study Groups

Group result 1 nameCourse1, Course2, Course3

Group administrator: tutor name

tutor email, tutor phone

time, location

notes

Group result 2 nameCourse1, Course2, Course3

Group administrator: tutor name

tutor email, tutor phone

time, location

notes

Select group

Select group

Input Integrity Controls

Field combination controls:

none

Completeness controls:

none

Value limit controls:

none

Data validation controls:

none

Study Group Addition ConfirmationStudy Group Addition Confirmation

You have been successfully added to

the study group!

OK

3aInput Integrity Controls

Field combination controls:

none

Completeness controls:

none

Value limit controls:

none

Data validation controls:

none

Study Group Addition ErrorStudy Group Addition Error

An error occurred while adding you to

the study group! Please try again.

OK

3b

Create Study Group

Pre-condition

Table: Tutors

TutorID Name Email PhoneNumber

001 John Smith [email protected] 555-555-1234

002 Jane Doe [email protected] 555-555-4321

Table: Sessions

SessionID Name Date Time Location Notes TutorID ClassID MaxStuCnt

000001 Statistics 12/5/11 18:00 McCoy R123

Don’t be late!!

001 0001 10

000002 Accounting 12/10/11 20:00 McCoy R321

002 0002 8

Table: Classes

ClassID Name MajorID

0001 All QMST classes 001

0002 All Accounting classes 002

0003 All Marketing classes 003

Table: Majors

MajorID Name

001 CIS

002 Accounting

003 Marketing

*Tutor John Smith logs onto the system

Flow of Activity

1. The user enters the following data a. strName: Marketing b. strClassID (dropdown list):

Marketing c. dtDate: 12/7/11 d. dtTime: 18:00 e. strLocation: McCoy R222 f. strNotes: empty g. intMaxStuCnt: 10

1.1 The system verifies no other sessions have been created with the same Date, Time and Location values.

a. If a match is found it returns the “error dialog” and returns the user to the Create Study Group page.

b. Else if no match is found the system creates the new session record and presents the “success dialog”.

Post-Condition

Table: Tutors

TutorID Name Email PhoneNumber

001 John Smith [email protected] 555-555-1234

002 Jane Doe [email protected] 555-555-4321

Table: Sessions

SessionID Name Date Time Location Notes TutorID ClassID MaxStuCnt

000001 Statistics 12/5/11 18:00 McCoy R123

Don’t be late!!

001 0001 10

000002 Accounting 12/10/11 20:00 McCoy R321

002 0002 8

000003 Marketing 12/7/11 18:00 McCoy R222

001 0003 10

Table: Classes

ClassID Name MajorID

0001 All QMST classes 001

0002 All Accounting classes 002

0003 All Marketing classes 003

Table: Majors

MajorID Name

001 CIS

002 Accounting

003 Marketing

Edit a New Study Group

Pre-condition

Table: Tutors

TutorID Name Email PhoneNumber

001 John Smith [email protected] 555-555-1234

002 Jane Doe [email protected] 555-555-4321

Table: Sessions

SessionID Name Date Time Location Notes TutorID ClassID MaxStuCnt

000001 Statistics 12/5/11 18:00 McCoy R123

Don’t be late!!

001 0001 10

000002 Accounting 12/10/11 20:00 McCoy R321

002 0002 8

Table: Classes

ClassID Name MajorID

0001 All QMST classes 001

0002 All Accounting classes 002

0003 All Marketing classes 003

Table: Majors

MajorID Name

001 CIS

002 Accounting

003 Marketing

*Tutor John Smith logs onto the system and chooses to edit an existing study group they are tutoring

Flow of Activity

1. The user changes the following data a. dtDate: 12/8/11 b. dtTime: 17:00

1.1 The system verifies no other sessions have been created with the same Date, Time and Location values.

a. If a match is found it returns the “error dialog” and returns the user to the Edit Study Group page.

b. Else if no match is found the system updates the session record and presents the “success dialog”.

Post-Condition

Table: Tutors

TutorID Name Email PhoneNumber

001 John Smith [email protected] 555-555-1234

002 Jane Doe [email protected] 555-555-4321

Table: Sessions

SessionID Name Date Time Location Notes TutorID ClassID MaxStuCnt

000001 Statistics 12/8/11 17:00 McCoy R123

Don’t be late!!

001 0001 10

000002 Accounting 12/10/11 20:00 McCoy R321

002 0002 8

Table: Classes

ClassID Name MajorID

0001 All QMST classes 001

0002 All Accounting classes 002

0003 All Marketing classes 003

Table: Majors

MajorID Name

001 CIS

002 Accounting

003 Marketing

Search for Study Group

Pre-condition

Table: Tutors

TutorID Name Email PhoneNumber

001 John Smith [email protected] 555-555-1234

002 Jane Doe [email protected] 555-555-4321

Table: Students

StudentID Name Email PhoneNumber MajorID

0001 Mark Hamill [email protected] 555-565-1111 001

0002 Harrison Ford [email protected] 555-555-8889 003

Table: Sessions

SessionID Name Date Time Location Notes TutorID ClassID MaxStuCnt

000001 Statistics 12/5/11 18:00 McCoy R123

Don’t be late!!

001 0001 10

000002 Accounting 12/10/11 20:00 McCoy R321

002 0002 8

Table: Classes

ClassID Name MajorID

0001 All QMST classes 001

0002 All Accounting classes 002

0003 All Marketing classes 003

Table: Majors

MajorID Name

001 CIS

002 Accounting

003 Marketing

Table: Sessions2Students

SessionID StudentID

000001 0001

000002 0002

*Student Mark Hamill logs onto the system and chooses to search for a study group.

Flow of Activity

1. The user enters the following data a. strKeyword: acc

1.1 The system searches for the keyword string in the Session table under the Name and Notes fields, in the Classes table under the

Name field and in the Majors table under the Name field and displays the following details:

a. Group result 1 name: Accounting b. Course1: All Accounting classes c. tutor name: Jane Doe d. tutor email: [email protected] e. tutor phone: 555-555-4321 f. date: 12/5/11 g. time: 18:00 h. location: McCoy R123 i. notes: Don’t be late!!

2. The user click the “Select Group” button 2.1 The system inserts a new record in the Sessions2Students table.

Post-Condition

Table: Students

StudentID Name Email PhoneNumber MajorID

0001 Mark Hamill [email protected] 555-565-1111 001

0002 Harrison Ford [email protected] 555-555-8889 003

Table: Sessions

SessionID Name Date Time Location Notes TutorID ClassID MaxStuCnt

000001 Statistics 12/5/11 18:00 McCoy R123

Don’t be late!!

001 0001 10

000002 Accounting 12/10/11 20:00 McCoy R321

002 0002 8

Table: Classes

ClassID Name MajorID

0001 All QMST classes 001

0002 All Accounting classes 002

0003 All Marketing classes 003

Table: Majors

MajorID Name

001 CIS

002 Accounting

003 Marketing

Table: Sessions2Students

SessionID StudentID

000001 0001

000002 0002

000002 0001

Appendix: JAVA classes

Classes class (JAVA) .......................................................................................................................... 24

Majors class (JAVA) .......................................................................................................................... 25

Sessions class (JAVA) ................................................................................................................... 26-27

Sessions2Students class (JAVA) ........................................................................................................ 28

Students class (JAVA) .................................................................................................................. 29-30

Tutors class (JAVA) ........................................................................................................................... 31

/** * */

import java.util.Set;

/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @author ml52252 * @generated "UML to Java (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */public class Classes {

/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Object ClassID;/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Object Name;/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Majors majors;/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Set<Sessions> sessions;

}

/** * */

import java.util.Set;

/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @author ml52252 * @generated "UML to Java (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */public class Majors {

/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Object MajorID;/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Object Name;/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Set<Classes> classes;/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Set<Students> students;

}

/** * */

/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @author ml52252 * @generated "UML to Java (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */public class Sessions {

/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Object SessionID;/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Object Date;/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Object Time;/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Object Location;/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Object Notes;/** * <!-- begin-UML-doc --> * <!-- end-UML-doc -->

* @generated "UML to Java (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)"

*/private Classes classes;/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Tutors tutors;/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Session2Student session2Student;

}

/** * */

import java.util.Set;

/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @author ml52252 * @generated "UML to Java (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */public class Session2Student {

/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Object SessionID;/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Object StudentID;/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Set<Sessions> sessions;/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Set<Students> students;

}

/** * */

/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @author ml52252 * @generated "UML to Java (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */public class Students {

/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Object Name;/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Object StudentID;/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Object PhoneNumber;/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Object Email;/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Session2Student session2Student;/** * <!-- begin-UML-doc --> * <!-- end-UML-doc -->

* @generated "UML to Java (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)"

*/private Majors majors;

}

/** * */

import java.util.Set;

/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @author ml52252 * @generated "UML to Java (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */public class Tutors {

/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Object Name;/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Object Email;/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Object PhoneNumber;/** * <!-- begin-UML-doc --> * <!-- end-UML-doc --> * @generated "UML to Java

(com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private Set<Sessions> sessions;

}