Online Course Recommend System

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 22

A

MINI PROJECT
REPORT ON

“ONLINE COURSE
REGISTRATION SYSTEM”
Of
Database Management System Lab

SUBMITTED BY:

1. Jewel Chowdhury
( RA2111003011057)
2. Talla Kumar Sai Gowd
( RA2111003011058)
UNDER THE GUIDANCE OF
Dr.B.Muruganantham
(Associate Professor, Department of Computing Technologies)

Department Of Computing Technologies,


School of Computing
SRM Institute of Science and Technology.

Academic Year 2023- 24


SRM INSTITUTE OF SCIENCE
AND TECHNOLOGY
(Under Section 3 of UGC Act, 1956)

BONAFIDE CERTIFICATE

Certified that Mini project report titled ONLINE COURSE


REGISTRATION SYSTEM is the bona fide work of Jewel Chowdhury
(RA2111003011057) and Talla Kumar Sai Gowd (RA2111003011058) who
carried out the minor project under my supervision. Certified further, that to the
best of my knowledge, the work reported herein does not form any other
project report or dissertation on the basis of which a degree or award was
conferred on an earlier occasion on this or any other candidate.

SIGNATURE
Dr.B.Murugantham,
Associate Professor,

Department of Computing Technologies (C-tech)


ABSTRACT

The online course registration system is the central part of the


educational administration system, which consists of registration
guidance, registration controlling, undergraduate course
registration, graduate course registration, retaking and retesting,
dropping the course in the middle phase and information
exchange, etc.

By registering the course voluntarily, the new system improved


registration mechanism, implemented course registration of
common courses for undergraduate and graduate students, and
also supported the teaching activities across spring, summer and
fall semesters.

This article introduces the design and implementation of the new


online course registration system, including registration
mechanism, technical architecture, and system design, etc.
Table of Contents

Chapter Title Page


no. no.
1. Introduction 5
2. Scope 6
3. Module Description 7
4. Use Case Diagram 8
5. ER Diagram 9
6. Normalization of Database 10
7. Sample Source Code: 11
Database Creation using DDL and DML
8. Conclusion 15
9. Appendix 15
10. Screenshots 20
11. References 22
INTRODUCTION
With the advent of Information Technology in the last decade, the major focus has
shifted from manual systems to computerized systems. Various systems like
railway reservation, hospital management etc. involving manual work have been
automated efficiently.

Student course registration process in colleges involve filling registration forms


manually, getting it signed by respective subject teachers, and then getting the
documents acknowledged from the concerned Advisors, College Deans and
Accounts Officers respectively. Finally, the registration forms are submitted in the
Administrative Branch. As is evident, this process is very laborious and time
consuming. An Online Student Course Registration System has been developed to
simplify the current manual procedure.

This system provides a number of functionalities pertaining to COURSE


REGISTRATION for the students as well as faculty members.

It contains:
a. Students and their functionalities which involves registration of the course(s)
through the registrar, being taught by the professors and advised/managed by
the faculty advisor.
b. Professors and their functionalities which involves teaching the student(s) and
being in constant contact with the faculty advisor for issues related to the
students or course management.
c. Registrar and the function of helping student(s) to register for courses they wish
to enroll in.
d. Faculty advisor who has access to the course(s) being undertaken by the
students and the professors handling the mentioned courses.
SCOPE
At the beginning of each semester students may request a course catalogue
containing a list of course offerings for the semester. Information about each
course, such as professor, department, and prerequisites will be included to help
students make informed decisions.

The new course registration system will allow students to select courses for the
coming semester. No course offering will have more than 30 students. No course
offering will have fewer than 5 students.

Once the registration process is completed for a student, the registration system
sends information to the billing system, so the student can be billed for the
semester.

Professors must be able to access the course registration system to


indicate which courses they will be teaching. They will also need to see which
students signed up for their course offering.
MODULE DESCRIPTION
Registration System

The class Registration represents a registration for a course. It has private


