{"id":29091186,"url":"https://github.com/zohaibcodez/cashmemo-cpp","last_synced_at":"2025-06-28T06:05:47.905Z","repository":{"id":300459457,"uuid":"1006218335","full_name":"ZohaibCodez/cashmemo-cpp","owner":"ZohaibCodez","description":"🧾 Modular C++ cash memo (billing system) using OOP and Makefile","archived":false,"fork":false,"pushed_at":"2025-06-21T19:58:28.000Z","size":176,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-21T20:33:26.020Z","etag":null,"topics":["beginner-project","billing-system","cash-memo","cli-application","cpp","makefile","modular-programming","oop"],"latest_commit_sha":null,"homepage":"https://zohaibcodez.github.io/cashmemo-cpp/","language":"C++","has_issues":true,"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/ZohaibCodez.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,"zenodo":null}},"created_at":"2025-06-21T18:55:29.000Z","updated_at":"2025-06-21T20:05:39.000Z","dependencies_parsed_at":"2025-06-21T20:44:08.088Z","dependency_job_id":null,"html_url":"https://github.com/ZohaibCodez/cashmemo-cpp","commit_stats":null,"previous_names":["zohaibcodez/cashmemo-cpp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ZohaibCodez/cashmemo-cpp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZohaibCodez%2Fcashmemo-cpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZohaibCodez%2Fcashmemo-cpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZohaibCodez%2Fcashmemo-cpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZohaibCodez%2Fcashmemo-cpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZohaibCodez","download_url":"https://codeload.github.com/ZohaibCodez/cashmemo-cpp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZohaibCodez%2Fcashmemo-cpp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262382732,"owners_count":23302296,"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":["beginner-project","billing-system","cash-memo","cli-application","cpp","makefile","modular-programming","oop"],"created_at":"2025-06-28T06:05:46.993Z","updated_at":"2025-06-28T06:05:47.893Z","avatar_url":"https://github.com/ZohaibCodez.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🧾 Cash Memo System in C++\n\nA console-based C++ application designed to generate cash memos or receipts. This project demonstrates core object-oriented programming (OOP) principles, including class design, encapsulation, and operator overloading. It is structured professionally with separate header and implementation files and is built using a `Makefile`.\n\n---\n\n## ✨ Features\n\n- **Dynamic Data Entry**: Captures all necessary details for a cash memo, including shop information, customer details, and item specifics.\n- **Formatted Output**: Generates a clean, well-formatted cash memo ready for display.\n- **Input Validation**: Ensures that data like names, numbers, and dates are entered in a valid format.\n- **OOP Design**: Utilizes a collection of classes to model real-world entities like `Item`, `Date`, and `Address`.\n- **Makefile Build System**: Includes a straightforward `Makefile` for easy compilation and execution.\n\n---\n\n## 📁 Project Structure\n\nThe project is organized into `include` and `src` directories to separate class declarations from their implementations.\n\n```\ncashmemo-cpp/\n├── include/\n│   ├── Address.h\n│   ├── CashMemo.h\n│   ├── CellNumber.h\n│   ├── Date.h\n│   ├── Item.h\n│   ├── Name.h\n│   ├── ReceiptNo.h\n│   └── ShopDetails.h\n│\n├── src/\n│   ├── Address.cpp\n│   ├── cashmemo_app.cpp  (Main application entry point)\n│   ├── CashMemo.cpp\n│   ├── CellNumber.cpp\n│   ├── Date.cpp\n│   ├── Item.cpp\n│   ├── Name.cpp\n│   ├── ReceiptNo.cpp\n│   └── ShopDetails.cpp\n│\n├── build/                 (Created automatically by the Makefile)\n├── Makefile               (To compile and run the project)\n├── .gitignore             (Specifies files for Git to ignore)\n└── README.md              (This file)\n```\n\n---\n\n## ⚙️ How to Build and Run\n\nThis project uses a `Makefile` to automate the build process. Ensure you have `g++` and `make` installed on your system.\n\nOpen a terminal in the project's root directory and use the following commands:\n\n**1. To compile the project:**\nThis command compiles all source files and links them into an executable located in `build/bin/`.\n```bash\nmake\n```\n\n**2. To compile and run the project:**\n```bash\nmake run\n```\n\n**3. To clean the build directory:**\nThis command removes all compiled files.\n```bash\nmake clean\n```\n\n---\n\n## 🖥️ Sample Usage\n\nHere is an example of the program's input and output flow:\n\n```\n$ make run\n                  SHOP DETAILS\n\nEnter Shop First Name : Super\nEnter Shop Last Name : Electronics\nEnter Shop Description : Quality Gadgets\nShop's Owner Name\nEnter first name: Zohaib\nEnter middle name: (or '-' to skip)-\nEnter last name: Khan\nCellInfo \nEnter Country Code : 92\nEnter Number : 3001234567\nAddress Info\nStreet No : 123\nCity : Islamabad\nCountry : Pakistan\nEnter date (DD MM YYYY): 22 6 2024\n                  CUSTOMER'S INFO\nEnter first name: Ali\nEnter middle name: (or '-' to skip)-\nEnter last name: Ahmed\n\nEnter 2 Items:\nEnter particular: Wireless Mouse\nEnter quantity: 1\nEnter rate: 1500\nEnter particular: Keyboard\nEnter quantity: 1\nEnter rate: 2500\n------------------------------------------------------\n              Super Electronics\n------------------------------------------------------\n         Quality Gadgets\n           Cell : +92 3001234567\n\nNo: 1001                                  Date: 22-6-2024\nName: Ali Ahmed\n\n------------------------------------------------------\n     Qty         Particulars      Rate      Amount\n------------------------------------------------------\n       1      Wireless Mouse   1500.00     1500.00\n       1          Keyboard   2500.00     2500.00\n------------------------------------------------------\n                                         Total: 4000.00\n------------------------------------------------------\nSignature: Zohaib Khan\nAddress : Street # 123, Islamabad, Pakistan\n\n```\n\n---\n\n## 🧩 Core Classes\n\n- **`CashMemo`**: The main class that aggregates all other components to form the final receipt.\n- **`ShopDetails`**: Manages the store's information, such as its name, address, and contact details.\n- **`Item`**: Represents a single item in the memo, including its quantity, name, rate, and total amount.\n- **`Name`**, **`Address`**, **`CellNumber`**, **`Date`**, **`ReceiptNo`**: Helper classes that model individual data components with their own logic and validation.\n\n---\n\n## 👨‍💻 Author\n\nDeveloped By **Zohaib Khan** 🎓\n\n## 📄 License\n\nMIT License © 2025 [Zohaib Khan](https://github.com/ZohaibCodez).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzohaibcodez%2Fcashmemo-cpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzohaibcodez%2Fcashmemo-cpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzohaibcodez%2Fcashmemo-cpp/lists"}