Last Modified : Updated Thursday, November 01, 2001
The Student Registration System(SRS) offers an off campus student the opportunity to pre-register for classes for future semesters through a web-browser. The SRS lets students request new course offerings, currently not offered. The system also lets students check their grades from previous semesters. No only offering registration services, the SRS aids students in selecting the appropriate courses required for graduation. The system gives explanatory reasons why a student may or may not take a particular course(s). The SRS system can also assure that there are no time conflicts in the courses that a student registers for. The Student Registration System works as a student advisor.
Requirements/Use Cases/Side Remarks
1. Student enters his ID and password into web browser for entering the system. After his ID/Password is validated, the student enters system. A student can log off any time.
2. Students are mailed out their user-id and passwords initially only once during their stay here at LIU.
3. A student logs in and changes his password. A student is also asked for mother’s maiden name to be used to verify a students identity in case the student forgot the password. If the student forgot the password then after verification of mothers maiden name the password is e-mailed to the student.
4. Students are initially offered a set of options upon entry to the system:
· View Grades
· Courses Selection: Choose courses for following semester
· Suggest Courses for future semesters
· View list of courses Software Development or thesis requirements that are needed for graduation.
· Update Password & E-Mail
5. A student logs in, but owes money to bursar or is not matriculated may not register. His course registration is blocked. If he clicks on Course Selection link a message is offered pops up explaining why he can’t register and what needs to be done next. However he still can link to all the other options.
6. After student pre-registers, he can print the schedule, sign it and mail it to the student advisor. Confirmation is done through the billing.
7. Students cannot enroll for classes with more than the maximum enrollment allowed for that class (i.e., 22 students).
8. When a student registers for a course, the course is identified as PR-Pre-registered. When registrar updates information that the student registered for a course, the PR is converted to a R (registered). If a course was waived the grade entry will have WV. At the end of the semester, this R will be converted to a letter grade (A, B, C, F, UW, WF, INC, AB).
9. When a letter grade of F, UF, UW, INC, W is given to a prerequisite course, the student will be denied registration for a course with that prerequisite.
10. Registrar will update the system with new grades at the end of the semester. (*** Check how grades are coming in).
11. Registrar will update the system with student registrations for each course frequently. (*** Check how data will come in).
12. If a course is cancelled then everyone is notified about the change by E-Mail, and possibly by written mail, and/or phone.
13. When a section is added, all students in the Department will be notified by e-mail and possibly by written mail, and/or phone.
14. Personalize the web pages with first name. For example, use "John, you should also select this course or John you can’t take this course because ..".
15. Only graduate students can register through the system.
16. Students can observe all courses that they cannot register for.
17. Student should be informed why he can’t register for a particular course.
18. After login, student sees courses he can take, courses he cannot take, and courses that he may take but is not required to take. We use color to indicate that. Color: Green (can take), Yellow (optional), and Red (cannot take). A link to the course description will be next to each course in the list of offered courses.
19. For red courses there will be a link next to it labeled “we have a problem”. Clicking on this link will display a page that lists the reason(s) why the course can’t be taken. For yellow courses there will be a link to a page that explains why the courses is not needed for graduation. If student clicks on a green course he will be notified which course he just pre-registered for.
20. A student registers for each course one by one. Class conflicts will not be selectable as soon as the student chooses a class.
21. Registration for more than four courses is not possible.
22. When un-registering for classes, we must make sure that a student does not register for a course has this course as a co-requisite. All courses that require the un-registered course as a pre-requisite will become red.
23. A student may recommend any course that is in the bulletin. A maximum of three courses can be suggested. A course not in the bulletin may be suggested as a special topics course (CS695, cs696, cs697)
24. A student cannot register for a class, if he has been here for more than 5 years.
25. When a student makes a suggestion, he may click on a link to display all the courses in the bulletin.
26. A student can look at the suggestions he has made.
27. When a student click on What You Need To Graduate, he will see the core courses that must be taken, and the number of electives to be taken. In addition we must indicate if the student must take either a software development (cs690 OR cs691) project or a thesis (cs698 AND CS699).
Below are some of the Forms to be used:
Login Form -> Welcome Form if login is successful.
Login Form -> Error Page if login unsuccessful.
Login Form -> Help Form if Help is pressed.
Login Form ->Bye Form if EXIT is pressed.
Welcome Form -> Respective right hand page depending which button is pressed.
Registration Form -> Exception Form if a button is pressed to see why a course is blocked.