instance variables for course registration (student name,vreg no.) The registration number
variable is used to uniquely identify the candidate, while Course Code is used to uniquely
identify the registered course.

The class provides getter and setter methods for all the instance variables,
allowing clients to retrieve or update the registration information as needed.
Note that this class does not include any methods for actually registering for an
course or processing the registration. It simply stores the registration information.

Student portal system

The student portal class represents a student who is registering for an exam. It
has private instance variables for student name, course code, and registrations.
The registrations variable is a list of Registration objects that the student has
registered for. The student class provides getter and setter methods for all the instance
variables, allowing clients to retrieve or update the student information as needed. It also
provides methods to add and remove registrations, as well as
retrieve the list of registrations.

Enrolled Course
The enrolled Course class represents a course that a student can enroll in. It has private
instance variables for courseID, name, and instructor. The courseID variable is used to
uniquely identify the course. The Course class provides getter and setter methods for all
the instance variables, allowing clients to retrieve or update the course information as
needed.

The Registration class now includes a private instance variable for courses, which is a list
of Course objects representing the courses that the student is enrolled in for the
registration. It provides setter and getter methods for the course’s variable, as well as
methods to add or remove courses from the list.

By introducing the Course class and adding the appropriate relationships, we can now
incorporate course enrollment functionality into the exam registration system. The system
can allow students to browse available courses, select courses to enroll in, and view their
enrolled courses for each registration. The student portal can provide a user interface for
students to manage their course enrollments, view course schedules and descriptions, and
update their course information as needed.
USE CASE DIAGRAM
ER DIAGRAM
NORMALISATION OF DATABASE:

Normalization is an essential part of database design to ensure that data is stored


efficiently and accurately in a relational database. A point of sale (POS) system typically
involves multiple tables that capture data related to customers, products, transactions, and
inventory. Here are some general guidelines for normalizing a database for a POS
system:
1. Identify the entities and their attributes: Start by identifying the main entities involved
in the POS system, such as customers, products, transactions, and inventory. For each
entity, list the relevant attributes (fields) that need to be stored.
2. Apply the first normal form (1NF): Ensure that each table has a primary key that
uniquely identifies each row, and that all columns in the table are atomic (i.e.,
indivisible).
3. Apply the second normal form (2NF): Ensure that each non-key column in the table is
fully dependent on the primary key. If there are any partial dependencies, split the table
into separate tables.
4. Apply the third normal form (3NF): Ensure that there are no transitive dependencies
between non-key columns. If there are any, split the table into separate tables.
5. Normalize related tables: If there are related tables, ensure that they are properly
normalized and linked with appropriate foreign keys.
6. Consider performance and scalability: As you design and normalize the database,
consider how it will perform and scale as the data grows. This may involve
denormalizing certain tables or using indexing.
DATABASE CREATION USING
DDL AND DML
Some of the basic DDL and DML commands are:

1. Creating A Table: The Create Table command is used to create a table in the
database. It consists of rows and columns. Each column has a minimum of three
attributes- a name, a data type, and size.
Syntax: -
Create table <Table Name> (
<ColumnName1> <Data Type>(<Size>),
<ColumnName2> <Data Type>(<Size>), ………..
<Column Name n> <Data Type>(<Size>));

2. Inserting Data: The Insert into Table command is used to load the created table
with data to be manipulated later.
Syntax: -
Insert into <table name>(<col1>, <col2>,…..,<col n>)
values (<expression1>, <expression2> ,..,<expression3>);

3. Viewing Data: This command is used to view all the rows and columns of the
table created in the database.
Syntax: -
Select * from <table name>;

4. Eliminating Duplicate Rows: A table could hold duplicate rows from display.
This could be removed by using DISTINCT clause.
Syntax: -
Select Distinct <col name1>, <col name2> from <table name>;

5. Creating A Table from A Table: To create a copy of existing table with create
table and select statements.
Syntax: -
Create Table <Table Name> (<ColumnName1>, <ColumnName2>,…)
as select <colname1>, <colname2>,….
From <existing table name>;

