Giter VIP home page Giter VIP logo

smart_home's Introduction

Smart Home Solution

This repository contains the source code for a distributed Smart Home application built on .NET using Windows Communication Foundation (WCF) with TCP protocol.

Overview

The Smart Home solution is built using a component-oriented design and comprises six projects:

  • SecuritySystem.Server: An ASP.NET project that serves as the server for the Security System part of the application. It exposes multiple services for the client app to consume via WCF with TCP.

  • SecuritySystem.UI: A WPF client application that allows users to interact with the Security System services provided by the server. Through this app, users can turn on/off connected objects, open/close the main door, view live camera feeds, and check the history of security-related events.

  • Administration.Server: A server-side project that exposes Administration services for the web app to consume. Like SecuritySystem.Server, it uses WCF with TCP to communicate with the web app.

  • Administration.WebApp: An ASP.NET web application that allows users to manage the Smart Home system. Through this app, users can add/modify/delete connected objects and users.

  • DoorApp: A WPF client application that will be installed on the door to let people request the door to open. It notifies the SecuritySystem server to open the door.

  • SmartHome.Contracts: A project that holds interfaces for the services and model classes used by the other projects.

Usage

To use the Smart Home solution, you will need to build the solution in Visual Studio and then run the appropriate projects depending on the functionality you want to test. You can use the SQL script to generated the needed schema, fill it up the way you want. Make sure to put the appropriate connection strings on both Glabals.cs files on both servers projects. To run the SecuritySystem.UI or DoorApp clients, you will need to run the SecuritySystem.Server project first. Similarly, the Administration.WebApp requires the Administration.Server project to be running.

Screenshots

Here are some screenshots of the Smart Home application:

Security System Dashboard

The main dashboard of the desktop client.

Security System Devices

Security System History

Login Window

Login Window of the desktop client.

Devcies management

Devcies management.

Requirements

To build and run the Smart Home solution, you will need:

Visual Studio 2019 or later .NET 6.0 or later Windows Communication Foundation (WCF)

Future Work

Some potential areas for future development of the Smart Home solution include:

  • Adding more security-related features such as facial recognition for user authentication or integration with external security systems.
  • Adding more connected objects such as smart thermostats or lighting systems.
  • Improving the user interfaces of the client applications to be more intuitive and user-friendly.

License

This project is licensed under the MIT License - see the LICENSE.txt file for details.

smart_home's People

Contributors

raid-teyar avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

smart_home's Issues

WCF and TCP protocol

why exactly you are using TCP protocol for communication and not just standard HTTP ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.