Sample of other Forms:
NewPassword Screen:

Grades and To Graduate Screens:

Rgistration Screen:
DecisionRTable

ER diagram of the database:

Student: The Graduate Student who uses system to register for offerings
StudentID - Social Security Number(student ID as defined by school(Primary Key)
char(9) not null ie ("123456789")
LastName - Last Name of student as recorded by school
varchar(20)
FirstName - First Name of student as recorded by school
varchar(14)
MI - Middle Initial as recorded by school
char(1)
WorkPhone - WorkPhone Number as recorded by school
varchar(10)
HomePhone - Home Phone Number
varchar(10)
Street - Street Address as recorded by school
varchar(25)
City - City
varchar(15)
State - State
char(2)
Zip - Zip Code
char(5)
EMail - E-Mail Address
varchar(40)
SemAdm - Admitted Semester is "FALL","SPRG","SUM1","SUM2"
char(4)
YearAdm-Year Admitted
char(4)
Blocked - TRUE, if registration is blocked. - T-TRUE -F-FALSE
char(1)
Password - Password for entering into database
varchar(15)
Course : Class as described on our biannual catalogs.
CourseNo - Course Number as stated in Course Catalog(Primary Key)
char(3) not null
Dept - Department (Primary key)
char(5) not null
Type - Core Course or elective - C-Core E-Elective
char(1)
Credits - Total counts of worth credits
Integer
Title - Title of Course
varchar(35)
Description - Description of course
varchar(250)
Exempt: A student is exempted from a course, because he has taken it before.
StudentID - Social Security Number(student ID as defined by school(Primary Key,Foreign Key)
char(9) not null ie ("123456789")
CourseNo - Course Number as stated in Course Catalog(Primary Key,Foreign Key)
char(3) not null
Dept - Department (Primary key,Foreign Key)
char(5) not null
Comment - Comment about the exemption
varchar(250)
Offering : A section of a specific course that is scheduled to run for a given semester.
CourseNo - Course Number (Primary Key,Foreign Key)
char(3) not null
Dept - Dept(Primary Key,Foreign Key)
char(5) not null
Section - Section Number of the course (Primary Key)
char(2) not null
Semester - Semester course offered "FALL","SPRG","SUM1","SUM2" (Primary Key)
char(4) not null
Year - Year course offered (Primary Key)
char(4) not null
Day - Week Day that the course is offered. ie "MON","TUE","WED"...
char(4)
StartTime - Start Time when course starts : 1800
integer
EndTime - End Time when course ends : 2200
integer
Comment - Descibes specific details about this offering
varchar(250)
Capacity - The Maximum capacity of the course(usually 22)
integer
Instructor - Professor who teaches the course
char(20)
Enrollment : Holds the information about the classes that a student has enrolled for.
StudentID - Student ID (Primary Key,Foreign Key)
char(9)
CourseNo - Course No (Primary Key,Foreign Key)
char(3)
Dept - Dept(Primary Key,Foreign Key)
char(5)
Section - Section of Course (Primary Key,Foreign Key)
char(2)
Semester - Semester (Primary Key,Foreign Key)
char(4)
Year - Year of the Course(Primary Key,Foreign Key)
char(4)
LeterGrade - Normal Start grade (R-Registered,PR-PreRegistered,A-A grade,B,C,D,F,UW,AB)
char(2) W-Waved Course
EnrollDate - Date when student enrolls for class
DateTime
SugOffering : Suggested Offering of course that a student can make from the biannual catalogs.
StudentID - Student ID (Primary Key,Foreign Key)
char(9)
CourseNo - Course Number (Primary Key,Foreign Key)
char(3)
Dept - Dept(Primary Key,Foreign Key)
char(5)
Semester - Semester of Course (Primary Key)
char(4)
Year - Year of the suggested course (Primary Key)
char(4)
Comment - Comment of the suggestion
varchar(250)
SugDate - Date when sugestion was made
DateTime
PreRequisite : Prerequisites for a course
CourseNo - Course Number (Primary Key,Foreign Key)
char(3) not null
Dept - Department for course (Primary Key,Foreign Key)
char(5) not null
PreCourseNo - Prerequisite Course Number (Primary Key,Foreign Key)
char(3) not null
PreDept - Prereq Dept of course (Primary key,Foreign Key)
char(5) not null
Substitution : Course that can be substituted for core.
StudentID - Social Security Number(student ID as defined by school(Primary Key)
char(9) not null ie ("123456789")
CoreCourseNo - Course Number as stated in Course Catalog(Primary Key)
char(3) not null
CoreDept - Department (Primary key)
char(5) not null
SubstCourseNo - Course Number as stated in Course Catalog(Primary Key)
char(3) not null
SubstDept - Department (Primary key)
char(5) not null
CoRequisite : Corequsite for a course
CourseNo - Course Number (Primary Key,Foreign Key)
char(3) not null
Dept - Department for course (Primary Key,Foreign Key)
char(5) not null
PreCourseNo - Prerequisite Course Number (Primary Key,Foreign Key)
char(3) not null
PreDept - Prerequisite Dept of course (Primary key,Foreign Key)
char(5) not null
SQL Statements
The file stureg.txt contains sql statements to create a new set of tables for database. Use sqlexec.exe to update ODBC data source.
Data Exception
DataException: Exception is thrown by Data Layer Classes
Data Classes
DataConnect : Connects to a data base and executes sql statements and retrieves query results.
· public sub SQLExecute(byval sql as string) throws DataException ' Execute an SQL statment that does not return recordset. Throws an exception, if an error occurs.
· public function SQLQuery(byval sql as string) throws DataException ' Returns a recordset for a SQL statement. Throws an exception, if an error occurs.
Bussiness Rules
Rule #1: To register for a class, class must be offered.
Rule #2: Do not let more than Max Quota students register for any course
Rule #3: Student cannot register for a course that they are already registered for.
Rule #4: Student cannot take a course whose prereq is not completed with at least a grade of A,B+,Bor C+. Thre PreReq course may be exempt.
Rule #5: Before registering for a course, the coreq course must have already been taken with a grade of A,B+,B or C+(or that is being taken the same semester). The Coreq course may be exempt.
Rule #6: Student cannot register for a class that is time conflicted with another already preregisted.
Rule #7: A student cannot register for more than four courses.
Rule #8: A student cannot register for any course if he has arears
Rule #9: A student cannot unregister a corequisite course for a course he is currently taking(execept if the corequisite course is exempt).
Bussiness Exceptions
BusException : Many of the Business Classes throws this Exception
Business Classes
BusRegisteredCourses: Class will return all courses that have been taken and currently registered or preregistered.
BusCourseInfo: Returns information of a particular course in the course catalogs.
BusCourses: Returns all courses in the catalogs.
BusStudentLogin: Will check if user can login with userid/password
BusStudentModify : Used to modify personal information. If password is null or blank, password is not changed
BusStudentInfo : Returns information about a particular student
BusOfferings: Returns all the offerings for a given semester
BusOfferingInfo: Returns info about a particular offering
BusSuggestions: Returns the suggestions a student has made.
BusSuggestionInfo: Returns the Comment the student has made
BusUnsuggest:Deletes the Suggestion that the student Made
BusRegisterCourse: Registers a student for a course. Depends on BusCannotTakeCourseInfo.
BusCannotTakeCourseInfo: Returns all the the reasons why one cannot take a given course.
BusUnregisterCourse: Unregisters a course. Depends on BusCannotUnregisterInfo
BusCannotUnregisterInfo: Returns all the reasons why one cannot unregister for a given course.
BusRequiredCore : return all the core courses still not taken and not registered for.
BusElectiveCountRemaining: Class will return total count of credits for electives still remaining
Problems In Implementation:
1. Race condition exists when system is used by multiple users. For instance, several people can register at the same time and exceed the maximum enrollment. Should use a transaction co-ordinator.
2. In implementing Rule #4 and Rule #5, I used the concatenation operator(operator does not work on ORACLE). Modify to tuple for ORACLE.
3. For graduate courses, the day column is single valued, but for undergraduate courses it is multivalued.
Presentation Classes
PreLogin : Will Offer services that will access Login/Logout Services.
copyright©2001 Prof Devi
- mdevi@comine.com,