{"id":29223777,"url":"https://github.com/susannnnnna/cpp_patientdatabasecli","last_synced_at":"2026-04-29T06:36:06.267Z","repository":{"id":301947035,"uuid":"981665549","full_name":"Susannnnnna/Cpp_PatientDatabaseCLI","owner":"Susannnnnna","description":"Simple CLI application with Google Tests (demo based on IEC 62304)","archived":false,"fork":false,"pushed_at":"2025-07-06T18:39:45.000Z","size":56,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-06T19:40:40.357Z","etag":null,"topics":["bdd","ci-pipeline","cli","cmake","cpp","demo-iec-62304","gtest","integration-testing","powershell","regression-testing","req-iec-62304","system-testing","tasks-json","unit-testing","vscode"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Susannnnnna.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2025-05-11T16:16:01.000Z","updated_at":"2025-07-06T18:42:39.000Z","dependencies_parsed_at":"2025-06-29T19:23:33.669Z","dependency_job_id":"2883b1e6-4db6-4dc9-9ebd-93b9e7ad0c3c","html_url":"https://github.com/Susannnnnna/Cpp_PatientDatabaseCLI","commit_stats":null,"previous_names":["susannnnnna/cpp_patientdatabasecli"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Susannnnnna/Cpp_PatientDatabaseCLI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Susannnnnna%2FCpp_PatientDatabaseCLI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Susannnnnna%2FCpp_PatientDatabaseCLI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Susannnnnna%2FCpp_PatientDatabaseCLI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Susannnnnna%2FCpp_PatientDatabaseCLI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Susannnnnna","download_url":"https://codeload.github.com/Susannnnnna/Cpp_PatientDatabaseCLI/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Susannnnnna%2FCpp_PatientDatabaseCLI/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32414422,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T06:29:02.080Z","status":"ssl_error","status_checked_at":"2026-04-29T06:29:00.631Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["bdd","ci-pipeline","cli","cmake","cpp","demo-iec-62304","gtest","integration-testing","powershell","regression-testing","req-iec-62304","system-testing","tasks-json","unit-testing","vscode"],"created_at":"2025-07-03T05:06:50.390Z","updated_at":"2026-04-29T06:36:06.261Z","avatar_url":"https://github.com/Susannnnnna.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Patient Database CLI\n\n## 🎯 Objective\nThis repository contains a simulated **medical data management CLI application**.  \nThe project includes a **traceability matrix** mapping requirements (REQ) to corresponding tests.\n\n⚠️ *Note: This is a **learning/demo project** created to simulate professional development workflows, including requirements management, traceability and structured testing (based on IEC 62304).*\n\n## ✅ Key Features\n- Store patient data in a `.csv` file\n- Add, view, edit, delete patient records via command line\n- Includes unit, integration, system, and regression tests\n- Behavior-Driven Development (BDD)\n- CI pipeline using PowerShell and tasks in VS Code\n\n## 📁 Project Structure\n- `src/` — main application source code\n- `tests/` — unit and integration tests\n- `data/` — stored `.csv` patient data\n- `tests-report/` — tests report result available in XML\n- `ci-pipeline.ps1` — CI build \u0026 run script\n\n## 📋 Requirements (REQ)\nThe system is designed to meet the following requirements:\n\n| **ID**    | **Description**                                                                                     |\n|-----------|------------------------------------------------------------------------------------------------------|\n| **REQ-001** | The system must allow creation of `Patient` objects with correct field initialization.              |\n| **REQ-002** | The system must validate PESEL numbers according to Polish rules (11 digits and correct checksum). |\n| **REQ-003** | The system must allow capturing patient data from user input (stdin).                              |\n| **REQ-004** | The system must allow displaying a list of patients to the user (stdout).                          |\n| **REQ-005** | The system must save patient data to a CSV file in the correct format.                              |\n| **REQ-006** | The system must load patient data from a CSV file.                                                  |\n| **REQ-007** | The system must allow deleting patient data by PESEL and update the CSV file.                       |\n| **REQ-008** | The system must allow editing patient data and saving updates to the CSV file.                      |\n| **REQ-009** | The system must offer a CLI menu with CRUD operations and exit functionality.                       |\n\n## 🧪 Traceability Matrix\nEach test in the project covers specific requirements:\n\n| **Test Name**                     | **Covers Requirements** |\n|-------------------------------------|--------------------------|\n| `PatientTest`                      | REQ-001                 |\n| `ValidatorTest`                    | REQ-002                 |\n| `PatientInputCollectorTest`        | REQ-003                 |\n| `PatientPrinterTest`               | REQ-004                 |\n| `SavePatientDataToCsvFile`         | REQ-005                 |\n| `ReadPatientDataFromCsvFile`       | REQ-006                 |\n| `DeletePatientDataFromCsvFile`     | REQ-007                 |\n| `EditPatientDataInCsvFile`         | REQ-008                 |\n| `RunMenu`                          | REQ-009, REQ-003        |\n| `CheckIfCsvFileCanBeRead`          | REQ-006                 |\n\n## 🧪 Testing\nDetailed structure and description: [`tests/README.md`](./tests/README.md)\n\n## ▶️ How to Run the App\n\n### 💻 Environment\n- Tested on **Windows 11**\n- Visual Studio Code + CMake toolchain\n\n### 🛠️ Used Technologies\n- C++\n- CMake\n- GoogleTest\n- PowerShell (CI pipeline)\n- JSON (only for vscode tasks)\n\n### 🗂️ Data Handling\n- Patient data stored in `.csv` file\n- CLI-based interactions (add/view/edit/delete)\n\n### 🚀 Run the App\n\n1. **Clone the repository:**\n```bash\ngit clone https://github.com/Susannnnnna/Cpp_PatientDatabaseCLI\ncd Cpp_PatientDatabaseCLI\n```\n2. Open in VS Code and install recommended extensions\n- GitHub Pull Requests and Issues\n- CMake Tools\n- CMake\n- PowerShell\n\n3. Build and run\n    \nPress `Ctrl + Shift + B` in VS Code\n\nOr use terminal:\n```bash\nmkdir build\ncd build\ncmake ..\ncmake --build . --config Debug\n```\n\n4. Run main application\n```bash\n./src/Debug/PatientDatabaseCLIApp.exe\n```\n\n### 🔗 Useful Links\n- [DDD, Hexagonal, Onion, Clean, CQRS, … How I put it all together](https://herbertograca.com/2017/11/16/explicit-architecture-01-ddd-hexagonal-onion-clean-cqrs-how-i-put-it-all-together/)\n\n## License\n[MIT license](https://opensource.org/licenses/MIT)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsusannnnnna%2Fcpp_patientdatabasecli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsusannnnnna%2Fcpp_patientdatabasecli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsusannnnnna%2Fcpp_patientdatabasecli/lists"}