6. Inserting Data into A Table from Another Table: To filter the data that is not
required
Syntax: -
Insert into <table name>
Select <col name1>, <col name2>….
from <table name>;
7. Updating records of a table: Modify existing rows with the UPDATE statement.
Update more than one row at a time, if required. All rows in the table are
modified if you omit the WHERE clause

Syntax: -
UPDATE table SET column = value, column = value, ....
WHERE condition;

8. Delete records: You can remove existing rows from a table by using the DELETE
statement. All rows in the table are deleted if you omit the WHERE clause.

Syntax: -
DELETE FROM table WHERE condition;

9. Truncating Tables: Truncate Tables empties the table completely. Once the
data deleted cannot be retrieved.

Syntax: -
Truncate Table <table name>;

10. Destroying Tables: Sometimes table in the database becomes obsolete and
need to be discarded, so we use drop table command.

Syntax: -
Drop table <table name>;
CODE DOCUMENTATION:
create table prof (
pname varchar(30),
p_id int,
p_email varchar(30));

create table registrar (


s_id int,
doconfirm date,
course varchar(30));

create table courses (


p_id int,
course varchar(30),
c_id int);

create table advisor (


s_id int,
course varchar(30),
c_id int,
pname varchar(30));

create table student (


fname varchar(30),
lname varchar(30),
uid int,
s_id int,
address varchar(50),
phno int,
email varchar(30));

insert into student


values ('anoushka','sanjeev',123,435,'anna nagar east',9884715940,'as5492@gmail.com');
insert into student
values ('polisetty','eshwar',456,598,'hyderabad',9003075113,'pe4932@gmail.com');
insert into student
values ('arumu','pm',789,174,'faridabad',7412386012,'ap3142@gmail.com');
insert into student
values ('ann','maraia',012,783,'kochi',9133819563,'am4232@gmail.com');
insert into student
values ('ann','phann',234,409,'guntur',861230412,'pa5212@gmail.com');
insert into student
values ('shiny','aby',567,305,'dubai',8135442663,'sa0222@gmail.com');

insert into registrar


values (435,'12-09-2023','math');
insert into registrar
values (568,'22-02-2022','chem');
insert into registrar
values (174,'13-10-2022','bio');
insert into registrar
values (783,'31-04-2023','eng');
insert into registrar
values (409,'11-06-2023','french');
insert into registrar
values (305,'30-02-2022','dbms');

insert into prof


values ('murugan',901,'muru@gmail.com');
insert into prof
values ('siva',783,'siva@gmail.com');
insert into prof
values ('velik',573,'veli@gmail.com');

insert into courses


values (901,'math','1032t');
insert into courses
values (901,'chem','203p');
insert into courses
values (783,'bio','723t');
insert into courses
values (573,'eng','e329');
insert into courses
values (573,'french','f433');
insert into courses
values (783,'dbms','p234');

insert into advisor


values (435,'math','1032t','murugan');
insert into advisor
values (568,'chem','203p','murugan');
insert into advisor
values (174,'bio','723t','siva');
insert into advisor
values (783,'eng','e329','velik');
insert into advisor
values (409,'french','f433','velik');
insert into advisor
values (305,'dbms','p234','siva');
CONCLUSION

The Course Registration System was implemented keeping


in mind to create a tool for all the colleges which they would
integrate in their existing systems and make a much more
user-friendly interface for the most important steppingstone
before the start of every semester. Using this tool, the
students can view and register for courses by just a two-step
process – Course Search and Course Registration. The Course
Registration System comes in very handy, is easy to use,
responsive and quite efficient.
APPENDIX
DynamoDB:

Creating DynamoDb table using AWS CLI:

1. Open AWS CloudShell and select the region where you want to create the table.
You can choose the region from the dropdown menu in the top-right corner of the
CloudShell window.
2. Launch the AWS CLI terminal in CloudShell by clicking on the "Open
Terminal" button in the top-right corner of the CloudShell window.
3. Create a JSON file with the table schema. For example, create a file named
table_schema.json with the following contents:

