61 lines
1.5 KiB
Markdown
61 lines
1.5 KiB
Markdown
# ModularApp
|
|
|
|
A modular C++17 software project demonstrating clean module separation, CMake build system, and Doxygen-style API documentation.
|
|
|
|
## Features
|
|
|
|
- **Logger Module** — Hierarchical log output (DEBUG / INFO / WARN / ERROR)
|
|
- **ConfigManager Module** — Parse and manage key=value configuration files
|
|
- **DataManager Module** — In-memory data caching and lifecycle management
|
|
- **Utils Module** — String trimming, splitting, time formatting, file path helpers
|
|
- **Processor Module** — Core business logic processing with dependency injection
|
|
- **Adapter Module** — CLI argument parsing (--config, --help, --version)
|
|
|
|
## Build & Run
|
|
|
|
```bash
|
|
# Configure
|
|
cmake -B build -DCMAKE_BUILD_TYPE=Release
|
|
|
|
# Build
|
|
cmake --build build
|
|
|
|
# Run with a config file
|
|
./build/ModularApp --config example.conf
|
|
|
|
# Show help
|
|
./build/ModularApp --help
|
|
|
|
# Show version
|
|
./build/ModularApp --version
|
|
|
|
# Run tests
|
|
./build/ModularApp_test
|
|
```
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
.
|
|
├── CMakeLists.txt
|
|
├── README.md
|
|
├── include/
|
|
│ ├── app.hpp # Master header (includes all modules)
|
|
│ ├── logger.hpp
|
|
│ ├── configmanager.hpp
|
|
│ ├── datamanager.hpp
|
|
│ ├── utils.hpp
|
|
│ ├── processor.hpp
|
|
│ └── adapter.hpp
|
|
├── src/
|
|
│ ├── logger.cpp
|
|
│ ├── configmanager.cpp
|
|
│ ├── datamanager.cpp
|
|
│ ├── utils.cpp
|
|
│ ├── processor.cpp
|
|
│ ├── adapter.cpp
|
|
│ └── main.cpp
|
|
└── tests/
|
|
└── basic_test.cpp
|
|
```
|