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.
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.
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.
![]() |
![]() |
![]() |
![]() |
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.
Integration and unit tests for this projects have been created. They covered both API endpoints calling with custom input data and controller/services functions.
Before you begin, ensure you have installed Docker on your system:
We use SqlServer as our database server. The service is defined in docker-compose.yml.
The Transmission Server is responsible for handling data transmission between the mobile devices and the backend. It's configured in srs.conf.
Our Recording Server manages and stores video recordings. Configuration file is nginx.conf and dockerfile can be found in rtmp-hls server.
The API service provides endpoints for the mobile app to interact with the backend (including video server).
To start the entire backend stack, run the following command in the project root:
docker-compose up -d --buildTo stop the services:
docker-compose downThis project is created for Bachelors degree at Faculty of Mathematics and Information Sciences of Warsaw University of Technology. All rights of WUT degrees apply.





