This project is a Smart Home Automation System that allows users to remotely control and monitor home devices such as lights, fans, air conditioning, and security systems. The system provides functionalities like turning devices ON/OFF, adjusting settings (e.g., brightness, temperature), scheduling automation, real-time monitoring, and energy consumption tracking.
The project is implemented in Java using Object-Oriented Programming (OOP) principles and ensures secure communication and data handling. It includes user authentication with role-based access control (Admin vs. Regular User) and supports event-driven automation, such as activating lights when motion is detected.
- Device Control & Monitoring
- Remotely turn devices ON/OFF
- Adjust device settings (e.g., temperature, brightness)
- Real-time monitoring of device status and energy consumption
- User Authentication & Role-Based Access
- Secure authentication system
- Admin and Regular User roles
- Automation & Scheduling
- Event-driven automation (e.g., motion-based lighting)
- Schedule devices to turn ON/OFF automatically
- Security & Exception Handling
- Secure data transmission
- Error handling for invalid inputs and unauthorized access
- Graphical User Interface (GUI)
- User-friendly interface for interaction
- Minimum 6 Classes to encapsulate the system components
- Method Overloading (at least 2 cases)
- Constructor Overloading (at least 2 cases)
- Vararg Overloading (at least 2 cases)
- Nested Classes (at least 1 static or non-static)
- Abstract Class (at least 1)
- Interface (at least 1, supporting single-level or multiple inheritance)
- Hierarchical Inheritance (at least 1 instance)
- Multiple Inheritance (at least 1 instance)
- Wrappers to utilize primitive data types efficiently
- Package for better modularization
- Handles at least two cases of runtime errors
- Ensures stability during invalid user inputs or system failures
- Uses File Handling for data storage
- Implements Scanner Class for user input processing
- Implements Runnable Interface or extends Thread Class to handle concurrent operations
- The UML Diagram is included in the submission folder
- It illustrates the class structure, relationships, and interactions in the system
- Word Document
- Project explanation
- UML Diagram
- Java Code appended
- UML Diagram (separate file)
- .java Source Files (all classes and interfaces)
- Presentation (PPT)
- Rubrics Table
- Lists all the required components (I to XIII) and their usage
- Clone the Repository
git clone <repository_url>
- Compile the Java Files
javac -d . *.java
- Run the Main Class
java Main
- Interact with the GUI or Command-line Interface
- The code follows best practices for readability, indentation, and modularity
- Ensure Java 8 or later is installed to run the project
- Non-plagiarized, original implementation
- Sai Sridhar , Hriday Shrimal , Aryan Goyal , Sashakt Keshri
- Bits Pilani Goa Campus