Skip to content

Releases: edwardUL99/StudSysCppLibrary

Emergency fix for Predicate

14 Nov 23:04

Choose a tag to compare

The way Predicate was implemented, it was done with cpp file and template instantiations like template Predicate;. This caused problems implementing the search feature in CLI when using predicates for other classes

Added 2 extra methods to StudentSystem

14 Nov 21:12

Choose a tag to compare

The CLI required 2 methods from StudentSystem that did not exist, so getLecturers and getStudents has been added. These return all lecturers and students, respectively, in the system

Fixed segmentation fault when connection to database is lost

18 Oct 15:13

Choose a tag to compare

A fix has been implemented to resolve the issue described in #45. The program would crash with segmentation fault rather than giving a meaningful message saying an error occurred with the database. This exception can be caught by the using program as DatabaseException but should display the error message just so the user knows what happened

Small enhancement to allow QCA calculation

11 Oct 18:43

Choose a tag to compare

This release brings along with it, simple QCA calculation. By simple, I mean there is no account for residual or cumulative etc. The only QCA calculated is a single value. It also only includes A-NG grades and no accountings for I grades etc. This may be in another release

Patch for updating lecturers

18 Sep 17:50

Choose a tag to compare

The restriction that the old lecturer email must match new lecturer has been removed to patch an issue where if changing name, the email must reflect the new name, but with this restriction, can't change email

Added some performance enhancements and some extra documentation

13 Sep 16:30
964a215

Choose a tag to compare

Currently in the process of adding more documentation. This release brings a better documented StudentSystem. This was prioritised as this is the class that is interacted with the most

This release also brings with it performance enhancements by replacing some for loops with an equivalent SQL statement to make it more efficient

Marked Warning class as deprecated with an updated message specifying an alternative
Deprecated StudentSystem::getStudentID(std::string email)

Bug fixes and performance enhancements

07 Sep 20:47

Choose a tag to compare

This is a small release bringing with it fixes for the background SQL procedure for calculating module grades and a small enhancement to improve performance of the code which retrieves all the exam questions for an exam. This method had a sort function but this sort can be achieved with SQL order by which is more efficient

Enhancement for removing lecturers from system

06 Sep 18:53

Choose a tag to compare

This release adds an efficiency enhancement to the process of removing lecturers from the database. The code release in 1.2.3 had flaws, where it would run a query to get all student registrations that had a module with a NULL lecturer. Go through each result row, make a query to retrieve a student, a query to retrieve the module and then run a query to remove this formed StudentRegistration. This requires 3n + 1 queries, where n is the number of student registrations which had a module with a NULL lecturer. The query to get the student, query to get the module, query to remove the registration, for each matching registration, and also the single query to retrieve this ResultSet.

This query structure has been replaced with a single query and that is a DELETE query

Patch for removing lecturer and also student registrations

05 Sep 22:40

Choose a tag to compare

This patch is for issue #36. The CLI implemented code to remove student registrations for each module a removed lecturer taught on but this was not only a) resource wasteful as it had to do multiple loops to find these registrations, hold off until the system confirmed the lecturer was removed, iterate again to remove them. This is out of scope for the CLI as if another UI wanted to implement the library, they would have to do the same code. This clearly is a job for the library to remove student registrations that are associated with a module that has NULL as the lecturer. This also helps abstract the removal of a lecturer. A UI should only have to make 1 call to the system to remove a lecturer and not have to do the "cleanup" for that removal. That should be hidden in the library

Bug fixes and fix NULL lecturer issue

04 Sep 17:33
833a23c

Choose a tag to compare

This release fixes issue #30 for the time being. It is not a perfect fix, but this will be resolved more gracefully in release 2.0.0 as the best fix is a breaking change.

It also brings some refactoring to make the code more efficient in logging

This release marks Warning class as deprecated which will be removed in release 2.0.0