Skip to content
No description, website, or topics provided.
JavaScript HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
api
www
.gitignore
Dockerfile
README.md
dburl.js
index.js
package.json

README.md

washyBackend

This is the Backend for the washy scheduling system for washing machines. It's a basic NodeJS instance running Aeolus as a web framework.

Usage

To run this server locally you'll need to have NodeJS and npm installed and run:

$ npm install
$ npm start

Running In Docker

This repo includes a Dockerfile. To run this inside docker simply use:

$ docker build -t washybackend .
$ docker run -p 8080:8080 washybackend

MongoDB

All the information required to connect to the database should be editable in dburl.js and can be changed to any other MongoDB instance.

To run a MongoDB instance in Docker we recommend:

$ docker run -p 27017:27017 -d mongo

API

Here is a simplified API reference

GET

/HelloWorld

returns "Hello" to confirms the server is running.

/user?{number|facebook|telegram}={id}

returns the object of a user corresponding any of the given services.

/times/{day-string}

returns all the possible timeslots for a given day

/conversation/{id}/state

returns all the state information stored by a bot conversation

POST

/reserve/{start-date}

will reserve a Machine with the start-date for 2 hours. If succesfull it will return the machine. If not it will return false.

/room/{id}/machine

Will add a machine to the room with the given id.

/room/{id}/identify?url={url}

Will check if the person in the image in the url has a reserved machine in the room with the given ID. If that's the case it will return the name of the person. If not it will give a reason for failing.

/user/pic?{number|facebook|telegram}={id}&url={url}

Will reference the picture in url to the user and train the Faces API.

/users?name={name}&number={number}&[{facebook|telegram}={id}]

Will create a user with the name and the phone number and reference them to any other given service id's.

PUT

/conversation/{id}/state?[date={date}|user={user}|state={state}]

Will store the date and or user and or state information to the state object for persistency in the Bot. It will only override the given attributes and none more.

/user/{number}?{facebook|telegram}={id}

Will associate any external service id to the user with the number number.

You can’t perform that action at this time.