{"id":20031734,"url":"https://github.com/astrodynamic/smartcalculator","last_synced_at":"2025-06-15T19:09:06.892Z","repository":{"id":216136374,"uuid":"740559915","full_name":"Astrodynamic/SmartCalculator","owner":"Astrodynamic","description":"A Python calculator application with a Qt/QML interface, utilizing a C++ library for dynamic calculations.","archived":false,"fork":false,"pushed_at":"2024-01-08T17:09:01.000Z","size":66,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-06-04T23:21:12.107Z","etag":null,"topics":["api","arithmetic","calculator","cmake","cpp","ctypes","dylib","expression-calculator","gui","mathematics","mvp","mvvm","pyside","python3","qml","qt6","rnp","slot","trigonometric-calculations"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Astrodynamic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-08T15:39:50.000Z","updated_at":"2025-04-01T19:24:12.000Z","dependencies_parsed_at":"2024-01-08T17:15:58.952Z","dependency_job_id":null,"html_url":"https://github.com/Astrodynamic/SmartCalculator","commit_stats":null,"previous_names":["astrodynamic/smartcalculator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Astrodynamic/SmartCalculator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Astrodynamic%2FSmartCalculator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Astrodynamic%2FSmartCalculator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Astrodynamic%2FSmartCalculator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Astrodynamic%2FSmartCalculator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Astrodynamic","download_url":"https://codeload.github.com/Astrodynamic/SmartCalculator/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Astrodynamic%2FSmartCalculator/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260035586,"owners_count":22949253,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","arithmetic","calculator","cmake","cpp","ctypes","dylib","expression-calculator","gui","mathematics","mvp","mvvm","pyside","python3","qml","qt6","rnp","slot","trigonometric-calculations"],"created_at":"2024-11-13T09:34:32.893Z","updated_at":"2025-06-15T19:09:06.862Z","avatar_url":"https://github.com/Astrodynamic.png","language":"Python","readme":"# SmartCalculator\n\nA Python Calculator Application utilizing C++ for calculations with Qt/QML interface. The program follows the MVVM or MVP pattern, adheres to Google Code Style, and separates business logic appropriately.\n\n## Overview\n\nThis project is a calculator application written in Python 3.12 with a Qt/QML interface. The calculation logic is implemented in C++17 using a dynamic library, and the integration between Python and C++ is achieved using ctypes. The project structure also includes a CMake build system for the C++ component.\n\n## Prerequisites\n\n- Python 3.12\n- C++17 compiler\n- Qt/QML\n\n## Build Targets\n\n- `make all` (default): Build the project.\n- `make build`: Build the C++ calculation library.\n- `make rebuild`: Clean and rebuild the C++ library.\n- `make uninstall`: Remove build artifacts.\n- `make clean`: Clean the project directory.\n- `make environment`: Create Python virtual environment and install dependencies.\n- `make run`: Run the calculator application.\n\n## Project Structure\n\n- `lib/calculation`: C++ calculation library source code.\n- `view`: Qt/QML interface files.\n- `main.py`: Python script for running the calculator.\n- `requirements.txt`: Python dependencies.\n\n## C++ Calculation Library\n\nThe C++ calculation library (`calculation.h`, `calculation.cc`) provides the core logic for parsing and evaluating mathematical expressions. It supports basic operations, functions, and constants.\n\n## Qt/QML Interface\n\nThe Qt/QML interface is defined in the `view/main.qml` file, and the Python script (`main.py`) handles the integration between Python and C++.\n\n## Installation\n\n### Build C++ Library\n\nTo build the C++ calculation library, run the following commands:\n\n```bash\nmake build\n```\n\n### Python Environment\n\nCreate a virtual environment and install the required Python dependencies:\n\n```bash\nmake environment\n```\n\n## Usage\n\nRun the calculator application:\n\n```bash\nmake run\n```\n\nThis will start the Qt/QML interface with the calculator.\n\n\n\n## Cleaning Up\n\nTo remove build artifacts and Python cache files, run:\n\n```bash\nmake clean\n```\n\n## LICENSE\nThis project is licensed under the [MIT License](LICENSE). Feel free to modify and distribute it as per the terms of the license.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastrodynamic%2Fsmartcalculator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fastrodynamic%2Fsmartcalculator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastrodynamic%2Fsmartcalculator/lists"}