Skip to content

saisridhar77/Smart-Home-Automation-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Smart Home Automation System (in progress)

Project Overview

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.

Features

  1. Device Control & Monitoring
    • Remotely turn devices ON/OFF
    • Adjust device settings (e.g., temperature, brightness)
    • Real-time monitoring of device status and energy consumption
  2. User Authentication & Role-Based Access
    • Secure authentication system
    • Admin and Regular User roles
  3. Automation & Scheduling
    • Event-driven automation (e.g., motion-based lighting)
    • Schedule devices to turn ON/OFF automatically
  4. Security & Exception Handling
    • Secure data transmission
    • Error handling for invalid inputs and unauthorized access
  5. Graphical User Interface (GUI)
    • User-friendly interface for interaction

Object-Oriented Programming (OOP) Implementation

  • 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

Exception Handling

  • Handles at least two cases of runtime errors
  • Ensures stability during invalid user inputs or system failures

File Handling & I/O Operations

  • Uses File Handling for data storage
  • Implements Scanner Class for user input processing

Multithreading

  • Implements Runnable Interface or extends Thread Class to handle concurrent operations

UML Diagram

  • The UML Diagram is included in the submission folder
  • It illustrates the class structure, relationships, and interactions in the system

Submission Folder Contents

  1. Word Document
    • Project explanation
    • UML Diagram
    • Java Code appended
  2. UML Diagram (separate file)
  3. .java Source Files (all classes and interfaces)
  4. Presentation (PPT)
  5. Rubrics Table
    • Lists all the required components (I to XIII) and their usage

How to Run the Project

  1. Clone the Repository
    git clone <repository_url>
  2. Compile the Java Files
    javac -d . *.java
  3. Run the Main Class
    java Main
  4. Interact with the GUI or Command-line Interface

Notes

  • 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

Authors

  • Sai Sridhar , Hriday Shrimal , Aryan Goyal , Sashakt Keshri
  • Bits Pilani Goa Campus

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages