student attendance system
Post on 02-Jan-2016
106 Views
Preview:
DESCRIPTION
TRANSCRIPT
Student Attendance SystemDesign 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
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
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
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
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
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.
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
Hardware Selection
• Digi PortServer TS
• IBC SmartMag J
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
«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
Data Layer
Data Layer
• PersistentDataStore– Microsoft SQL Server 2000– ADO.Net
• DirectorySecurity– Microsoft Active Directory 2003– ADSI / System.DirectoryServices
Business Layer
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
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
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
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
Presentation Layer
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
Presentation LayerStudent Web Portal
S_GetCurrentTerm
S_ListClassEnrolled
S_ShowAttendanceDetail
Student Attendance SystemStudent Web Portal
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
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
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
-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
Presentation LayerFaculty Web Portal
F_GetCurrentTerm Student Attendance SystemFaculty Web Portal
F_ListClassTaught
F_ListClassDetail
F_EditStudentAttendanceEntry
F_ExportClassAttendanceHistory
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
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
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
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
«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
Presentation LayerFinancial Aid Administrative Web Portal
FA_GetCurrentTerm
FA_DownloadAttendanceExtract
Student Attendance SystemFinancial Aid Web Portal
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_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
Presentation LayerAdministrative Web Portal
AD_GetCurrentTerm
Student Attendance SystemAdministrative Web Portal
F_ListClassTaught
F_ListClassDetail
F_EditStudentAttendanceEntry
F_ExportClassAttendanceHistory
AD_ListAssociatedTerminalServers
AD_AddNewTerminal
AD_AdministrativeMenu
Student Attendance System – Administrative WebsiteStudent Attendance System – Administrative Website
Welcome to the Student Attendance System Administrative Website
AD_AdministrativeMenu
Associate Readers
Manage Attendance History
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
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
-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
Deployment
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
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
Student Attendance System
Thank You
top related