Skip to content

πŸ›οΈ Smart_Store is a lightweight C++ framework for dynamic and automatic type registration, type-safe runtime object graphs in C++, type-safe serialization, and runtime object storage.

License

Notifications You must be signed in to change notification settings

gem870/Smart_Store

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

67 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

πŸ›οΈ Smart_Store

Smart_Store Banner

A High-Performance, Modern C++ Item Manager for Inventory, Asset Tracking, and Data Persistence.


Overview

Smart_Store is a modular, extensible, and high-performance C++ framework for managing, serializing, deserializing, and organizing complex item data across multiple formats. Perfect for inventory systems, asset management, data editors, and any application needing structured, taggable, and type-safe storage of arbitrary objects.
This isn’t just code it’s a living system. I designed it to be as intuitive and adaptive as the human body forming from cells.


Project Identity

Smart_Store Framework
Author: Emmanuel Chibuike Victor
Created: 2025
License: MIT License

Smart_Store was built by Victor to solve serialization challenges in C++. It introduces a metadata-driven instantiation model, multi-format serialization (JSON, XML, binary, and more to come), and undo/redo logicβ€”designed for extensibility, performance, and architectural clarity.


Key Features

  • Undo / Redo History β€” Safe state rollback with snapshots
  • Versioned Schema Migration β€” Upgrade legacy data automatically
  • Multi-Format Import/Export β€” JSON, XML, CSV, Binary
  • Dynamic Type Registration β€” Add custom types with zero boilerplate
  • Tag-Based Lookup β€” Fast, flexible item access
  • Safe Deserialization β€” Registered handlers for type safety
  • Extensive Logging β€” Color-coded, timestamped debug output
  • Thread-Safe API β€” Concurrent access and modification
  • cross-platform C++ data persistence

GitHub Action

For fast look up, use GitHub Action and run the 66 Google Test suite with results printed on the console
by click: Run Smart_Store Output App

Feature Matrix

Feature Status Description
Undo / Redo βœ… Safe state rollback through snapshots
JSON Import/Export βœ… Schema versioning & upgrade support
CSV Import/Export βœ… Standard data format compatibility
XML Import/Export βœ… Human-readable, structured format
Binary Import/Export βœ… Compact, efficient persistence
Schema Upgrades βœ… Future-proof with migration strategies
Dynamic Types βœ… Register custom object types easily

Technologies

  • C++20 β€” Modern language features
  • nlohmann::json β€” Fast, flexible JSON serialization
  • TinyXML2 β€” Lightweight XML support
  • Smart Pointers & RAII β€” Memory safety
  • Modern STL β€” std::map, std::optional, std::shared_ptr
  • Type-Safe Deserialization Registry
  • Custom Logging Utility β€” ANSI color support

Directory Structure

file structure


Quick Example

#include "t_manager/ItemManager.h"

int main() {
  ItemManager manager;

  manager.addItem(std::make_shared<int>(42), "item1");
  manager.displayByTag("item1");

  manager.exportToFile_CSV("backup.csv");

  manager.undo();
  manager.redo();

  manager.removeByTag("item1");
  manager.displayByTag("item1");

  return 0;
}

Output:

Below is the expected output illustrating Smart_Store’s tagging and state snapshot behavior in action. file structure


Smart_Store Core Architecture:

Flow from Item Registration to Export
Smart_Store Architecture Flowchart: ItemManager to Serializer

Format Import Export
JSON βœ… βœ…
CSV βœ… βœ…
XML βœ… βœ…
Binary βœ… βœ…

Why Choose Smart_Store?

  • Modern & Maintainable: Clean, idiomatic C++20 codebase
  • Zero Boilerplate: Automatic type registration, just use addItem
  • No Inheritance Required: Works with any object type
  • Data Safety: Undo history ensures you never lose a state
  • Robust Migration: Built-in schema upgrades for legacy data
  • Multi-Format Ready: Seamless transitions between formats

Installation

Windows:

. Make sure you have CMake and GCC compiler installed before you run the fellowing commands.
. If still having issues, set up WSL (Windows Subsystem for Linux) or use a Linux environment
and run the following commands.

Linux / macOS:

. Make sure you have CMake and GCC compiler installed before you run the following commands.

git clone https://github.com/gem870/Smart_Store.git
cd Smart_Store
mkdir build
cd build
cmake ..
cmake --build .
./TestApp

>> If the issue persist or throw a segmentation fault, please reach out via email or GitHub issues.

Integration


License

MIT License. See LICENSE for details.


Contributing

We welcome contributions from the community! Whether it's fixing bugs, suggesting new features, improving documentation, or refactoring code, your help is appreciated.

How to Contribute

  1. Fork the repository
  2. Create a branch for your feature or bugfix
  3. Commit your changes with clear messages
  4. Open a Pull Request (PR) with a detailed description
  5. Ensure your contribution aligns with the project's guidelines

Resources


Contact

[Email] (ve48381@gmail.com)
LinkedIn
Portfolio

About

πŸ›οΈ Smart_Store is a lightweight C++ framework for dynamic and automatic type registration, type-safe runtime object graphs in C++, type-safe serialization, and runtime object storage.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published