Skip to content

mostafaaElsherbiny/oop-tasks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

OOP Tasks - From Beginner to Advanced

This repository contains 10 comprehensive Object-Oriented Programming tasks that progress from basic concepts to advanced design patterns.

Note: These tasks were designed by Mustafa Elsherbiny and written with AI assistance.

🌐 Language Support

These tasks can be completed in any OOP language: Java, C#, PHP, C++, Python, JavaScript/TypeScript, Ruby, or any other object-oriented programming language.

  • Adapt the syntax and naming conventions to your chosen language
  • Use equivalent data structures (Lists/Arrays, Maps/Dictionaries, etc.)
  • Some advanced concepts like generics, events/delegates, or interfaces may have language-specific equivalents
  • Code examples are provided in pseudocode or language-agnostic format

πŸ“š Level 1: Beginner Tasks (1-4)

Focus: Basic classes, objects, methods, and collections

Task 1: Library Management System

Learn the fundamentals of OOP by building a library system with books, members, and basic lending operations.

  • βœ… Classes and objects
  • βœ… Properties and methods
  • βœ… Working with collections

πŸ‘‰ View Task 1

Task 2: Student Grade Management System

Practice working with collections and calculations by creating a gradebook system.

  • βœ… Map/Dictionary collections
  • βœ… Data processing and calculations
  • βœ… String formatting

πŸ‘‰ View Task 2

Task 3: Vehicle Rental System

Build a rental system that manages vehicles, customers, and rentals with date handling.

  • βœ… Multiple interconnected classes
  • βœ… Date/time operations
  • βœ… Business logic implementation

πŸ‘‰ View Task 3

Task 4: Restaurant Order System

Create a restaurant ordering system with menu items, orders, and billing.

  • βœ… Nested objects and collections
  • βœ… Financial calculations
  • βœ… State management

πŸ‘‰ View Task 4

🎯 Level 2: Intermediate Tasks (5-7)

Focus: Inheritance, polymorphism, interfaces, and enums

Task 5: Zoo Management System

Implement a zoo system with abstract classes (or interfaces) and polymorphic animal behaviors.

  • βœ… Abstract classes/interfaces
  • βœ… Inheritance hierarchies
  • βœ… Method overriding
  • βœ… Polymorphism

πŸ‘‰ View Task 5

Task 6: Hotel Reservation System

Build a hotel system with interfaces, enums, and complex date calculations.

  • βœ… Interfaces
  • βœ… Enums for type safety
  • βœ… Composition relationships
  • βœ… Business rules validation

πŸ‘‰ View Task 6

Task 7: Bank Account System

Create a banking system with inheritance and different account types.

  • βœ… Inheritance
  • βœ… Virtual and override methods
  • βœ… Protected/private members
  • βœ… Financial calculations

πŸ‘‰ View Task 7

πŸš€ Level 3: Advanced Tasks (8-10)

Focus: Design patterns, generics, events/observers, queries, and SOLID principles

Task 8: Social Media Platform

Develop a social platform with complex relationships and event-driven updates.

  • βœ… Many-to-many relationships
  • βœ… Event handling/observers
  • βœ… Access control
  • βœ… Chronological data management

πŸ‘‰ View Task 8

Task 9: Inventory and Supply Chain System

Build a supply chain system with generics, events/observers, and query operations.

  • βœ… Generic classes
  • βœ… Event handling/observers
  • βœ… Query operations (filtering, sorting)
  • βœ… Strategy pattern

πŸ‘‰ View Task 9

Task 10: E-Commerce Order Management System

Create a comprehensive e-commerce system demonstrating all advanced OOP concepts.

  • βœ… Multiple interfaces
  • βœ… Design patterns (Strategy, Observer, Factory)
  • βœ… SOLID principles
  • βœ… Custom exceptions
  • βœ… Advanced polymorphism

πŸ‘‰ View Task 10

πŸ“– How to Use This Repository

  1. Start with Level 1 if you're new to OOP
  2. Progress sequentially through the tasks
  3. Complete all bonus challenges for deeper learning
  4. Review the learning goals before starting each task
  5. Test your code thoroughly with the provided examples

πŸŽ“ Learning Path

Level 1 (Beginner) β†’ Level 2 (Intermediate) β†’ Level 3 (Advanced)
    Tasks 1-4            Tasks 5-7               Tasks 8-10

πŸ’‘ Tips for Success

  • Read the entire task before starting to code
  • Plan your class structure before implementing
  • Test incrementally as you build each class
  • Use meaningful names for variables and methods
  • Add comments to explain complex logic
  • Complete the example usage to verify your implementation
  • Try the bonus challenges to deepen your understanding

πŸ“Š Concepts Covered

Concept Tasks
Classes & Objects 1, 2, 3, 4
Inheritance 5, 7
Polymorphism 5, 7, 10
Interfaces 6, 9, 10
Abstract Classes 5, 10
Enums/Constants 6, 10
Generics/Templates 9
Events/Observers 9
Design Patterns 8, 9, 10
Query Operations 9, 10
SOLID Principles 10

πŸ› οΈ Implementation Notes

  • Generics are called templates in C++, type parameters in other languages
  • Events/Delegates can be implemented with observers, callbacks, or listeners
  • Query operations (LINQ in C#, Streams in Java, array methods in JavaScript, etc.)
  • Enums may be implemented as classes, constants, or native enum types depending on your language
  • Interfaces may be called protocols, traits, or abstract base classes in some languages

Good luck on your OOP journey!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors