Giter Site home page Giter Site logo

server-backend's Introduction

Home Server

Core Features

  • REST API to interact with home automation suite
  • User accounts and authentication
  • Resident location tracking (Home or Away)
  • Device control

Technologies

  • Node
  • Express
  • MongoDB & Mongoose (Schema, Model)
  • Gulp
  • Nodemon

Integrations

  • Indigo Home Automation Server to manage Insteon Hardware Devices
  • Geohopper for iOS geofencing
  • Foursquare (Swarm technically) to increase user geo awareness
  • Forecast.io for current weather conditions
  • Applescript for control of iTunes, Airfoil, and Spoken Alerts

Organization

/app - Core application, sets up the express server and starts up all the various controllers. This single backend application creates functionality for multiple font end Javascript applications.

/app/controllers - Endpoints, public API, all of the URL mapping for REST like communication happens here. Most of these are pretty thin and pass the work to the related library.

/app/lib - backend libraries and utilities. These do not have any endpoints themselves, but many have a corresponding controller to handle public communication.

/app/models - Mongoose models and schema. Mongo is not queried directly, all database transactions go through Mongoose models.

/app/util - General Utilities

/app/middleware - Express middleware for auth and logging

server-backend's People

Watchers

James Cloos avatar Kevin Jonson avatar

Forkers

gosborn

server-backend's Issues

App has server address hard coded

  • Should first try and use the js origin for url source (web)
  • If not origin (Cordova) the app should redirect to a view where the user can enter the server address. This address should be stored locally (local storage?)
  • Remove all hard coded addresses from code.

Add ability to create triggers

The app should have the ability to create triggers. e.g. If this light turns off then turn that one one.

  1. Support triggers in lib
  2. Add triggers to db
  3. Build trigger admin view to show and edit triggers.

App does not notify user of server issues.

  • All data calls should have a reasonable timeout
  • The app should notify the user when the server cannot be found in a timely manner.
  • Should redirect to error page when the server is not found.

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.