Welcome to my Object‑Oriented Programming (OOP) learning repository.
This repository contains both Python and C++ implementations of OOP concepts, organized into theory notes and practical projects.
The goal of this repository is to systematically learn and apply OOP principles in two languages:
- Python: conceptual documentation, mini‑projects, unit testing
- C++: modern C++17 projects with layered architecture and API integration
oop-learning-repo/
├── C++/
│ ├── docs/ # Intro, class diagrams, design patterns
│ └── LibraryManagement/ # Console‑based Library Management System
├── Python/
│ ├── docs/ # Theory notes (classes, inheritance, etc.)
│ └── projects/
│ ├── student\_management/ # Completed
│ ├── banking\_system/ # In progress
│ └── library\_management/ # In progress
└── README.md # Main project overview (this file)
- Library Management System
- Console‑based application built with C++17
- Uses CMake, vcpkg, SQLite, and the Open Library API
- Documentation
- Architecture overview
- Class diagrams and design patterns
- Data flow and module descriptions
- OOP Theory Notes (
Python/docs/
)- Coverage of core topics: classes, inheritance, polymorphism, encapsulation, abstraction, dunder methods
- Projects (
Python/projects/
)- Student Management System (complete)
- Banking System (under development)
- Library Management (under development)
- Testing
- Unit tests and interactive test modules for each project
- Maintain a clear separation between theory (
docs/
) and implementation (projects/
) - Emphasize reusable, modular, and maintainable code
- Apply OOP principles in both Python and C++ projects
Each language directory is self‑contained. Follow the instructions in each project’s README.
Example: Python Student Management
git clone https://github.com/amr-yasser226/oop-learning-repo.git
cd oop-learning-repo/Python/projects/student_management
# Create virtual environment, install dependencies, and run
Example: C++ Library Management
cd oop-learning-repo/C++/LibraryManagement
# Install dependencies via vcpkg, configure with CMake, and build
- Complete Python Banking and Library projects
- Expand documentation for C++ modules and design patterns
- Add new projects and explore additional OOP concepts
This repository is licensed under the MIT License. Contributions and feedback are welcome.