Student Attendance System

47
Student Attendance System Design Document Group #1

description

Student Attendance System. Design Document Group #1. Background. Customer: Miami Dade College 6 Campuses and Multiple outreach centers Largest College in the US (> 160,000 Students per year) Problem: New Federal Government regulations regarding the disbursement of Financial Aid funds. - PowerPoint PPT Presentation

Transcript of Student Attendance System

Page 1: Student Attendance System

Student Attendance SystemDesign Document

Group #1

Page 2: Student Attendance System

Background

Customer: • Miami Dade College

– 6 Campuses and Multiple outreach centers– Largest College in the US (> 160,000

Students per year)

Problem:• New Federal Government regulations

regarding the disbursement of Financial Aid funds

Page 3: Student Attendance System

Objectives

• Provide a system that allows the college to meet federal financial aid requirements

• Allow for the electronic collection of student attendance data without direct instructor intervention

• Make the collected data available to both Staff and Students

• Leverage the College’s existing technology investments

Page 4: Student Attendance System

Target Technology Environment

• Microsoft Windows 2000/2003 Platform

• .NET Framework

• Internet Information Server (IIS) (ASP.NET)

• Web interface for students / faculty

• College ID Card (Magstripe)

• Ethernet & TCP/IP for connectivity

Page 5: Student Attendance System

The Customer’s Expectation

Student / Employee Web Portal

Database

Data Collection Process

Network

College Enterprise System

Web Clients Web Clients Web Clients

Students Faculty Administrators

Student

Student

Student

Student

Page 6: Student Attendance System

Hardware Selection

• Approx 800 Classrooms (some with 2 readers)

• Total 1,000 Check-In Terminals

• Very small off-the-shelf market

• Closest Vertical Market is Employee Time & Attendance

• T&A has several key differences

Page 7: Student Attendance System

Hardware Selection

• Typical hardware architecture found in T&A was 1 of 2 types.– Network Attached Smart Devices

(~$1000/unit)– Network Attached Smart Controllers

(~$12,000/20 units = $600/unit)

• Price point of both approaches was very high.

Page 8: Student Attendance System

Hardware Selection

• Existing solutions would cost between $1,000,000 - $600,000 for hardware alone.

• Needed to reduce hardware cost.• Build on success of smart controllers and

consolidate processing.• Selected “dumb” Readers ($100) and

Network attached Terminal Servers ($1200/32 readers) = $140/Unit = $140,000

Page 9: Student Attendance System

Hardware Selection

• Digi PortServer TS

• IBC SmartMag J

Page 10: Student Attendance System

Software Design Considerations

• High Data Volume / Data-Driven Application• Performance Expectations/Requirements and Scalability • Interaction with existing systems at the database level• Initial Attempts at a Pure OO design were inefficient and

offered sub-optimal performance• Final design focuses on a three-tier approach allowing

data-tier to be implemented by off-the-shelf components. • New model offers needed performance at the expense of

OO model at the data layer

Page 11: Student Attendance System

«subsystem»AttendanceHistory SubSystem

«subsystem»CollegeData Subsystem

«subsystem»ReaderConfiguration SubSystem

«subsystem»CheckInProcessing SubSystem

«subsystem»WebPortal SubSystem

«subsystem»CommandLineUtility SubSystem

«topLevelPackage»Static Model::Student Attendance System

«subsystem»PersistentDataStore SubSystem

«subsystem»DirectorySecurity SubSystem

Page 12: Student Attendance System

Data Layer

Page 13: Student Attendance System

Data Layer

• PersistentDataStore– Microsoft SQL Server 2000– ADO.Net

• DirectorySecurity– Microsoft Active Directory 2003– ADSI / System.DirectoryServices

Page 14: Student Attendance System

Business Layer

Page 15: Student Attendance System

Business Layer

• Divided into three subsystems by functionality– CollegeData

• Responsible for providing read-only access to required College data.

– AttendanceData• Responsible for the management of attendance

data collected by the system

– ReaderConfiguration• Responsible for the management of

Page 16: Student Attendance System

CollegeData SubSystem

«subsystem»CollegeData Subsystem

+FormatClassId(in ClassId : String) : String+IsValidClassId(in ClassId : String) : Boolean+IsExistingClassId(in ClassId : String) : Boolean+GetClass(in ClassId : String) : SqlDataReader

