Computer Science Question

Applications Development Practice II (ADP262S)Final Project
Due Date: 18th October 2023
Lecturers: Radford Burger, Wilhelm Rothman
Overview: Build a Student/course Enrolment System with Database Integration and User
Authentication
Description:
You are tasked to develop a Student Enrolment System using Java that consists of a singleclient/server application. The system allows students to enrol in courses, and the enrolment data is
stored in a Derby database. User authentication is required, with separate admin and student roles.
Admin users can add courses and student data to the database tables. Student users can enrol by
selecting from available courses. This exercise will test your skills in client-server communication, GUI
development, custom serialization, database integration, and user authentication.
Server-Side requirements:
1.
2.
3.
4.
Implement a server application that listens on a specific port for the single client connection.
Implement methods on the server for:

Accepting enrollment requests from clients (students).

Storing enrollment data in the database.

Retrieving enrollment data from the database.

Authentication of admin and student users.
Create a Java class called DBConnection with a method to create a Connection object.
Create Java dao classes with methods for all the CRUD operations on the different DB tables.
Client-Side requirements:
1.
2.
Create a Swing-based GUI for the client application with the following features:

Display a login screen for user authentication (admin or student).

Upon successful login, show different functionality based on the user’s role.
 Admin functionality:

Add new courses to the database.

Add new students to the database.
 Student functionality:

Display a list of available courses.

Allow students to select courses and enroll by clicking a button.
Implement client-side socket communication with the server for:
© Copyright reserved 2023. Prepared by Radford Burger.







Sending enrollment requests (for students).
Sending course and student data (for admins).
Receiving and displaying available courses.
Sending request for all students enrolled in a particular course.
Receiving and displaying all students enrolled in a particular course.
Sending request for enrolment data for a particular student.
Receiving and displaying course for which a particular student is enrolled.
Worker Classes:
1.
2.
Define a Student class to represent student data (e.g., name, student number).
Define a Course class to represent course data (e.g., course code, title).
Database Integration:
1.
Set up a Derby database called StudentEnrolmentDB, with appropriate tables to store student
and course data.
Implement dao methods on the server-side to interact with the database for storing and
retrieving enrollment data, course data, and student data.
2.
User Authentication:
1.
Implement user authentication for admin and student roles during login.
Evaluation Criteria:
Functionality of the client-server communication, database integration, and user authentication
Implementation of the Swing-based client GUI
Proper use of custom serialized classes
Design and implementation of the database schema
Code organization, readability, and comments





Rules:


You must complete this group project with 3 students per group.
The names of your group members must be provided to your lecturer by 22nd September 2023. Please
update the Google sheet.
 This is a coding project and as such the members of the group must demonstrate that they have
contributed equally to the coding of the application and that the work was distributed fairly. Marks
may be awarded differently for each member based on their contributions.
 The due date for this project is Wednesday 18th October 2023 at midnight. Upload your zipped
solution (Netbeans Maven projects source code + database etc.) using the link provided on Blackboard.
All group members in a group should upload the same zipped solution.
 Any plagiarism (copying) will be dealt with swiftly and severely.
