3 Specific Requirements 3.1 Functional Requirements 3.1.1. Test Harness (Seth Hohensee)

advertisement
3 Specific Requirements
3.1 Functional Requirements
3.1.1. Test Harness (Seth Hohensee)
The test harness will modify content of the REMSY database, enrollment file,
Active Directory domain users, and Banner model database. It will be used to
generate sample data for REMSY functionality testing. The following functional
requirements must be met:
3.1.1.1.
Must provide developers with the ability to clear all data from the
enrollment file
3.1.1.2.
Must provide developers with the ability to clear all users from the
REMSY database
3.1.1.3.
Must provide developers with the ability to clear all users from the Banner
model database
3.1.1.4.
Must provide developers with the ability to clear all users from the
REMSY Organizational Unit of the Active Directory Domain
3.1.1.4.1
Performing 3.1.1.4 must also execute:

3.1.1.1

3.1.1.2

3.1.1.3
3.1.1.5.
Must provide developers with the ability to clear all locations form the
REMSY database
3.1.1.6.
Must provide developers with the ability to create a user specified number
of locations in the REMSY database
3.1.1.7.
Must provide developers with the ability to create a user specified number
of tutoring sessions
3.1.1.7.1
Tutoring sessions must not overlap with any existing class period
for a course
3.1.1.7.2
A random existing tutor must be assigned to each session
3.1.1.7.2.1 Must check for scheduling conflicts before assigning the tutor to
the session
3.1.1.8.
Must provide developers with the ability to create a user specified number
of domain users of the types:

Student

Tutor

Professor

Administrator
3.1.1.8.1
Class entries must be added to the enrollment file on student or
tutor creation
3.1.1.8.1.1 Class entries must be randomly chosen from instances of courses
present in the Banner model database
3.1.1.8.1.2 Each student or tutor’s grade data for current classes must be set to
one of the following values in the Banner model database:

A

A
B+

B

B
C+

C

C
D+

D

D
F

W

WF

I
3.1.1.8.1.3 Enrollment file entries must contain the following fields in a colon
separated list

Course name (i.e. CS411w)

CRN

Student name (last name first and middle initial last)

UIN

Student email

Phone number
3.1.1.8.2
Each created user must be added to the Banner model database
3.1.1.8.3
Each created user must be added to the REMSY database
3.1.2. Account Creation Requirements (Eric Diep)
The purpose of the account creation page is to allow potential users to create account.
Accounts, which are composed of the username and password, have the following
functional requirements that must be met
3.1.2.1 Username must model Midas login:
a. First letter of the user’s first name
b. First four letters of user’s last name
c. Three digit number
3.1.2.2 Password must be:
a. At least eight
b. Contain the following
o Lower-case letter(s)
o Upper-case letter(s)
o Number(s)
o Symbol(s) found on the keyboard
3.1.2.3 Account information (username and password) must be stored on database
3.1.3 Authentication Requirements (Seth Hohensee)
The purpose of the authentication is to both identify the user and restrict access to the
REMSY system to legitimate students. The following authentication functional
requirements must be met:
3.1.3.1 REMSY must confirm the user’s identity by authenticating against Active
Directory when a login attempt occurs.
3.1.3.1.1 REMSY must then pull information about the user from the REMSY
database based on username to complete the login.
3.1.3.2 REMSY must log the student into the highest identity associated with their Active
Directory account.
3.1.3.2.1 Possible identities include (in descending order)

Administrator

Professor

Tutor

Student
3.1.3.3 REMSY must initiate the account creation process if a user without records within
the REMSY database successfully authenticates (see 3.1.2).
3.1.4 Mobile Requirements (Zachary Regelski and Matthew Letchworth)
This section details the abilities of the mobile application. It breaks it down into the different
user groups and gives the abilities that each one is granted. It also shows the mobile functionality
compared to that of the PC version. The following functional requirements must be met:
3.1.4.1 Registered users must be able to log-in
3.1.4.2 Registered users must only have access to their appropriate interface
3.1.4.3 Registered students must be able to:
Ability
PC
Mobile
Create an account


Log in to account


Modify account information


View current availability


Adjust availability


View sessions available for
tutoring


Sign up for available sessions


Manage sessions currently
registered for


Submit surveys on tutors they
have had a session with


View previous surveys on tutors


Indicate attendance


Submit requests for a course to be
added


Receive notifications


SMS


E-Mail


Push Notifications


3.1.4.4 Registered tutors must be able to:
Ability
PC
Mobile
Create an account


Log in to account


Modify account information


View current availability


Adjust availability


View sessions available for
tutoring


Manage sessions currently
registered for


Flag students as troublesome


View previous surveys on
themselves


Confirm attendance of student


Receive notifications


SMS


