Skip to content

MoonTech/MobileMonitoringBackend

Repository files navigation

Mobile Monitoring App Backend Server

Welcome to the backend server of our Mobile Monitoring App for Android! This repository contains a Docker Compose setup that includes the database, transmission server, recording server and API, all seamlessly integrated for easy deployment.

About project

Description

The following project concerns the development of the system for a simple use of mobile phones serving as monitoring. The system consists of three modules - mobile application for Android, web application available in the form of a deployed website and a middleware server mediating between these two modules.

The basic aggregate, grouping camera stream from several cameras within its scope, is called room. Mobile application primarily serves the purpose to transmit stream from the camera to the room. The web application is used for room management and stream reception. The functionalities such as creating new rooms, accepting cameras or video recording are implemented in the web application. The middleware server module is used for communication between the mobile application and the web application. It consists of four components: a database, srs service used for image transmission, the rtmp-hls service used for stream recording and a management service (in the form of a REST API). The middleware server enables interaction with database and mediates communication with the srs and rtmp-hls services.

Examples

Mobile application serves mainly to stream video from your camera to middleware server. Different options to choose rooms, register cameras are allowed.

Stream Video Create rooms

Web application has the aim of watching multi-view streams, recording videos, accepting cameras and managing rooms. You can also create QR codes which allow mobile devices to join rooms. Web application can serve up to 6 cameras per room with a delay of about 5 seconds.

Mobile Monitoring Backend

About this repository

This repository includes Mobile Monitoring Backend created by Jakub Winiarski. C# Web API is integrated with SRS service for streaming videos with short delay and rtmp-hls service for recording and storing videos. Whole Application is written according to REST API standards, using Microsoft Entity Framework for creating user accounts, rooms, recordings and cameras.

Moreover, the API acts as a middleware between backend and video services. Mobile Monitoring Backend uses the scheme shown below. The codebase has been designed following n-tier layer architecture pattern.

Tests

Integration and unit tests for this projects have been created. They covered both API endpoints calling with custom input data and controller/services functions.

Starting project locally

Prerequisites

Before you begin, ensure you have installed Docker on your system:

Docker Compose Services

1. Database

We use SqlServer as our database server. The service is defined in docker-compose.yml.

2. Transmission Server

The Transmission Server is responsible for handling data transmission between the mobile devices and the backend. It's configured in srs.conf.

3. Recording Server

Our Recording Server manages and stores video recordings. Configuration file is nginx.conf and dockerfile can be found in rtmp-hls server.

4. API

The API service provides endpoints for the mobile app to interact with the backend (including video server).

Usage

To start the entire backend stack, run the following command in the project root:

docker-compose up -d --build

To stop the services:

docker-compose down

License

This project is created for Bachelors degree at Faculty of Mathematics and Information Sciences of Warsaw University of Technology. All rights of WUT degrees apply.

About

Backend for Mobile Monitoring Bachelor's thesis

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •