9b03ecb4dc | ||
---|---|---|
.gitsecret | ||
.vscode | ||
CMake | ||
examples | ||
res | ||
src | ||
vendor | ||
.gitignore | ||
CMakeLists.txt | ||
LICENSE | ||
README.md | ||
benchmarks.md | ||
build.bat | ||
build.sh | ||
buildRelease.bat | ||
buildRelease.sh | ||
clean.sh | ||
password.h.secret | ||
resources.rc |
README.md
ContractNotifier
An application for my school's principal to notify him for contracts expiry. The main cause of this application is to store contracts, and notify the user of the expiry date of the contract. I know that there is probably alot of solutions out there. But apparently my school principle found non, and then resorted to me.
Features
- Store millions of contracts (impractically huge number) and organize them into categories.
- Ability to notify the user in two ways, by email, and notifications. Both can be enabled/disables seperately.
- Mutli-threaded capabilities.
- Reliably export and import databases for easy backups/transfers.
Benchmarks:
The applicaiton is quite fast, with ability to search 1M contracts in 0.890232
seconds.
Getting Started for Consumers
The binaries can be found at the releases section at the top of this page.
Getting Started for Developers
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
Prerequisites
On linux you would need the qt5 development set. Can be found here.
On windows on the other hand you would need to download vcpkg, MAKE SURE YOU INSTALL IT in "C:", here
Building
On Linux
To build DEBUG:
./build.sh
To build RELEASE:
./buildRelease.sh
On Windows:
NOTE: Make sure the following commands are run on the visual studio command prompt.
To build DEBUG:
build.bat
To build RELEASE:
build.bat
Running the app:
On linux just go to bin and run ./contractNotifier
On windows, copy the files of icon.png
and notifue.exe
to the respective DEBUG/RELEASE folder.
Then run contractNotifier.exe
Running the benchmars
Currently there are two benchmarks available.
The examples are build automatically, and should be found in the bin
/bin/${RELEASE/DEBUG}
, on
linux and windows respectfully.
Running dataBenchmark
This tests the speed of serializing and deserializing the data.
To run the benchmark simply hope on a terminal/vsconsole and run ./dataBenchmark
/dataBenchmark.exe
Running searchBencmark
This test the speed of searching a 1M entry database.
To run the benchmark simply hope on a terminal/vsconsole and run ./searchBenchmark
/searchBenchmark.exe
Deployment
Currently binary installer are only supported on windows. To build installer on windows:
- Run
buildRelease.bat
. - Open project solution in
build
directory. - Click
PACKAGE
->Build Project
. - Installer now should be in
build/_CPack_Packages
.
Built With
- C++ - Language.
- CMake - Build system.
- vcpkg - Windows Dependency Manager.
- Boost - Serialization/Deserialization.
- Qt5 - Window Library.
Authors
- altffour - Initial work - altffour
License
This project is licensed under the GPL-v3.0 License - see the LICENSE.md file for details
Acknowledgments
- Hat tip for my school principle for the idea