A comprehensive Smart Home Automation System developed in Java using core Object-Oriented Programming (OOP) concepts. This project demonstrates how real-world home automation scenarios can be modeled using inheritance, interfaces, abstraction, encapsulation, and polymorphism. 📌 Features Control and automate lights, fans, doors, air conditioners, and other appliances.
Support for scheduling, device grouping, and remote control simulation.
User authentication and role-based access (Admin/User).
Real-time monitoring (simulated via console/UI).
CLI or GUI interface for user interaction.
Modular, scalable code structure following best OOP practices.
💡 OOP Concepts Used Classes & Objects: Represent devices, users, controllers, and sensors.
Inheritance: Base Device class extended by specific devices like Light, Fan, AC.
Interfaces: For defining behaviors like Switchable, Schedulable, SensorOperated.
Polymorphism: Unified device control using base references.
Encapsulation: All fields are private with accessors/mutators.
Abstraction: Abstract classes for generalized behavior.
Static Members: For utility and device count tracking.
Nested/Inner Classes: For context-specific functionalities (like Room or ScheduleManager).