top of page

Development progress

During the Pesach holiday we continued to develop server and client side. Since at this stage we have a clearer image of how "Georgy" will behave, we decided it's best to design our system first.

​

serverDesignImage_edited.png

By now, we developed the following components:​

- index.js

- DBConnector

- GeoCalculator

- UserDataSaver

- APIDataHandler - partially

- Matcher - partially

​

​

Client Server communications using socket.io

 

"Georgy" requires a lot of server-client communications. In order to keep things more simple, we decided to use Socket.io which is kind of an open bi-directional channel between the client and the server.

 

When the client sends GPS data to the server it tries to send it using socket.io, only if the socket is not connected for any reason the data will be sent using an http request.

​

Since "Georgy" uses server-client communication only when the app in on background or on foreground, there is no need for push notification. As long as the client is active, the socket is 'alive' and we can send the client server updates like 'You are on a bus' using socket.io as well.

​

​

Google activity recognition/transition

 

"Georgy"s users can activate our service whenever they like. In order to check for matching vehicle only when needed, we decided to use Google's activity recognition/transition service

​

The activity recognition/transition service runs on the client and notifies when the user starts or ends a specific activity and detects an activity transition from a specific activity to another.

 

So what is an activity? activity can be on of the following:

In Vehicle - The device is in a vehicle, such as a car.

On BicycleThe device is on a bicycle.

On FootThe device is on a user who is walking or running.

Running The device is on a user who is running.

StillThe device is still (not moving).

TiltingThe device angle relative to gravity changed significantly.

Walking - The device is on a user who is walking.

​

So, in order to start the matching progress only when necessary, we first check if the user's current activity is 'In Vehicle' or 'On Bicycle'. If it is - we start the matching progress immediately (since the user can be on a transportation vehicle at the moment). If it's not - we 'listen' for any activity transition from any activity to 'In Vehicle' or 'On Bicycle'.

​

bottom of page