Skip to content

NaviRice/Services

Repository files navigation

NaviRice Services

NaviRice backend services written in C++

What's inside?

Services Location
Common Data Service /common
Rendering Service /rendering
Examples Location
Android App Client /common/src/test/client_test.cpp
Renderer Bridge /renderer_bridge

Getting Started

Prerequisites

Setting up git submodules

Before moving forward, please remember to initialize and pull all the git submodules by running the following commands in the terminal:

git submodule init
git submodule update

Building from source

To compile the backend services, run the following commands in the terminal:

mkdir build
cd build
cmake ..

Installation

To install the generated libraries and public headers, run the following command in the terminal:

sudo make install

You should see the following output after installing all the services successfully:

[ 30%] Built target proto
[ 46%] Built target common
[ 60%] Built target client
[ 76%] Built target service
[ 90%] Built target server
[100%] Built target renderingService
Install the project...
-- Install configuration: ""
-- Up-to-date: /usr/local/lib/librenderingService.dylib
-- Up-to-date: /usr/local/include/navirice/Step.h
-- Up-to-date: /usr/local/include/navirice/InitService.h

Running

Launching Server

To start the example server, run the following command in the terminal:

./bin/server 0.0.0.0 8000

You should see the following output in the terminal:

Waiting for connection

Launching Service

To start the example service, run the following command in the terminal:

./bin/service 0.0.0.0 8000

You should see the following output in the terminal:

[RENDERING][1] Service started.

Launching Renderer Bridge

To start the example renderer bridge, run the following command in the terminal:

./bin/renderer 0.0.0.0 8000

You should see the following output in the terminal:

00:02:52 [RENDERING][1] Service started.

Connecting to a Server / Service

To connect to a server or a service, run the following command in the terminal:

./bin/client 0.0.0.0 8000

You should be promoted to enter the current step if connected to the server / service successfully:

Connect established.
Please enter x(double) y(double) description(string) icon(string):

Here is a sample input:

71.207 -31.03 TestDescription TestIconID

Here is the corresponding outputs:

Client
x: 71.207
y: -31.03
description: "TestDescription"
icon: "TestIconID"

00:12:05 [HEAD_TRACKING][NaviRices 1] CURRENT_STEP
Renderer
00:09:03 [RENDERING][1] Accept connection
[Step x=71.207000 y=-31.030000 description=TestDescription step=TestIconID]
00:12:05 [RENDERING][1] CURRENT_STEP

Deployment

Contributing

When contributing to this repository, please first discuss the change you wish to make via issue, email, or Facebook group chat with the owners of this repository before making a change.

  1. Ensure any install or build dependencies are removed before the end of the layer when doing a build.

  2. Update the README.md with details of changes to the interface, this includes new environment variables, exposed ports, useful file locations and container parameters.

  3. Increase the version numbers in any examples files and the README.md to the new version that this Pull Request would represent. The versioning scheme we use is SemVer.

  4. You may merge the Pull Request in once you have the sign-off of two other developers, or if you do not have permission to do that, you may request the second reviewer to merge it for you.

Authors

  • Yang Liu - Initial work - byliuyang
  • Can Alper - Optimized server performance - calper-ql
  • Alex Gaines - Interfaced rendering service with renderer - roboman2444
  • Binam Kayastha - To do some work in the future - binamkayastha

License

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages