An application for my school's principal to notify him for contracts expiry beforehand.
Go to file
altf_four 9b03ecb4dc
Update README.md
2019-12-25 13:40:39 +03:00
.gitsecret Now email password is hidden 2019-12-06 10:59:02 +03:00
.vscode Add search functionality 2019-12-20 13:30:36 +03:00
CMake WIP: Windows Port 2019-12-07 15:31:39 +03:00
examples Add examples 2019-12-20 16:22:20 +03:00
res Convert icon.png to icon.co 2019-12-23 16:10:11 +03:00
src Merge branch 'master' of https://github.com/realaltffour/ContractNotifier 2019-12-23 07:33:22 +03:00
vendor Add notifu.exe 2019-12-19 18:29:53 +03:00
.gitignore WIP: Update .gitignore 2019-12-06 10:54:06 +03:00
CMakeLists.txt Fix bug with windeployqt 2019-12-24 19:19:36 +03:00
LICENSE Initial commit 2019-12-01 18:57:29 +03:00
README.md Update README.md 2019-12-25 13:40:39 +03:00
benchmarks.md Update benchmarks.md 2019-12-25 13:38:00 +03:00
build.bat Windows PORT 2019-12-13 13:33:55 +03:00
build.sh Fix qstring conversion 2 2019-12-19 18:14:13 +03:00
buildRelease.bat Fix bug with msbuild release 2019-12-22 11:27:39 -08:00
buildRelease.sh Fix qstring conversion 2 2019-12-19 18:14:13 +03:00
clean.sh Remove simplemail 2019-12-05 19:48:42 +03:00
password.h.secret Now email password is hidden 2019-12-06 10:59:02 +03:00
resources.rc Fix resources.rc 2019-12-23 16:11:06 +03:00

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

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