facebook tutor system
DESCRIPTION
A school proojectTRANSCRIPT
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
-PhoneNumber
Tutors -SessionID
-Name
-Date
-Time
-Location
-Notes
Sessions
-ClassID
-Name
Classes
-MajorID
-Name
Majors-StudentID
-Name
-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
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;
}