CollegeData Subsystem::Classes

+FormatEmployeeId() : String+IsValidEmployeeID(in EmployeeID : Integer) : Boolean+IsExistingEmployeeId(in EmployeeID : Integer) : Boolean+GetEmployee(in EmployeeID) : SqlDataReader+GetEmployee(in PersonID) : SqlDataReader+FormatEmployeeId() : String

+CurrentUserEmployeeID : String

CollegeData Subsystem::Employees

+IsFacultyMember(in EmployeeID : String) : Boolean

CollegeData Subsystem::Faculty

+GetFacultyClasses(in EmployeeID : String) : SqlDataReader+GetFacultyClasses(in EmployeeId : String, in TermId : String) : SqlDataReader

CollegeData Subsystem::FacultyClasses

+GetStudentEnrollment(in StudentID : String) : SqlDataReader+GetStudentEnrollment(in StudentID : String, in TermID : String) : SqlDataReader

CollegeData Subsystem::StudentEnrollment

+FormatStudentId(in StudentId : Integer) : String+IsValidStudentId(in StudentID : Integer) : Boolean+IsExistingStudentId(in StudenId : Integer) : Boolean+GetStudent(in StudentId : Integer) : SqlDataReader

+CurrentUserStudentID : String

CollegeData Subsystem::Students

+FormatTermId(in TermID : String) : String+IsValidTermId(in TermId : String) : Boolean+IsExistingTermId(in TermId : String) : Boolean+GetTermId(in TermDate : Date) : String

+CurrentTermID : String

CollegeData Subsystem::Terms

Page 17: Student Attendance System

AttendanceHistory Subsystem

+GetCurrentUserStudentAttendance() : SqlDataReader+GetStudentAttendance(in ClassID : String) : SqlDataReader+GetClassAttendance(in ClassId : Integer) : SqlDataReader+GetClassAttendance(in ClassId : Integer, in StartDate : Date, in EndDate : Date) : SqlDataReader+GetSystemAttendanceHistory(in StartDate : Date, in EndDate : Date) : SqlDataReader+GetSystemAttendanceHistory(in TermId : String) : SqlDataReader+CreateAttendanceEntry(in ClassId : Integer, in StudentId : Integer, in Campus, in Room, in Date) : Integer+CreateSystemAttendanceEntry(in ClassId : Integer, in StudentId : Integer) : Integer+EditAttendanceEntry(in EntryID : Integer, in Campus : String, in Room : String, in EntryDate : Date)+LogAttendanceHistorySwipe(in ISO : String, in CampusId : String, in Room : String) : AttendanceHistorySwipeResponse

AttendanceHistory SubSystem::AttendanceHistory

+ResponseStatus : ResponseStatuses+ResponseException : Exception+StudentId : String+ClassId : String+LastName : String

AttendanceHistory SubSystem::AttendanceHistorySwipeResponse

«subsystem»AttendanceHistory SubSystem

+-10 = Error+0 = OK+10 = InvalidISO+20 = UnknownISO+30 = NotEnrolled

«enumeration»AttendanceHistory SubSystem::ResponseStatuses

Page 18: Student Attendance System

ReaderConfiguration Subsystem

«subsystem»ReaderConfiguration SubSystem

+AddConfiguration(in ReaderConfigurationGroupID : Integer, in HostAddress : String, in Port : Integer, in CampusCode : String, in Room : String) : Integer+EditConfiguration(in ReaderConfigurationID : Integer, in ReaderConfigurationGroupId : String, in HostAddress : String, in Port : Integer, in CampusCode : String, in Room : String)+GetConfigurations() : SqlDataReader+GetConfigurations(in ReaderConfigurationId : Integer) : SqlDataReader+IsExistingConfiguration(in ReaderConfiguration : Integer) : Boolean+DeleteConfiguration(in ReaderConfigurationID : Integer)+GetConfigurations(in ReaderConfigurationID : Integer) : SqlDataReader+GetConfigurations(in HostAddress : String, in Port : Integer) : SqlDataReader+GetConfigurations(in HostAddress : String) : SqlDataReader

ReaderConfiguration SubSystem::ReaderConfiguration

