A Cross-Platform Desktop Application written in C++ using the Qt Framework.
- Registration Classes: An abstract base class
Registration
and derived classes representing various registration types (StandardRegistration
,StudentRegistration
,GuestRegistration
). - Graphical User Interface: A Qt Widgets-based GUI to interact with the application.
- CMake Build System: The project uses CMake to manage the build process.
- Registration Management: Add, view, and manage different types of registrations.
- Fee Calculation: Calculate registration fees based on the type of registration.
- Attendee Numbers: Display the number of attendees registered per affilaition.
- Filter Registrations: Filter registrations based on attendee name.
- Export Registration List: Exports (serializes) the registration list to an XML file.
- Import Registration List: Imports (deserializes) a registration list from an XML file and appends the contents to the current registration list.
- User Interface: Intuitive GUI for interacting with the registration system.
- Qt: Ensure you have Qt installed (version 5 or 6).
- CMake: Version 3.5 or higher.
- C++ Compiler: Ensure you have a C++17 compatible compiler.
- Download the Release: Navigate to the Releases page of this repository.
- Select the Latest Release: Download the release with the version number formatted as
yyyy.mm.dd.<question_number>
. - Extract the Files: Extract the downloaded archive to your desired location.
- Clone the Repository:
git clone https://github.com/mitchcamza/COS3711-02 cd COS3711-02
- Checkout the COS3711-02-04 branch
git checkout COS3711-02-04
- Navigate to the Project Directory: Open a terminal or command prompt and navigate to the extracted project directory.
- Make sure the build script is executable: On linux:
sudo chmod +x ./build_and_run.sh
- Run the build script:
sudo ./build_and_run.sh
- CMakeLists.txt: CMake configuration file for building the project.
- src/: Source files for the project.
main.cpp
: Entry point of the application.person.h
,person.cpp
: Base class for all registration types.registration.h
,registration.cpp
: Abstract class for registration.standardregistration.h
,standardregistration.cpp
: Class for standard registration.studentregistration.h
,studentregistration.cpp
: Class for student registration.guestregistration.h
,guestregistration.cpp
: Class for guest registration.registrationlist.h
,registrationlist.cpp
: Class for handling registrations.registrationmodel.h
,registrationmodel.cpp
: Custom model of registration data.registrationfilterproxymodel.h
,registrationfilterproxymodel.cpp
: Custom proxy model that filters data based on a filter text.registrationtypes.h
,registrationtypes.cpp
: Provides an enumeration to represent registration types.mainwindow.h
,mainwindow.cpp
: Main window class for the GUI.newregistrationdialog.h
,newregistrationdialog.cpp
: Dialog for adding new registrations.totalfeesdialog.h
,totalfeesdialog.cpp
: Dialog for displaying total fees.totalregistereddialog.h
,totalregistereddialog.cpp
: Dialog for displaying total registrations.filewriter.h
,filewriter.cpp
: Class for writing provided text to file.filereader.h
,filereader.cpp
: Class for reading XML file.registrationlistwriter.h
,registrationlistwriter.cpp
: Class for serializing Registration objects to XML.registrationlistreader.h
,registrationlistreader.cpp
: Class for deserializing Registration objects from XML.registrationfactory.h
,registrationfactory.cpp
: Factory class for creatingRegistration
objects.resources.qrc
: A resource file containing resources used.
The application allows users to manage different types of registrations. The main window provides options to view and filter existing registrations, add new registrations and view the total fees and number of registrations.
- Click on "New Registration".
- Fill in the required details.
- Select the type of registration (Standrd, Student or Guest).
- Submit the registration.
- Click on "Total Fees" to view the total registration fees.
- Click on "Total Registrations" to view the number of registrations.
- Begin typing the first or last name of an attendee in the search bar and the displayed results will update accordingly.
- Clear the filter by removing the text, or using the 'Clear Filter' pushbutton.
- Click on "Export Registrations" in the edit menu or tool bar.
- Browse to the desired directory using the file dialog and provide a file name to save the file.
- Click on the "save" and the registration list will be saved to file.
Note that selecting an existing file will overwrite its contents.
- Click on "Import Registrations" in the edit menu or tool bar.
- Browse for the XML file containing the registration list to be imported.
- Once the file has been selected, the imported registrations will be appended to the existing registration list.
- Mitch Campbell
This project is licensed under the MIT License - see the LICENSE file for details.