s
Practical Assessment Task
Documentation
George Cox - Grade 12
2025
, PHASE 1
Project Specification Document
Regatta Results
Developed by George Cox
, Table Of Contents
PHASE 1
1. Problem Summary............................................................................................................... 4
1.1 Purpose of project.......................................................................................................... 4
1.2 Summary of Functions................................................................................................... 4
1.3 Description of Target Users............................................................................................ 4
2. Motivation and Research.....................................................................................................5
2.1 Similar Projects.............................................................................................................. 5
2.2 Motivation....................................................................................................................... 5
3. Specifications of Program Functions.................................................................................6
3.1 Login and Signup........................................................................................................... 6
3.2 UI Navigation..................................................................................................................7
3.3 Results Display and Filtering..........................................................................................7
3.4 Statistics and Rankings.................................................................................................. 7
3.5 News and Updates......................................................................................................... 8
3.6 Database and File Handling........................................................................................... 8
4. Specification of Interface.................................................................................................... 9
4.1 User Interface.................................................................................................................9
4.2 Specifications of help................................................................................................... 10
4.3 Input/Output From External Source..............................................................................10
5. Specification of Permanent Data Storage........................................................................ 11
6. Hardware and Software..................................................................................................... 13
6.1 Hardware......................................................................................................................13
6.2 Software....................................................................................................................... 13
7. Referencing........................................................................................................................ 14
PHASE 2
1. User Interface Design........................................................................................................ 17
1.1 Overview...................................................................................................................... 17
1.2 Login Screen................................................................................................................ 18
1.2.1 Component Breakdown....................................................................................... 18
1.2.2 Action Elements and Input Devices.....................................................................19
1.3 Signup Screen..............................................................................................................20
1.3.1 Component Breakdown....................................................................................... 20
1.3.2 Action Elements and Input Devices.....................................................................21
1.4 Homepage Screen....................................................................................................... 22
1.4.1 Component Breakdown....................................................................................... 22
1.4.2 Action Elements and Input Devices.....................................................................23
1.5 HomepageDashboard Screen......................................................................................24
, 1.5.1 Component Breakdown....................................................................................... 24
1.5. 2 Action Elements and Input Devices....................................................................25
1.6 Results Screen............................................................................................................. 26
1.6.1 Component Breakdown....................................................................................... 27
1.6.2 Action Elements and Input Devices.....................................................................28
1.7 Statistics Screen...........................................................................................................29
1.7.1 Component Breakdown....................................................................................... 29
1.7. 2 Action Elements and Input Devices....................................................................30
1.8 News Screen................................................................................................................ 31
1.8.1 Component Breakdown....................................................................................... 31
1.8. 2 Action Elements and Input Devices....................................................................32
1.9 Admin screen............................................................................................................... 33
1.9.1 Component Breakdown....................................................................................... 34
2. Program Flow..................................................................................................................... 35
2.1 Explanation...................................................................................................................35
2.2 Flow Diagram............................................................................................................... 38
3. Class Design and OOP Principles.................................................................................... 39
3.1 Class Design................................................................................................................ 39
3.2 OOP Principles.............................................................................................................40
3.2.1 Encapsulation...................................................................................................... 40
3.2.2 Abstraction...........................................................................................................40
3.2.3 Inheritance...........................................................................................................40
4. Secondary Storage Design............................................................................................... 41
4.1 Overview...................................................................................................................... 41
4.2 tblUsers........................................................................................................................ 41
4.3 tblTeams....................................................................................................................... 42
4.4 tblEntries...................................................................................................................... 43
4.5 tblEvents.......................................................................................................................44
4.6 tblCompetitions.............................................................................................................45
4.7 tblCategory................................................................................................................... 45
4.8 tblDemographic............................................................................................................ 46
4.9 tblNews.........................................................................................................................47
4.10 Relationships..............................................................................................................47
5. Explanation of Secondary Storage Design......................................................................48
The Microsoft Access relational database was chosen for multiple reasons:........ 48
Compared to text or JSON files:.............................................................................48
6. Explanation of how Primary Data Structures relate to Secondary Storage................. 49
Model classes.........................................................................................................50
Manager classes.................................................................................................... 50
7. Referencing........................................................................................................................ 51
,PHASE 4
1. Technical Documentation..................................................................................................54
1.1 External Libraries and Tools Used................................................................................54
1.1.1 KGradientPanel Library....................................................................................... 54
1.1.2 LGoodDatePicker v11.2.1 (External .jar)............................................................. 54
1.1.3 Password Hashing with SHA-256....................................................................... 54
1.1.4 List Structures (List<String> and HashMap<K, V>)............................................ 55
1.1.5 Filling jTables using DefaultTableModel.............................................................. 55
1.1.6 Regex for Race Time Validation.......................................................................... 55
1.2 Critical Algorithms........................................................................................................ 56
1.2.1 Results Filtering Algorithm...................................................................................56
Purpose:................................................................................................................. 56
Why is it critical?.....................................................................................................56
Flow diagram of algorithm:..................................................................................... 56
1.2.2 Points and Ranking Calculation Algorithm.......................................................... 56
Purpose:................................................................................................................. 56
Why is it critical?.....................................................................................................57
Flow diagram of algorithm:..................................................................................... 57
1.3 Advanced Techniques.................................................................................................. 57
1.3.1 Use of HashMap<String, Integer> to Accumulate Team Points.......................... 57
How it works in my program:.................................................................................. 58
Why it’s advanced:................................................................................................. 58
1.3.2 Complex SQL Queries with Multi-Table Joins Across 8 Tables........................... 58
How it works in my program:.................................................................................. 58
Why it’s advanced:................................................................................................. 59
1.3.3 Regular Expression (Regex) for Input Validation.................................................59
How it works:.......................................................................................................... 59
Why it’s advanced:................................................................................................. 59
1.3.4 Integration of .jar Libraries for Enhanced UI........................................................59
LGoodDatePicker v11.2.1:......................................................................................60
KGradientPanel:..................................................................................................... 60
Why it’s advanced:................................................................................................. 60
2. Testing Documentation......................................................................................................60
2.1 Evaluation of the Programmed Solution.......................................................................60
2.1.1 Login and Signup................................................................................................ 60
Improvement:..........................................................................................................60
2.1.2 UI Navigation....................................................................................................... 61
Improvement:..........................................................................................................61
2.1.3 Results Display and Filtering:.............................................................................. 61
Improvement:..........................................................................................................61
, 2.1.4 Statistics and Rankings:...................................................................................... 61
Improvement:..........................................................................................................61
2.1.5 News and Updates:............................................................................................. 61
Improvement:..........................................................................................................61
2.1.6 Database and File Handling:............................................................................... 62
Improvement:..........................................................................................................62
2.1.7 Overall Improvements / Alternate Solutions:....................................................... 62
2.2 Functional Testing........................................................................................................ 62
2.2.1 Informal Testing and User Feedback...................................................................62
2.2.2 Test Set 1: Standard User Testing....................................................................... 63
2.2.3 Test Set 2: Admin User Testing........................................................................... 64
2.3 Test Plan and Results for TWO Input Variables........................................................... 65
2.3.1 Input Variable 1: Race Time (Format: M:SS.ss).................................................. 65
Standard................................................................................................................. 65
Extreme.................................................................................................................. 66
Abnormal Type....................................................................................................... 66
Abnormal Form.......................................................................................................66
2.3.2 Input Variable 2: Username (During Signup).......................................................67
Standard................................................................................................................. 68
Extreme.................................................................................................................. 68
Abnormal type........................................................................................................ 68
Abnormal form........................................................................................................ 68
, 1. Problem Summary
1.1 Purpose of project
Rowing is a historically significant and growing sport in South Africa. It has deep
roots in schools and universities, with 1150 rowers taking part in the SA Schools
Rowing Championships in 2022 (World Rowing, 2022). Our national teams
consistently produce world-class, elite athletes.
Yet, this excellence is undermined by the lack of digital infrastructure in South
Africa. Currently, rowing results are published on www.regattaresults.com, a
platform plagued by poor usability and limited features. Athletes, parents and
coaches struggle to access results in an efficient manner and consequently, the
sport struggles to grow.
This project aims to address these gaps by developing a modern rowing results
management system. Thus, it will help to sustain the success of South African
rowing at all levels.
1.2 Summary of Functions
As mentioned previously, this project aims to address the limitations in South
African rowing by offering a modern interface with customisable views for
athletes and coaches.
It features a search function and filters, allowing users to search and compare
results by athlete, boat class, competition, and more. It also includes competitive
statistics such as point calculations and medal tallies, creating effortless
performance tracking.
, 1.3 Description of Target Users
The system is designed to cater to four primary user groups, each with unique
needs. Competitive Athletes who require quick access to their own results,
personal progress, how close they are to the record and personal best tracking.
Coaches who need advanced performance analytics, the ability to track their
athletes’ performance in relation to their competition. Parents and Supporters
that benefit from easy, simple to use, filtered results and notifications about
certain athletes’ performances. Event organisers and Marshals that ensure
smooth and accurate competition management.
2. Motivation and Research
2.1 Similar Projects
Website/Project Country Modern UI? Search/Filter? Statistics? News? Calendar?
regattaresults South Africa ❌ ❌ ❌ ❌ ❌
rowingmanager Australia ❌ ✅ ❌ ❌ ✅
rowresult UK ✅ ✅ ❌ ❌ ❌
regattacentral USA ✅ ✅ ❌ ❌ ✅
rowit.nz New Zealand ❌ ❌ ❌ ❌ ✅
As shown in the above table, none of the researched rowing result systems are
perfect in their design. While some systems implement search filters and
calendars, most still lack a truly modern UI and statistics features. However, it is
visibly clear that South Africa’s regattaresults is far behind. It lacks a modern UI,
Search filtering, stats, news and a calendar. This makes it difficult to use and
hinders the competitive experience for rowers, coaches and spectators, making it
evident that SA is in need of an improved system for displaying rowing results.
,2.2 Motivation
As seen, the current South African rowing results platform, regattaresults,
significantly lacks the features present in more modern systems, including:
● Poorly structured layout making it difficult to find the results you're looking
for.
● Small fonts and too much information in one page.
● There are no search or filter options, meaning users need to scroll through
long lists to find what they are looking for.
● no medal tallies
● no point systems
● no records/best times displayed
By learning from both the weaknesses and strengths of international platforms,
my project aims to combine all essential features into one accessible system,
ultimately filling the gap that currently exists in South African school rowing.
3. Specifications of Program Functions
The system is designed to provide a modern and responsive UI for athletes,
coaches and spectators, with several features aimed at improving the navigation
and understanding of rowing competition results. All the features work together
to make the program easy to understand and efficient.
3.1 Login and Signup
● The program includes a secure Login and Signup system where users
authenticate using a username and password stored in a Microsoft
Access database.
● Passwords are hashed and encrypted before stored in the database, and
Java logic is used to check whether the user’s entered password matches
the stored one.
, ● The program will use java logic for password validation, such as min
length and checking for special and uppercase characters, to ensure that
passwords are strong
● Feedback messages are shown for incorrect logins, invalid password
formats, etc.
3.2 UI Navigation
● Program navigation is handled using Java event listeners attached to
jButtons, jPanels and jLabels.
● When a mouse button is clicked, the program disposes of the current
jFrame and instantiates the relevant screen class.
● Screens are created using separate Java classes, ensuring each section
has its own logic, etc.
● A “Back” button is present on all pages, with event listening logic to return
to the previous screen.
3.3 Results Display and Filtering
The system uses a single, unified results page where the user selects all filtering
options from one screen:
● Dropdown 1: Select Competition
● Dropdown 2: Select Gender and Age group
● Dropdown 3: Select Boat Class
Once the user selects their filters, the program dynamically updates a jTable to
display only the relevant results using a SQL query executed through JDBC
(UCanAccess).
● Results can be sorted by clicking on column headers, using Java’s built-in
table sorting method
● The logic ensures users always see only the relevant and most updated
results based on their input.