+AddConfigurationGroup(in GroupName : String) : Integer+EditGroup(in ReaderConfigurationGroupID : Integer, in GroupName : String)+GetGroups() : SqlDataReader+GetGroups(in ReaderConfigurationGroupID : Integer) : SqlDataReader+DeleteGroup(in ReaderConfigurationGroupID : Integer)+IsExistingReaderConfigurationGroup(in ReaderConfigurationGroupId : Integer) : Boolean

ReaderConfiguration SubSystem::ReaderConfigurationGroups

+IsAllowedToManageSystem() : Boolean

ReaderConfiguration SubSystem::User

Page 19: Student Attendance System

Presentation Layer

Page 20: Student Attendance System

User Web Portals

• The Student Attendance System provides users access via four role focused portals:

– Student Portal– Faculty Portal– Financial Aid Administrative Portal– Administrative Portal

– Each portal is focused on the needs of the particular user

Page 21: Student Attendance System

Presentation LayerStudent Web Portal

Page 22: Student Attendance System

S_GetCurrentTerm

S_ListClassEnrolled

S_ShowAttendanceDetail

Student Attendance SystemStudent Web Portal

Page 23: Student Attendance System

Student Attendance System – Student WebsiteStudent Attendance System – Student Website

Welcome to the Student Attendance SystemStudent Website

Select Term Select

To view your attendance history, please select a term below.

S_GetCurrentTerm

Page 24: Student Attendance System

Student Attendance History – View My Class ScheduleStudent Attendance History – View My Class Schedule

Welcome Joe Smith

Student Attendance System

To review your attendance history, please select a course from the list below.

Your Class Schedule:

COP-5991

CEN-5011

Course Number

Advanced Operating Systems

Advanced Software Engineering

Title

R

W

Days

6:25pm

6:25pm

Start Time

9:00pm

9:00pm

End Time

S_ListClassEnrolled

Page 25: Student Attendance System

Student Attendance System – View My Attendance HistoryStudent Attendance System – View My Attendance History

COP-5991 Advanced Operating Systems

Student Attendance System

Your Attendance History:

10/28/2004

10/21/2004

10/14/2004

10/7/2004

9/30/2004

9/23/2004

9/16/2004

9/9/2004

9/2/2004

Class Date

--

--

--

--

6:23:07

6:25:48pm

6:27:09pm

Absent

6:15:03pm

Check-In Time

S_ShowAttendanceDetail

Page 26: Student Attendance System

-InitializeComponent()#OnInit()-Page_Load(in sender : Object, in e : EventArgs)-Select_Click(in sender : Object, in e : EventArgs)

-designerPlaceholderDeclaration : Object#Select : Button#TermSelection : ComboBox

S_GetCurrentTerm

-InitializeComponent()-Page_Load(in sender : object, in e : EventArgs)-CourseGrid1_Click(in sender : object, in e : EventArgs)

-StudentName : Label#CourseGrid1 : DataGrid

S_ListClassEnrolled

-InitializeComponent()-Page_Load(in sender : object, in e : EventArgs)

-CourseName : Label#TimeGrid1 : DataGrid

S_ShowAttendanceDetail

«subsystem»WebPortal SubSystem

Student Web Classes

Page 27: Student Attendance System

Presentation LayerFaculty Web Portal

Page 28: Student Attendance System

F_GetCurrentTerm Student Attendance SystemFaculty Web Portal

F_ListClassTaught

F_ListClassDetail

F_EditStudentAttendanceEntry

F_ExportClassAttendanceHistory

Page 29: Student Attendance System

Student Attendance System – Faculty WebsiteStudent Attendance System – Faculty Website

Welcome to the Student Attendance SystemFaculty Website

Select Term Select

To access attendance history for the courses you are teaching, please select a term below.

F_GetCurrentTerm

Page 30: Student Attendance System

Student Attendance System - View Classes TaughtStudent Attendance System - View Classes Taught

Welcome Dr. Jones

Student Attendance System

To review Class attendance history, please select a course from the list below.

List of Classes Taught

COP-5991

CEN-5011

Course Number

Advanced Operating Systems

Advanced Software Engineering

Title

R

W

Days

6:25pm

6:25pm

Start Time

9:00pm

9:00pm

End Time

F_ListClassTaught

Page 31: Student Attendance System