JSON - Using a JSON document database, you can store each user's profile efficiently by
storing only the attributes that are specific to each user.
EX: echo '{
"TableName": "my_table",
"KeySchema": [
{

"AttributeName": "my_partition_key",
"KeyType": "HASH"
},
{
"AttributeName": "my_sort_key",
"KeyType": "RANGE"
}
],

"AttributeDefinitions": [
{
"AttributeName": "my_partition_key",
"AttributeType": "S"
},
{
"AttributeName": "my_sort_key",
"AttributeType": "N"
}
],
"BillingMode": "PAY_PER_REQUEST"
}' > table_schema.json

Create the table by running the following AWS CLI command:


aws dynamodb create-table --cli-input-json file://table_schema.json
To check the status of the table by running the following AWS CLI command:
aws dynamodb describe-table --table-name my_table

To add data:

"my_partition_key": {"S": "my_partition_key_value"},


"my_sort_key": {"N": "1"},
"attribute1": {"S": "value1"},
"attribute2": {"N": "2"}
}

Use the ‘aws dynamodb put-item’ command to add the item to the table. Run the
following command:
aws dynamodb put-item --table-name my_table --item file://item.json
Verify that the item has been added by using the aws dynamodb get-item command.
Run the following command:
aws dynamodb get-item --table-name my_table --key '{"my_partition_key": {"S":
"my_partition_key_value"}, "my_sort_key": {"N": "1"}}'
You can add more items by repeating the steps above with different data in the ‘ item.json’ file.
Scanning a table for all items:

This command scans the my_table table and returns all items in the table
aws dynamodb scan --table-name my_table

If the table has many items, you may need to paginate the results to retrieve all items. To do
this, add the --page-size parameter to the aws dynamodb scan command and specify the
maximum number of items to retrieve per page. For example, to retrieve 100 items per page,
run the following command:

aws dynamodb scan --table-name my_table --page-size 100


Scanning a table with filter expression:
First run this command to scan with a filter expression.

aws dynamodb scan --table-name my_table --filter-expression "attribute1 = :value" --


expression-attribute-values '{":value":{"S":"value1"}}'

Next verify the results by this command

aws dynamodb scan --table-name my_table --filter-expression "attribute1 = :value" --


expression-attribute-values '{":value":{"S":"value1"}}' | jq '.Items[].{attribute1:.attribute1.S,
attribute2:.attribute2.N}'
Scanning a table with a projection expression:

Run the aws dynamodb scan command with the --table-name parameter to specify the name of
the table you want to scan, and the --projection-expression parameter to specify the attributes
you want to include in the scan. For example, to scan a table named my_table and include
only the attribute1 and attribute2 attributes in the results, run the following command:

aws dynamodb scan --table-name my_table --projection-expression "attribute1, attribute2" -


-max-items 100
Scanning a table with a limit:

aws dynamodb scan --table-name my_table --limit 10

Scanning table with a parallel scan:

aws dynamodb scan --table-name my_table --total-segments 10

and use this for scanning the first segment:

aws dynamodb scan --table-name my_table --total-segments 10 --segment 0.

Page: 1
SCREENSHOT
TABLE: STUDENT

TABLE: REGISTRAR

TABLE: PROFESSOR

Page: 2
TABLE: COURSES

TABLE: ADVISOR

Page: 3
References

[1] Ekwonwune, E. and Edebatu, D. (2019) Design and Implementation of an Online


Course Management System. Journal of Software Engineering and Applications

[2] Z. Zhang, “Design and Implement of Web-Based Intelligence Network Tutoring


FrameworkModel”, Distance Educational Journal, 2004, vol. 4, pp. 35-37.

[3] S.X. Sa, and S. Wang, Introduction to Database System. Higher Education Press,
Beijing, 2002.

Page: 4

You might also like