E-Mail


Push Notifications


3.1.4.5 Registered administrators must be able to:
Ability
PC
Mobile
Create an account


Log in to account


Modify account information


View sessions available for
tutoring


Manage sessions students are
currently registered for


View tutors flags on students


View previous surveys on tutors


View requests for a course to be
added


Override tutor input


Receive notifications


SMS


E-Mail


Push Notifications


3.1.5. Hardware Requirement (Matthew Letchworth)
REMSY must have the ability to interact with certain hardware. The purpose of the hardware
is to streamline the log-in process securely. The following functional requirements must be met:
3.1.5.1.
3.1.5.2.
3.1.5.3.
The card reader must connect properly to the host computer
The card reader must be able to read data from the swipe of the card
The card reader must be able login the user via the card reader
3.1.6 Database Requirement (Denis Mileyko)
3.1.6.1 Database must be created in MySQL Database Server version 5.2
3.1.6.2 Tables, Queries, and Reports: Tables, queries, views, and stored procedures will
be developed as necessary to fulfill the requirements of this application. As much
as possible, all calls from the web will implement these stored procedures for
faster access and security vice programming the SQL statements directly in the
web page code.
3.1.6.3 MySQL Server user account must be used for maximum security.
3.1.6.4 Only ODU authorized personnel can have access to this database
3.1.6.5 Initial database diagram is shown in Figure 1
attendance_status
Table comments: Table contains student attendance status names
Column
Type
attendance_status_id int(11)
Null Default
No
Comments
Auto increment primary key
name
varchar(255) No
Name of the attendance status
active
char(1)
Y - if attendance status active, N - if
attendance status inactive
No
Indexes
Keyname
Type Unique Packed
PRIMARY BTREE Yes
No
Column
Cardinality Collation Null
attendance_status_id 3
calendar_item
Table comments: Contains student/tutor availability and class schedule
A
No
Column
Type
Null Default
Comments
calendar_item_id int(11)
No
Auto increment primary index
start_date
date
No
Start date of the class schedule or student/tutor
availability
end_date
date
No
End date of the class schedule or student/tutor
availability
active
char(1)
No
Y - if calendar item active, N - if calendar item
inactive
Indexes
Keyname
Type Unique Packed
PRIMARY BTREE Yes
No
Column
Cardinality Collation Null
calendar_item_id 0
A
No
calendar_item_detail
Table comments: Contains daily time intervals related to the calendar item
Column
Type
Null Default
Comments
calendar_item_detail_id int(11)
No
Auto incremented primary index
calendar_item_id
int(11)
No
Foreign key to
calendar_item.calendar_item_id
day_of_week
int(11)
No
0 - Sunday, 1 - Monday, ... , 6 - Saturday
start_time
time
No
Start time of the calendar item at the
current day of week
end_time
time
No
End time of the calendar item at the
current day of week
Indexes
Keyname
PRIMARY
Type Unique Packed
BTREE Yes
availability_id BTREE No
Column
Cardinality Collation Null
No
calendar_item_detail_id 0
A
No
No
calendar_item_id
A
No
class
Table comments: Contains classes information
Column
Type
Null Default
Comments
class_id
int(11)
No
Class unique identifier
course_id
int(11)
No
Foreign key to course.course_id
location_id
int(11)
No
Foreign key to location.location_id
crn
varchar(255) No
CRN identifier
teacher_id
int(11)
No
Tutor: Foreign key user.user_id
capacity
int(11)
No
class capacity in nu,ber of students. 0 unlimited.
class_status_id int(11)
No
Foreign key to class_status.status_id
Indexes
Keyname
Type Unique Packed Column Cardinality Collation Null
PRIMARY BTREE Yes
course_id
BTREE No
No
No
class_id
2
A
No
course_id
A
No
location_id
A
No
teacher_id
A
No
course
Table comments: Contains courses information
Column
Type
Null Default
Comments
course_id
int(11)
No
Course unique identifier
subject_id
int(11)
No
Subject: foreign key to subject.subject_id
name
varchar(255) No
Name of the course
course_number varchar(255) No
Course number
active
Y - if course is active, N - if course is inactive
Indexes
char(1)
No
Keyname
Type Unique Packed Column Cardinality Collation Null
PRIMARY BTREE Yes
No
course_id 1
A
No
subject_id BTREE No
No
subject_id
A
No
location
Table comments: Contains locations information
Column
Type
Null Default
Comments
location_id int(11)
No
Location unique identifier
name
char(255)
No
Location Name
street
varchar(255) No
Street address
city
varchar(255) No
City
state
varchar(255) No
State
zip
varchar(10) No
Zip code
phone
varchar(255) No
Telephone
fax
varchar(255) No
Fax
email
varchar(255) No
Email address
active
char(1)
Y - if location is active, N - if location is inactive
No
Indexes
Keyname
Type Unique Packed Column Cardinality Collation Null
PRIMARY BTREE Yes
No
location_id 3
A
No
message
Table comments: Contains system notifications
Column
Type
Null Default
Comments
message_id int(11)
No
Message unique identifier
created_date datetime
No
Date and time when message was created
user_id
int(11)
No
User who created the message
subject
varchar(255) No
Subject of the message
text
text
Message content
No
Indexes
Keyname
Type Unique Packed
Column
Cardinality Collation Null
PRIMARY BTREE Yes
No
message_id 0
A
No
user_id
No
user_id
A
No
BTREE No
message_recipient
Table comments: Contains message recipients
Column
Type
Null Default
Comments
message_recipient_id int(11)
No
Auto incremented identifier
message_id
int(11)
No
Message: foreign key to
message.message_id
recipient_id
int(11)
No
Recipient: foreign key to user.user_id
Indexes
Keyname
Type Unique Packed
PRIMARY BTREE Yes
No
message_id BTREE No
No
Column
Cardinality Collation Null
message_recipient_id 0
A
No
message_id
A
No
recipient_id
A
No
new_course_student_request
Table comments: Contains requests from students to add new course
Column
Type
Null Default
Comments
new_course_student_request_id int(11)
No
Request unique identifier
student_id
int(11)
No
Student: foreign key to
user.user_id
course_name
varchar(255) No
Name of the new course
requesting
course_id
int(11)
No
Existing course: foreign key to
course.course_id
notes
text
No
Notes
assigned_to
int(11)
No
Assigned to staff: foreign key
to user.user_id
requested_date
datetime
No
Date and time of the request
request_status_id
int(11)
No
Request status: foreign key to
request_status.request_status_id
Indexes
Keyname
PRIMAR
Y
student_id
Type
Uniqu Packe
e
d
BTRE
Yes
E
BTRE
No
E
assigned_t BTRE
No
o
E
No
No
No
Column
Cardinalit Collatio Nul
y
n
l
new_course_student_request_
0
id
A
No
student_id
A
No
course_id
A
No
request_status_id
A
No
assigned_to
A
No
new_course_tutor_request
Table comments: Contains tutor offers to teach new course
Column
Type
Null Default
Comments
new_course_tutor_request int(11)
No
Request unique identifier
tutor_id
int(11)
No
Tutor: foreign key to user.user_id
course_name
varchar(255) No
Name of the new course
course_id
int(11)
No
Existing course: foreign key to
course.course_id
notes
text
No
Notes
assigned_to
int(11)
No
Assigned to staff: foreign key to
user.user_id
requested_date
datetime
No
Date and time of the request
request_status_id
int(11)
No
Request status: foreign key to
request_status.request_status_id
Indexes
Keyname
Type Unique Packed
PRIMARY BTREE Yes
tutor_id
BTREE No
assigned_to BTREE No
No
No
No
Column
Cardinality Collation Null
new_course_tutor_request 0
A
No
tutor_id
A
No
course_id
A
No
request_status_id
A
No
assigned_to
A
No
permission
Table comments: Contains all system permissions
Column
Type
permission_id int(11)
Null Default
No
Comments
Permission unique identifier
name
varchar(255) No
Name of the permission
active
char(1)
No
Y - if permission is active, N - if permission is
inactive
order_index
int(11)
No
Order index of the permission
Indexes
Keyname
Type Unique Packed
PRIMARY BTREE Yes
No
Column
Cardinality Collation Null
permission_id 18
A
No
request_status
Table comments: Contains list of available request statuses
Column
Type
request_status_id int(11)
Null Default
No
Comments
Request status unique identifier
name
varchar(255) No
Name of the request status
active
char(1)
Y - if request status is active, N - inactive
No
Indexes
Keyname
Type Unique Packed
PRIMARY BTREE Yes
No
Column
Cardinality Collation Null
request_status_id 2
A
No
role
Table comments: Contains user roles
Column
Type
Null Default
No
Comments
role_id
int(11)
Role unique identifier
name
varchar(255) No
Role name
active
char(1)
Y - if role is active, N - inactive
No
Indexes
Keyname
Type Unique Packed Column Cardinality Collation Null
PRIMARY BTREE Yes
No
role_id
4
A
No
role_permission
Table comments: Map user role to allowed permissions
Column
Type
Null Default
Comments
role_permission_id int(11)
No
Unique identifier
role_id
int(11)
No
Role: foreign key to role.role_id
permission_id
int(11)
No
Permission: foreign key to
permission.permission_id
Indexes
Keyname
Type Unique Packed
PRIMARY BTREE Yes
No
user_role_id BTREE No
No
Column
Cardinality Collation Null
role_permission_id 25
A
No
role_id
A
No
permission_id
A
No
session
Table comments: Contains all classes sessions
Column
Type
Null Default
Comments
session_id
int(11)
No
Session unique identifier
class_id
int(11)
No
Class: foreign key to class.class_id
tutor_id
int(11)
No
Tutor assigned to the class: foreign key to
user.user_id
location_id
int(11)
No
Location of the class: foreign key to
location.location_id
notes
text
No
Special notes
scheduled_date
date
No
Date when the class is scheduled to take place
start_time
time
No
Time when class started
end_time
time
No
Time when class ended
No
Session status: foreign key to
session_status.session_status_id
session_status_id int(11)
Indexes
Keyname
Type Unique Packed
PRIMARY BTREE Yes
course_id
BTREE No
No
No
Column
session_id
Cardinality Collation Null
0
A
No
class_id
A
No
tutor_id
A
No
location_id
A
No
session_status_id
A
No
session_history
Table comments: Contains history of class session change of status
Column
Type
Null Default
Comments
session_history_id int(11)
No
Unique identifier
session_id
int(11)
No
Class session: foreign key to
session.session_id
session_status_id int(11)
No
Session status: foreign key to
session_status.session_status_id
user_id
int(11)
No
User who changed the status: foreign key to
user.user_id
modified_date
datetime
No
Date and time when status of the class has
been changed
Indexes
Keyname
Type Unique Packed
PRIMARY BTREE Yes
session_id BTREE No
No
No
Column
Cardinality Collation Null
session_history_id 0
A
No
session_id
A
No
session_status_id
A
No
user_id
A
No
session_rate_student
Table comments: Contains students reviews of the classes
Column
Type
Null
Default
Comments
session_rate_student_id
int(11) No
Unique identifier
session_id
int(11) No
Class session: foreign key to
session.session_id
session_rate_tutor_criteri
int(11) No
a_id
Rating criteria: foreign key to
session_rate_tutor_criteria.session_rate_t
utor_criteria_id
rate
Rating
int(11) No
Indexes
Keyname
Type
Unique Packed
Column
Cardinality Collation Null
No
session_rate_student_
0
id
A
No
session_log_id BTREE No
No
session_rate_tutor_cri
teria_id
A
No
session_id
No
session_id
A
No
PRIMARY
BTREE Yes
BTREE No
session_rate_student_criteria
Table comments: Contains all rating criteria for tutors to rate students
Column
Type
session_rate_student_criteria_id int(11)
Null Default
No
Comments
Unique identifier
criteria_name
varchar(255) No
Name of the rating criteria
criteria_description
text
No
Description of the rating
criteria
order_index
int(11)
No
Order index of the rating
criteria
active
char(1)
No
Y - if rating is active, N inactive
Indexes
Keyname
Type
Unique Packed
PRIMARY BTREE Yes
Column
Cardinality Collation Null
session_rate_student_crite
0
ria_id
No
A
No
session_rate_tutor
Table comments: Contains tutors reviews of the students
Column
Type
Nul
Default
l
Comments
session_rate_student_id
int(11) No
Unique identifier
session_id
int(11) No
Class session: foreign key to
session.session_id
student_id
int(11) No
Student: foreign key to user.user_id
session_rate_student_crit
int(11) No
eria_id
Rate criteria: foreign key to
session_rate_student_criteria.session_rate_st
udent_criteria_id
rate
Rate
int(11) No
Indexes
Keyname
PRIMARY
Type Unique Packed
BTREE Yes
No
session_log_id BTREE No
No
session_id
No
BTREE No
Column
session_rate_student_id
Cardinality Collation Null
0
A
No
student_id
A
No
session_rate_student_criteria_id
A
No
session_id
A
No
session_rate_tutor_criteria
Table comments: Contains all rating criteria for students to rate tutors
Column
Type
Null Default
rate_criteria_tutor_id int(11)
No
Comments
Unique identifier
criteria_name
varchar(255) No
Name of the rate criteria
criteria_description
text
No
Description of the rate criteria
order_index
int(11)
No
Order index of the rate criteria
active
char(1)
No
Y - if criteria is active, N - inactive
Indexes
Keyname
Type Unique Packed
PRIMARY BTREE Yes
No
Column
Cardinality Collation Null
rate_criteria_tutor_id 4
A
No
session_status
Table comments: Contains the list of class session statuses
Column
Type
session_status_id int(11)
Null Default
No
Comments
Session status unique identifier
name
varchar(255) No
Class session status name
active
char(1)
Y - if session status active, N - inactive
No
Indexes
Keyname
Type Unique Packed
PRIMARY BTREE Yes
No
Column
Cardinality Collation Null
session_status_id 3
A
No
session_user
Table comments: Assigns the list of students to a particular class
Column
Type
Null Default
Comments
session_user_id
int(11)
No
Unique identifier
session_id
int(11)
No
Class session: foreign key to
session.session_id
student_id
int(11)
No
Student: foreign key to user.user_id
attendance_status_id int(11)
No
Attendance status: foreign key to
attendance_status.attendance_status_id
tutor_notes
Notes of the tutor related to a specific
student
varchar(255) No
Indexes
Keyname
Type Unique Packed
PRIMARY BTREE Yes
No
session_id BTREE No
No
Column
session_user_id
Cardinality Collation Null
0
A
No
session_id
A
No
student_id
A
No
attendance_status_id
A
No
subject
Table comments: Contains all available subjects
Column
Type
subject_id int(11)
name
Null Default
No
Comments
Subject unique identifier
varchar(255) No
Subject name
short_name varchar(255) No
Subject short name
active
Y - if subject is active, N - inactive
char(1)
No
Indexes
Keyname
Type Unique Packed Column Cardinality Collation Null
PRIMARY BTREE Yes
No
subject_id 101
A
No
user
Table comments: Contains users of the system
Column
Type
Null Default
user_id
int(11)
uin
varchar(255) No
UIN
first_name
varchar(255) No
First name
last_name
varchar(255) No
Last name
street
varchar(255) No
Street address
city
varchar(255) No
City
state
varchar(255) No
State
zip
varchar(10) No
Zip code
phone
varchar(255) No
Telephone
alt_phone
varchar(255) No
Alternative telephone
email
varchar(255) No
Email
username
varchar(255) No
Username
password
varchar(255) No
Password
role_id
int(11)
No
Not used
last_logon_date datetime
No
Last date when user was logged in
active
No
Y - if user is active, N - inactive
char(1)
No
Comments
User unique identifier
Indexes
Keyname
PRIMARY
Type Unique Packed Column Cardinality Collation Null
BTREE Yes
last_used_role_id BTREE No
No
user_id 2
A
No
No
role_id
A
No
user_location
Table comments: Maps users to locations
Column
Type
Null Default
Comments
user_location_id int(11)
No
Unique identifier
user_id
int(11)
No
User: foreign key to user.user_id
location_id
int(11)
No
Location: foreign key to location.location_id or
'0' for all
Indexes
Keyname
Type Unique Packed
PRIMARY BTREE Yes
No
user_id
No
BTREE No
Column
Cardinality Collation Null
user_location_id 2
A
No
user_id
A
No
location_id
A
No
user_role
Table comments: Maps user to user roles
Column
Type
Null Default
Comments
user_role_id int(11)
No
Unique identifier
user_id
int(11)
No
User: foreign key to user.user_id
role_id
int(11)
No
User role: foreign key to role.role_id
Indexes
Keyname
Type Unique Packed
PRIMARY BTREE Yes
No
user_id
No
BTREE No
Column
Cardinality Collation Null
user_role_id 5
A
No
user_id
A
No
role_id
A
No
user_session
Table comments: Contains active mobile sessions
Column
Type
Null Default
Comments
user_session_id varchar(50) No
unique user session id
created_date
datetime
No
Date and time when current user session has
been initiated
last_used_date datetime
No
Date and time of the last query from the user
user_id
int(11)
No
User: foreign key to user.user_id
ip_address
varchar(15) No
IP address of the user
Indexes
Keyname
Type Unique Packed
Column
Cardinality Collation Null
PRIMARY BTREE Yes
No
user_session_id 5
A
No
user_id
No
user_id
A
No
BTREE No
Figure 1. Initial database diagram
3.1.7 Web Interface Requirements (Denis Mileyko)
The main purpose of the Web Interface is to give students, tutors, staff and administrator
the ability to access tutoring system from any device capable of browsing web pages and
connected to the Internet. Web Interface shall provide users with ability to log in to the system
and perform tasks based on their role. Web Interface must meet the requirements of the sitemap
(see Figure 2).
Home
Dashboard
Messages
Find a Class
My Classes
Search by:
- Subject
- Date Range
- Location
- Tutor
List scheduled
classes
Reviews
List reviews
Class not found
Class
Submit request
about the class
that you are
interested to
take.
My Availability
My Account
- Display calendar
of availability
- Modify availability
History
List classes taken
in the past
Logout
Account
Information
Exit the app
Preferences
Profile
- Notifications
- Subjects of
interest
Account
Information
- Information
about class.
- Sign Up
Home
Dashboard
My Classes
Messages
My Availability
- List scheduled classes
- List Classes History
- Display calendar
of availability
- Modify availability
Class
New Class
- Information about class.
- List of signed up student
- Check In/Out students
- Request to cancel class
- Request to reschedule class
Submit request about the
class that you willing to teach
My Account
Logout
Account Information
Preferences
- Notifications
- Subjects of
interest
Profile
Account
Information
Exit the app
Dashboard
Logout
Home
Messages
Classes
List classes filtered by:
- Subject
- Tutor
- Date and Time Range
- List Classes History
Allow create/edit
classes.
Availabilities
Settings
Availabilities
filtered by:
- Date and Time
Range
- Subject
- Tutor
- Student
- Manage
notifications
Exit the app
Users
Locations
Reports
Display list of users
filtered by: user
role, active/inactive.
Allow to create and
edit user accounts.
List of locations
filtered by: active/
inactive.
Allow to create and
edit locations.
Multiple reports
User
Class
- Information about
class.
- List of signed up
student
- Check In/Out
students
- Cancel class
- Reschedule class.
Availability
Information
about availability
- Account
information
- User permissions
Location
Location Details
Looking for a class
List classes that students
are willing to take filtered
by:
- Subject
- Date and Time Range
- Date when request has
been made
I can teach
List tutors requests to
qualify for teaching a class
filtered by:
- Subject
- Date and Time Range
- Date when request has
been made
Figure 2. Web Interface Sitemap.
The following functional requirements must be met:
3.1.7.1 Login Page
The Login Page shall authenticate users in the system. The following requirements
must be met:
3.1.7.1.1 Display the following input fields:
a. Username
b. Password
3.1.7.1.2 There must be a Login button on the login page
3.1.7.1.3 Login button triggers authentication process
3.1.7.1.4 Authentication process must meet the following requirements:
3.1.7.1.4.1 If username + password combination match record in database, new login
session gets created.
3.1.7.1.4.2 If username + password combination has no match in database, error message
must be displayed.
3.1.7.2 Dashboard Page
The dashboard page allows user to view system notifications.
The following requirements must be met:
3.1.7.2.1 Notification must be displayed as a table that includes columns:
a. Date
b. Message
3.1.7.2.2 Notification must be sorted by default by notification date descending
3.1.7.3 Find a Class Page
The Find a Class page allows user to find available class.
The following requirements must be met:
3.1.7.3.1 Display classes as table with the following columns:
a. CRN
b. Course
c. Subject
d. Location
e. Tutor
f. Capacity
g. Registered for Class
h. Class Times
3.1.7.3.2 Provide the following search criteria:
a. Location
b. Subject
c. Course
d. Tutor.Keyword
3.1.7.3.3 There must be an Apply Filter button that applies selected search criteria to the
search results and refresh list of classes.
3.1.7.3.4 There must be the “Sign Up” button on each row of the table to allow user to
sign up for the class displayed at that row.
3.1.7.3.5 Provide “Request New Class” button that will take user to “Request New
Class” Page.
3.1.7.4 My Classes Page
The My Classes page allows user to view classes that he/she signed up for.
The following requirements must be met:
3.1.7.4.1
Display classes that user has signed up for in the form of a calendar. Square for
each calendar day must display the following information for each class:
a.
CRN
b.
Course
c.
Class Time
d.
Class Status
3.1.7.4.2 Display classes that user has signed up for in the form of a list with the
following columns:
a. CRN
b. Course
c. Subject
d. Location
e. Tutor
f. Class Times
g. Class Status
3.1.7.4.3 Provide “Review” button next to each class for students
3.1.7.4.3.1 Display Class Review page (Section 3.1.7.9) to allow student rate tutor
3.1.7.4.4 Provide “Session” button next to each class for tutors
3.1.7.4.4.1 Display Class Session page (Section 3.1.7.10) to allow tutors check in/out
students and rate students
3.1.7.4.5 Allow user to filter displayed classes by the following criteria:
a. Subject
b. Location
c. Course
d. Start Date
e. End Date
f. Class Status
3.1.7.5 My Availability Page
The My Availability page allow user to input time frames that he/she is available.
The following requirements must be met:
3.1.7.5.1
3.1.7.5.2
3.1.7.5.3
3.1.7.5.4
3.1.7.5.5
Display calendar for the custom date range
Each row of the calendar displays 7 squares, one for each day of the week
Square for each day must display the time range when user is available that day
Square for each day must display the time when user has a class that day
Provide button “Add New Availability”
3.1.7.5.5.1 Display popup window to allow user enter his/her availability. The following
requirements must be met:
a. Must allow user to enter the following information:
1. Start date
2.End date
3.Time Range
4.Check one or more days of the week that the time rage applies to
b. Display entered availability information on the calendar.
3.1.7.6 My Account Page
The My Account page allows user to manage user account, set notification preferences.
The following requirements must be met:
3.1.7.6.1 Display Profile section
3.1.7.6.1.1 Must allow user to update profile information including the following fields:
a. First Name
b. Last Name
c. Address
d. City.State
e. Zip
f. Phone Number
g. Email Address
h. Username
i. Password
3.1.7.6.1.2 Display Preferences section
a. Must allow user to change the following notification preferences:
1. Notify via email
2. Notify via text message
3. Notify via dashboard message
b. Must allow user to enter subjects and courses of interest.
3.1.7.7 Classes Page
The Classes page allows user to create new classes, edit existing classes.
The following requirements must be met:
3.1.7.7.1 Display classes in the form of a list with the following columns:
a.
CRN
b.
Course
c.
Subject
d.
Location
e.
Tutor
f.
Class Times
g.
Class Status
3.1.7.7.2 Provide Edit button next to each class
3.1.7.7.2.1 Display Class Details Page (Section 3.1.7.8) for the selected class
3.1.7.7.3 Provide Delete button next to each class
3.1.7.7.3.1 Removes select class
3.1.7.7.4 Provide Add Class button
3.1.7.7.4.1 Display Class Details Page (Section 3.1.7.8) to allow user enter information
related to the new class
3.1.7.7.5 Allow user to filter displayed classes by the following criteria:
a. Subject
b. Location
c. Course
d. Start Date
e. End Date
f. Class Status
3.1.7.7 Class Details Page
The Class Details page allows user to add new class to the system, edit existing class.
The following requirements must be met:
3.1.7.7.1 Must allow user to enter/view the following fields:
a. Location
b. Subject
c. Course
d. CRN
e. Tutor
f. Capacity
g. Class Times
h. Class Status
3.1.7.7.2 Provide Save button
a. Save class information to the database
b. Redirect user to Classes page
3.1.7.7.3 Provide Delete button
a. Delete class from the system
b. Redirect user to Classes page
3.1.7.7.4 Provide Cancel button
a. Redirect user to Classes page without saving any information
3.1.7.8 Class Review Page
The Class Review page allows students to rate tutor.
The following requirements must be met:
3.1.7.8.1 Display class information including the following fields:
a. Location
b. Subject
c. Course
d. CRN
e. Tutor
f. Class Time
3.1.7.8.2 Display the list of tutor review questions including the following columns:
a. Question
b. Answering scale
c. Rate
3.1.7.8.3 Provide Cancel button
a. Redirect user to previous page without saving any information
3.1.7.8.4 Provide Save button
a. Save user input from Rate column into the system
b. Redirect user to the previous page
3.1.7.9 Class Session Page
The Class Session page allows tutor to check in/out students, mark students as absent, rate
students. The following requirements must be met:
3.1.7.9.1 Display list of students with the following column:
a. Student Name
b. Check In Time
c. Check Out Time
d. Review Status (Completed/Incomplete)
3.1.7.9.2 Provide “Rate” button next to each student
a. Display Review Student Page (Section 3.1.7.11) to allow tutor review the student
3.1.7.9.3 Provide Check In button next to each student
a. Enter student’s check in time into the system
3.1.7.9.4 Provide Check Out button next to each student
a. Enter student’s check out time into the system
3.1.7.9.5 Provide Exit button
a. Close Class Session page
b. Redirect to the previous page
3.1.7.10 Review Student Page
The Review Student Page allows tutor rate student
The following functional requirements must be met:
3.1.7.10.1 Display
3.1.7.10.2 Display the list of review questions including the following columns:
a. Question
b. Answering scale
c. Rate
3.1.7.10.3 Provide Cancel button
a. Redirect user to previous page without saving any information
3.1.7.10.4 Provide Save button
a. Save user input from Rate column into the system
b. Redirect user to the previous page
3.1.7.11 Locations
The Location page allows user to create new locations, edit existing location.
The following requirements must be met:
3.1.7.11.1 Display locations in the form of a list with the following columns:
h.
Name
i.
Address
j.
Phone
k.
Email
l.
Active
3.1.7.11.2 Provide Edit button next to each location
3.1.7.11.2.1 Display Location Details Page (Section 3.1.7.12) for the selected location
3.1.7.11.3 Provide Delete button next to each location
3.1.7.11.3.1 Removes select location
3.1.7.11.4 Provide Add Location button
3.1.7.11.4.1 Display Location Details Page (Section 3.1.7.12) to allow user enter information
related to the new location
3.1.7.11.5 Allow user to filter displayed locations by the following criteria:
g. Active
3.1.7.12 Location Details Page
The Location Details page allows user to add new location to the system, edit existing location.
The following requirements must be met:
3.1.7.12.1 Must allow user to enter/view the following fields:
i. Name
j. Street
k. City
l. State
m. Zip
n. Phone
o. Email
p. Active
3.1.7.12.2 Provide Save button
c. Save location information to the database
d. Redirect user to Locations page (Section 3.1.7.11)
3.1.7.12.3 Provide Delete button
c. Delete location from the system
d. Redirect user to Locations page (Section 3.1.7.11)
3.1.7.12.4 Provide Cancel button
b. Redirect user to Locations page (Section 3.1.7.11) without saving any information
3.1.7.13 Users
The Users page allows user to create new users, edit existing users.
The following requirements must be met:
3.1.7.13.1 Display users in the form of a list with the following columns:
a. Name
b. UIN
c. Address
d. Email
e. Active
3.1.7.13.2 Provide Edit button next to each user
3.1.7.13.2.1 Display User Details Page (Section 3.1.7.14) for the selected user
3.1.7.13.3 Provide Delete button next to each user
3.1.7.13.3.1 Removes selected user
3.1.7.13.4 Provide Add User button
3.1.7.13.4.1 Display User Details Page (Section 3.1.7.14) to allow entering information related
to the new user
3.1.7.13.5 Allow to filter displayed users by the following criteria:
a. Role
b. Active
c. UIN
d. Name
3.1.7.14 User Details Page
The User Details page allows to add new user to the system, edit existing user
3.1.7.14.1 Must allow to enter/view the following fields:
a. First Name
b. Last Name
c. Username
d. Password
e. Active
f. Street
g. City
h. State
i. Zip
j. Phone
k. Email
3.1.7.14.2 Provide the list of available user roles.
a. Assign user to roles that have checkboxes checked.
3.1.7.14.3 Provide the list of locations.
a. Allow user access to the selected locations only or all if selected.
3.1.7.14.4 Provide Save button
e. Save user information to the database
f. Redirect user to Users page (Section 3.1.7.13)
3.1.7.14.5 Provide Delete button
e. Delete user from the system
f. Redirect user to Users page (Section 3.1.7.13)
3.1.7.14.6 Provide Cancel button
c. Redirect user to Users page (Section 3.1.7.13) without saving any information
3.1.7.15 Roles
The Roles page allows user to create new roles, edit existing roles.
The following requirements must be met:
3.1.7.15.1 Display roles in the form of a list with the following columns:
a. Name
b. Active
3.1.7.15.2 Provide Edit button next to each roles
3.1.7.15.2.1 Display Role Details Page (Section 3.1.7.16) for the selected role
3.1.7.15.3 Provide Delete button next to each role
3.1.7.15.3.1 Removes selected roles
3.1.7.15.4 Provide Add Role button
3.1.7.15.4.1 Display Role Details Page (Section 3.1.7.16) to allow entering information related
to the new role
3.1.7.15.5 Allow to filter displayed roles by the following criteria:
a. Active
3.1.7.16 Role Details Page
The Role Details page allows to add new role to the system, edit existing role
3.1.7.16.1 Must allow to enter/view the following fields:
a. Name
b. Active
3.1.7.16.2 Provide the list of available permissions.
b. Assign role to selected permission.
3.1.7.16.3 Provide Save button
g. Save role information to the database
h. Redirect user to Roles page (Section 3.1.7.15)
3.1.7.16.4 Provide Delete button
g. Delete role from the system
h. Redirect user to Roles page (Section 3.1.7.15)
3.1.7.16.5 Provide Cancel button
b. Redirect user to Roles page (Section 3.1.7.15) without saving any information
3.1.8. Reporting Module (Corey Campbell)
This section describes the reporting module functionality. Administrators have the ability to
customize reports and transfer report data to external applications. The following functional
requirements must be met:
3.1.8.1. Must provide administrators with the ability to generate custom reports
3.1.8.1.1 Must provide reports listing tutors who want to qualify for tutoring a
class
3.1.8.1.1 Required to be filtered by selectable fields

Subject

Date

Time range

Date when request has been made
3.1.8.2 Must provide reports listing classes students are willing to take
3.1.8.2.1.1 Required to be filtered by selectable fields

Subject

Date

Time range

Date when request has been made
3.1.8.3 Must provide administrators with the ability to export report data to CSV format
3.2 Performance Requirements (Denis Mileyko)
3.2.1 Design & Layout: Provide optimal web site layout and design for iPads and other
mobile devices. The resolution size of 962x667 pixels will be used.
3.2.2 Availability: This project interface will be accessible from the Internet.
3.2.3 Security: Project functions are limited by web page user logins. Users will have
access as noted in the USER CHARACTERS section of this document. MySQL
Server and Unix system permissions on the web server will handle all other security.
3.2.4 Backup Procedures: Backups will be performed according to the Enterprise
Information Security Policy.
Download