Student Attendance System - View Class Attendance HistoryStudent Attendance System - View Class Attendance History

COP-5991 Advanced Operating Systems

Student Attendance System

Class Attendance History

Phillips, Yukon

Zucker, Brian

Smith, Joe

Doe, John

Mann, Fredrick

Miller, Dennis

Jones, Tommy

Smith, Sally

Tucker, Andrew

Student

6:55:00pm

6:35:45pm

6:22:44pm

6:12:09pm

6:23:07pm

6:25:48pm

6:27:09pm

Absent

6:15:03pm

9/ 2/ 2004

6:55:00pm

6:15:45pm

6:22:44pm

6:54:09pm

6:21:07pm

6:26:28pm

6:27:56pm

Absent

6:25:03pm

9/ 9/ 2004

6:33:34pm

6:35:45pm

6:22:44pm

Absent

6:23:07pm

6:25:48pm

6:27:09pm

Absent

6:15:03pm

9/ 16/ 2004

6:55:00pm

6:35:45pm

6:22:44pm

6:12:09pm

6:23:07pm

6:25:48pm

6:27:09pm

Absent

6:23:05pm

9/ 23/ 2004

6:55:22pm

6:25:15pm

6:22:44pm

6:12:09pm

6:23:07pm

Absent

6:27:09pm

Absent

6:15:03pm

9/ 30/ 2004

Close Export / Save

Instructions: To correct/override select a link above.

F_ListClassDetail

Page 32: Student Attendance System

Student Attendance System - Update/OverrideStudent Attendance System - Update/Override

Override

Enter Text

System Record:

New Value:

6:25:05pm

Show as Absent

Cancel

Update/Override

F_EditStudentAttendanceEntry

Page 33: Student Attendance System

«subsystem»WebPortal SubSystem

-InitializeComponent()#OnInit()-Page_Load(in sender : object, in e : EventArgs)-Select_Click(in Sender : Object, in e : EventArgs)

-designerPlaceholderDeclaration : Object#Select : Button#TermSelection : ComboBox

F_GetCurrentTerm

-InitializeComponent()-Page_Load(in sender : object, in e : EventArgs)-CourseGrid2_Click()

-ProfName : Label#CourseGrid2 : DataGrid

F_ListClassTaught

-InitializeComponent()-Page_Load(in sender : object, in e : EventArgs)-TimeGrid2_Click(in sender : object, in e : EventArgs)-Close_Click(in sender : object, in e : EventArgs)-Export_Save(in sender : object, in e : EventArgs)

#CourseName : Label#TimeGrid2 : DataGrid#Close : Button#Export_Save : Button

F_ListClassDetail

-Page_Init(in Sender : Object, in e : EventArgs)-Page_Load(in Sender : Object, in e : EventArgs)-Initialize Component()-designerPlaceholderDeclaration()-Override_button_Click(in Sender : Object, in e : EventArgs)-Cancel_cutton_Click(in Sender : Object, in e : EventArgs)

#Override_button : Button#Cancel_button : Button#OriginalCheckIn_Label : Label#Override_TextBox : Textbox#Absent_CheckBox : CheckBox

F_EditStudentAttendanceEntry

-Page_Init(in Sender : Object, in e : EventArgs)-Page_Load(in Sender : Object, in e : EventArgs)-Initialize Component()

-designerPlaceholderDeclaration : Object

F_ExportClassData

Faculty Web Classes

Page 34: Student Attendance System

Presentation LayerFinancial Aid Administrative Web Portal

Page 35: Student Attendance System

FA_GetCurrentTerm

FA_DownloadAttendanceExtract

Student Attendance SystemFinancial Aid Web Portal

Page 36: Student Attendance System

Student Attendance System - Financial Aid AdministratorStudent Attendance System - Financial Aid Administrator

Welcome to the Student Attendance SystemFinancial Aid Website

Select Term Export

To export attendance history, please select a term below.

Page 37: Student Attendance System

-Page_Init(in Sender : Object, in e : EventArgs)-Page_Load(in Sender : Object, in e : EventArgs)-Initialize Component()-Export_button_Click(in Sender : Object, in e : EventArgs)

#Export_button : Button#DropDownList_AttendanceHistory : DropDownList-designerPlaceholderDeclaration : Object

