This project provides a suite of modules designed to demonstrate how to use CMake with CTest, while integrating Doxygen documentation and test coverage reports.
- CMake >= 3.12
- C++ Standard >= 11
- GoogleTest (for testing modules)
- Visual Studio Community Edition (Windows generator)
- Ninja (for WSL/Linux)
Run 1-configure-pre-commit.bat to copy the pre-commit script to .git/hooks. This ensures:
- Validation: Checks
README.md,.gitignore, and Doxygen files. - Code Formatting: Formats code using the Astyle tool.
If .gitignore is missing, run 2-create-git-ignore.bat to generate it.
Run 3-install-package-manager.bat to install choco and scoop package managers.
Run 4-install-windows-environment.bat to install the required tools.
Open PowerShell as Administrator, enter WSL, navigate to the project folder, and run 4-install-wsl-environment.sh to configure the WSL environment.
Run 9-clean-configure-app-windows.bat to generate a Visual Studio Community Edition project. Alternatively, use CMake to create the project for Visual Studio.
-
Complete Build: Run
7-build-app-windows.batto:- Build the project.
- Run tests.
- Generate packaged binaries.
-
Generate Documentation: Run
7-build-doc-windows.bat. -
Run Tests Only: Run
8-build-test-windows.bat.
Run 7-build-app-linux.sh to build, test, and generate packaged binaries for the WSL environment.
Run 9-clean-project.bat to clean all project outputs.
-
Service History Tracking
- Vehicle Model
- Service Kilometers
- Service Provider
- Service Cost
-
Maintenance Reminders
- Vehicle Model
- Service Kilometers
- Service Type
-
Expense Logging
- Vehicle Model
- Expense Type
- Expense Date
- Cost
-
Fuel Efficiency Reports
- Vehicle Model
- L/100KM Fuel Consumption
- Provides secure access to records through username and password verification.
- Allows the user to view, register, update, or delete records easily.
- Tested using GoogleTest and CTest.
- Achieves 100% test coverage with successful unit tests.
| Coverage Type | Windows | Linux (WSL-Ubuntu 20.04) |
|---|---|---|
| Line Based | ||
| Branch Based | ||
| Method Based |
| Platform | Coverage Ratio |
|---|---|
| Windows | |
| Linux |
- Doxygen may overwrite badge images due to identical filenames. For correct visuals, refer to the
README.mdor webpage.
Run 7-build-app-windows.bat for a complete build in 11-15 minutes, including:
- Cleaning project outputs.
- Generating required folders.
- Running Doxygen for documentation.
- Generating coverage reports using Coverxygen.
- Configuring the project for Visual Studio Community Edition.
- Building Debug and Release versions.
- Running tests and collecting coverage data using OpenCppCoverage.
- Generating reports for test coverage and documentation.
- Building the website with MkDocs.
- Compressing outputs to the release folder.
Run 7-build-app-linux.sh to perform similar tasks as the Windows script and generate release-ready outputs.