Skip to content

A repository for learning Object‑Oriented Programming in Python and C++17. Features Python projects (Student Management, Banking System, Library Management) and a C++ console‑based Library Management System. Covers OOP principles, layered architecture, design patterns, API integration, and includes documentation and tests.

License

Notifications You must be signed in to change notification settings

amr-yasser226/oop-learning-repo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 

Repository files navigation

OOP Learning Repository

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.


Purpose

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

Repository Structure


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)


Contents

C++

  • 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

Python

  • 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

Learning Approach

  • 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

Setup

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

Roadmap

  • Complete Python Banking and Library projects
  • Expand documentation for C++ modules and design patterns
  • Add new projects and explore additional OOP concepts

License

This repository is licensed under the MIT License. Contributions and feedback are welcome.

About

A repository for learning Object‑Oriented Programming in Python and C++17. Features Python projects (Student Management, Banking System, Library Management) and a C++ console‑based Library Management System. Covers OOP principles, layered architecture, design patterns, API integration, and includes documentation and tests.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published