NO LATE SUBMISSIONS WILL BE ACCEPTED!! Dates for demonstrations will be from 23–27 October 2023.
© Copyright reserved 2023. Prepared by Radford Burger.
01232456ÿ3895ÿ
‰JT@
7@PA=HRBH>N
EFG=HAÿ7@BJHM
ÿ
4145 1   434ÿ ÿ ÿÿ4
6789:9;ÿ8=>?@ABÿ9C9DÿEFG=HA
IJAKÿ>LÿAMH@NBOP@=Q@=ÿR=>S=JTTHNSÿUN>BÿHTRM@T@NB@VÿWHBXÿVJBJÿRJPP@VÿL=>TÿAMH@NB
B>ÿP@=Q@=ÿJNVÿQHA@ÿQ@=PJYÿOZC[ÿIJAKÿ>LÿVJBJGJP@ÿLFNABH>NJMHB\ÿOZC[ÿ6N\ÿL>=Tÿ>L
RMJSHJ=HPTÿL>FNVÿO]CC[
I@Q@MPÿ>Lÿ6AXH@Q@T@NB
ec`f ihh` jdbakldmbh`f
ghh`
nhho
ec`f
nhho
pdbdqdkcÿockastÿuÿbdqvck
ocwtcoÿmh“cmbvfÿ
Šcasb
}yxxz
xyxx
z
{|yxx
z
|xyxxÿz
}|yxx
z
~xxyxx
z
kc`ÿd€bctbamdbahtÿu
kcgd`dbcÿdo‚atÿdtoÿkb€octb
`hvckÿ
Šcasb
‹yxxz
xyxx
z
{|yxx
z
|xyxxÿz
}|yxx
z
~xxyxx
z
ƒcsakbc`„ ooÿ†c‡ÿjb€octbÿu
mh€voÿqcÿo‚atÿh`ÿjb€octb
l€tmbahtÿ
Šcasb
‹yxxz
xyxx
z
{|yxx
z
|xyxxÿz
}|yxx
z
~xxyxx
z
ooÿ†c‡ÿj€qˆcmb„_h€`kcÿu
o‚atÿl€tmbahtÿ
Šcasb
‹yxxz
xyxx
z
{|yxx
z
|xyxxÿz
}|yxx
z
~xxyxx
z
pcvcbcÿdÿkb€octbÿuÿo‚at
l€tmbahtÿ
Šcasb
‹yxxz
xyxx
z
{|yxx
z
|xyxxÿz
}|yxx
z
~xxyxx
z
pcvcbcÿdÿk€qˆcmb„mh€`kcÿu
o‚atÿl€tmbahtÿ
Šcasb
‹yxxz
xyxx
z
{|yxx
z
|xyxxÿz
}|yxx
z
~xxyxx
z
_`abc`ad
822!”#$$%&%”%'”2()*”2#&*#+2,$2$&#)2”-“.)&*#+/,+”01+)(2 $-)30 $&#)2#&*#+,0 44505 02 $&#) +,0 094435 0 025
01232456ÿ3895ÿ
ÿ
4145 1   434ÿ ÿ ÿÿ4
7898:;ÿ=>ÿ?@AB898C8DE
LJGM POOG QKIHRSKTIOGM
NOOG
UOOV
LJGM
UOOV
WHRIÿKYYÿGJZHRIJGJVÿRI[VJ\IRÿ]
^V_H\ÿS[\TIHO\ÿ
rJHZkI
eà`b
`à`
b
cdà`
b
d`à`ÿb
edà`
b
f“à`
b
QI[VJ\IÿJ\GOYRÿSOG
R[ghJTIiTO[GRJÿ
rJHZkI
sà`b
`à`
b
cdà`
b
d`à`ÿb
edà`
b
f“à`
b
QI[VJ\IÿTK\TJYRÿJ\GOYY_J\I
SOGÿR[ghJTIiTO[GRJÿ
rJHZkI
sà`b
`à`
b
cdà`
b
d`à`ÿb
edà`
b
f“à`
b
j[JGMiRJKGTkÿSOGÿNKGIHT[YKG
RI[VJ\Iÿ]ÿYHRIÿR[ghJTIRiTO[GRJ
J\GOYYJVÿSOGÿl^V_H\ÿS[\TIHO\m
`à`
b
cdà`
b
d`à`ÿb
edà`
b
f“à`
b
j[JGMiRJKGTkÿSOGÿNKGIHT[YKG
R[ghJTIiTO[GRJÿ]ÿYHRIÿRI[VJ\IR
J\GOYYJVÿl^V_H\ÿS[\TIHO\mÿ
rJHZkI
sà`b
`à`
b
cdà`
b
d`à`ÿb
edà`
b
f“à`
b
UnoRÿO\ÿTYHJ\IÿRHVJÿlYOOpÿK\V
SJJYqÿ[RJG]SGHJ\VYMqÿ_H\H_KY
IMNH\Zmÿ
rJHZkI
eà`b
`à`
b
cdà`
b
d`à`ÿb
edà`
b
f“à`
b
PKTpKZH\ZÿOSÿTYKRRJR
KTTOGVH\ZÿIOÿNGH\THNYJR
IK[ZkIÿH\ÿTYKRRÿ
rJHZkI
eà`b
`à`
b
cdà`
b
d`à`ÿb
edà`
b
f“à`
b
FGHIJGHK
rJHZkI
sà`b
822!”#$$%&%”%'”2()*”2#&*#+2,$2$&#)2”-“.)&*#+/,+”01+)(2 $-)30 $&#)2#&*#+,0 44505 02 $&#) +,0 094435 0 425
01232456ÿ3895ÿ
4145 1   434ÿ ÿ ÿÿ4
789:ÿ;

Save Time On Research and Writing
Hire a Pro to Write You a 100% Plagiarism-Free Paper.
Get My Paper

Order a unique copy of this paper

600 words
We'll send you the first draft for approval by September 11, 2018 at 10:52 AM
Total price:
$26
Top Academic Writers Ready to Help
with Your Research Proposal

Order your essay today and save 25% with the discount code GREEN