Student Registration System

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:

 

Entities

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

  • String getInfo( ); // returns information about  exception

 

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

  • String getInfo( ) ; // returns the information about exception

 

Business Classes

BusRegisteredCourses:  Class will return all courses that have been taken and currently registered or preregistered.

  • String [][] getCourses(String studentId) throws BusException; // returns (CourseNo,Dept,Semester,Year,Section)

BusCourseInfo:  Returns information of a particular course in the course catalogs.

  • String[] getCourseInfo(String courseNo,String dept)throws BusException // returns (Type,Credits,Title,Description)

BusCourses:  Returns all courses in the catalogs.

  • String[][] getCourses( ) throws BusException  //  returns array(CourseNo,Dept)

BusStudentLogin: Will check if user can login with userid/password

  • boolean login(String studentId,String pwd) //=true if studentID+pwd OK,=false otherwise

BusStudentModify : Used to modify personal information.  If password is null or blank, password is not changed

  • void setEMail(String studentId,String email) throws BusException
  • void setPassword(String studentId,String password) throws BusException

BusStudentInfo : Returns information about a particular student

  • String[] getStudentInfo(String studentId) throws BusException // returns (LastName,FirstName,MI,EMail,Blocked)

BusOfferings: Returns all the offerings for a given semester

  • String[][] getOfferings(String semester,String year) throws BusException  // Array of (DeptId,CourseNo,Section)

BusOfferingInfo: Returns info about a particular offering

  • String[] getInfo(String courseNo,String dept,String section,String semester,String year) throws BusException // Returns (Day,StartTime,EndTime,Comment,Capacity,Instructor).

BusSuggestions: Returns the suggestions a student has made.

  • String[][] getSuggestions(String studentId) throws BusException // returns array(deptId,courseNo,Semester,Year)

BusSuggestionInfo: Returns the Comment the student has made

  • String getSuggestionInfo(String studentId,String dept,String curseNo,String semester,String year) throws BusException // returns  comment or null

BusUnsuggest:Deletes the Suggestion that the student Made

  • void removeSuggestion(String studentId,String dept,String courseNo,String semester,String year) throws BusException

BusRegisterCourse: Registers a student for a course.  Depends on BusCannotTakeCourseInfo.

  • String[] registerCourse(String StudentID,String Dept,String CourseNo,String Semester,String Year,String Section) throws BusException // returns null if registration ok

BusCannotTakeCourseInfo:  Returns all the the reasons why one cannot take a given course.

  • String[] getReasons(String StudentID,String Dept,String CourseNo,String Semester,String Year,String Section); throws BusException // returns Null on no reasons

BusUnregisterCourse:  Unregisters a course. Depends on BusCannotUnregisterInfo

  • String[] unregisterCourse(String StudentID,String Dept,String CourseNo,String semester,String year) throws BusException

BusCannotUnregisterInfo:  Returns all the reasons why one cannot unregister for a given course.

  • String[] getReasons(String StudentID,String Dept,String CourseNo,String semester,String year) throws BusException

BusRequiredCore : return all the core courses still not taken and not registered for.

  • String[][] getCourses(String StudentID); throws BusException // returns Array of (String Dept,String CourseNo);

BusElectiveCountRemaining:  Class will return total count of credits for electives still remaining

  • int getCount(String StudentID) throws BusException;

 

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.

  • void login(Student StudentId,String passId);  // Will attempt to Login
  • void logout(PreSession session); // Will attempt to logout
  • void onLogin(PreSession session); // returns a new SessionObject
  • void onLogout(void);

 

copyright©2001 Prof Devi - mdevi@comine.com, mdevi@liu.edu. All rights reserved