Fin_Aid_Admin_Export

-Page_Init(in Sender : Object, in e : EventArgs)-Page_Load(in Sender : Object, in e : EventArgs)-Initialize Component()

-designerPlaceholderDeclaration : Object

Export_Page

Page 38: Student Attendance System

Presentation LayerAdministrative Web Portal

Page 39: Student Attendance System

AD_GetCurrentTerm

Student Attendance SystemAdministrative Web Portal

F_ListClassTaught

F_ListClassDetail

F_EditStudentAttendanceEntry

F_ExportClassAttendanceHistory

AD_ListAssociatedTerminalServers

AD_AddNewTerminal

AD_AdministrativeMenu

Page 40: Student Attendance System

Student Attendance System – Administrative WebsiteStudent Attendance System – Administrative Website

Welcome to the Student Attendance System Administrative Website

AD_AdministrativeMenu

Associate Readers

Manage Attendance History

Page 41: Student Attendance System

Student Attendance System - Associate Terminal ServersStudent Attendance System - Associate Terminal Servers

Student Attendance System

You may utilize this page to associate Check-In terminals to the classroom in which they are located.

Known Terminals:

10.70.10.6/2001

10.70.10.5/2001

10.70.10.1/2002

10.70.10.1/2001

Terminal Address

Room: Wolfson 5420

Room: North 1200

Room: Kendall 9004

Room: Kendall 9001

Terminal Location

[DELETE]

[DELETE]

[DELETE]

[DELETE]

Delete

Add New Terminal Done

AD_ListAssociatedTerminalServers

Page 42: Student Attendance System

Student Attendance System - Add New TerminalStudent Attendance System - Add New Terminal

Select Campus Enter Room

OK Cancel

Enter IP Address Enter PortTerminal Address

Location

Student Attendance System - Add New Terminal

AD_AddNewTerminal

Page 43: Student Attendance System

-InitializeComponent() : void#OnInit() : void-Page_Load(in sender : object, in e : System.EventArgs) : void-AssociateReaders_Click(in sender: object, in e: System.EventArgs)() : void-ManageHist_Click(in sender: object, in e: System.EventArgs)() : void

-designerPlaceholderDeclaration : object#AssociateReaders : Button#ManageHist : Button

AD_AdministrativeMenu

-InitializeComponent() : void#OnInit() : void-Page_Load(in sender : object, in e : System.EventArgs) : void-AddNewTerminal_Click(in sender: object, in e: System.EventArgs)() : void-DoneTerminals_Click(in sender: object, in e: System.EventArgs)() : void-Delete_Click(in sender: object, in e: System.EventArgs)() : void

-designerPlaceholderDeclaration : object#TerminalAddressGrid : DataGrid#AddNewTerminal : Button#DoneTerminals : Button

AD_ListAssociatedTerminalServers

-InitializeComponent() : void#OnInit() : void-Page_Load(in sender : object, in e : System.EventArgs) : void-OK_Click(in sender: object, in e: System.EventArgs)() : void-Cancel_Click(in sender: object, in e: System.EventArgs)() : void

-designerPlaceholderDeclaration : object#OK : Button#Cancel : Button#IPAddress : TextBox#PortNum : TextBox#CampusSelection : DropDownList#RoomNum : TextBox

AD_AddNewTerminal

Page 44: Student Attendance System

Deployment

Page 45: Student Attendance System

The Customer’s Expectation

Student / Employee Web Portal

Database

Data Collection Process

Network

College Enterprise System

Web Clients Web Clients Web Clients

Students Faculty Administrators

Student

Student

Student

Student

Page 46: Student Attendance System

Deployment DiagramDatabaseServer1

PersistentDataStore

CommandLineUtility

ApplicationServer1

AttendanceHistory

ReaderConfiguration

CheckInProcessing

ApplicationServer2

AttendanceHistory

ReaderConfiguration

CheckInProcessing

WebPortal1

WebPortal

CollegeData

AttendanceHistory

ReaderConfiguration

WebPortal1

WebPortal

CollegeData

AttendanceHistory

ReaderConfiguration

WebPortal1

WebPortal

CollegeData

AttendanceHistory

ReaderConfiguration

DirectoryServer1

DirectorySecurity

Page 47: Student Attendance System

Student Attendance System

Thank You