Road surface condition monitoring system
This repository has been archived on 2026-07-26. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
  • Jupyter Notebook 85.2%
  • Dart 8.6%
  • Python 2.4%
  • C++ 1.4%
  • CMake 1.2%
  • Other 0.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2024-10-12 22:59:36 +03:00
.github/workflows don't compress 2024-04-13 21:05:40 +03:00
.unused mv test to unused 2024-05-15 23:42:17 +03:00
api fix datetime format 2024-04-27 18:00:26 +03:00
clickhouse clickhouse: add default table 2024-04-18 23:09:16 +03:00
common rm prints 2024-05-14 00:39:08 +03:00
docs docs: update 2024-07-16 22:20:03 +10:00
guessr guessr: comment unused 2024-07-16 22:20:41 +10:00
kafka updates 2024-04-19 19:57:09 +03:00
kafkaui docker: add kafka,kafkaui,kafka-mqtt-proxy 2024-04-07 19:25:06 +03:00
mobile mobile: handle subscribe notification, resubscribe on error (GPS) 2024-05-21 12:17:27 +03:00
mobile_imitator mobile-imitator: fix time error 2024-05-13 21:44:07 +03:00
monitoring_keeper add pool_size configurations 2024-05-13 20:54:08 +03:00
monitoring_loader add pool_size configurations 2024-05-13 20:54:08 +03:00
points_consumer docs: update README.md 2024-05-15 23:40:10 +03:00
.gitignore docs: update 2024-06-05 19:05:05 +03:00
docker-compose.yml guessr-points-inserter: add service to show predictions on train data 2024-05-21 22:30:34 +03:00
guessr.dockerfile guessr: fix type errors, file_paths 2024-04-29 21:09:02 +03:00
guessr_points_inserter.dockerfile guessr-points-inserter: add service to show predictions on train data 2024-05-21 22:30:34 +03:00
LICENSE Initial commit 2024-02-18 14:41:51 +03:00
mobile_imitator.dockerfile mobile-imitator: fix dockerfile 2024-05-13 17:09:01 +03:00
monitoring_keeper.dockerfile idk why 2024-04-19 18:44:05 +03:00
monitoring_loader.dockerfile monitoring_loader: add, update topic handling (to not have duplicates) 2024-04-29 21:53:10 +03:00
README.md docs: update README.md 2024-10-12 22:59:36 +03:00

road-condition-monitoring

RU

Система мониторинга состояния дорог (road-condition-monitoring) предназначена для сбора данных с датчиков (акселерометр, гироскоп, GPS) мобильных устройств с целью прогнозирования состояния дорожного покрытия. Прогнозирование осуществляется специализированным сервисом (не мобильным устройством). Пользователи, указав адрес сервиса api, могут получать результаты прогнозов о состоянии дорожного покрытия в точках прогноза.

Разработанные компоненты:

  • api предоставляет результаты пользователям.
  • guessr выполняет прогнозирование на основе данных с датчиков мобильных устройств.
  • mobile мобильное приложение, разработанное на Flutter, собирающее данные с датчиков и позволяющее просматривать результаты анализа.
  • points_consumer сервис, группирующий результаты прогнозирования для снижения нагрузки на базу данных.

Опциональные компоненты:

  • monitoring_imitator вспомогательный сервис для нагрузочного тестирования guessr и points_consumer.
  • monitoring_keeper и monitoring_loader используются для хранения промежуточных результатов во время тестирования алгоритмов guessr.

Используемые сервисы:

  • kafka очередь сообщений, обеспечивающая связь между guessr, mobile и points_consumer.
  • clickhouse СУБД для хранения результатов прогнозирования.

Дополнительные сервисы:

  • kafkaui интерфейс для просмотра состояния очереди kafka.

EN

The road-condition-monitoring system is designed to collect sensor data (accelerometer, gyroscope, GPS) from mobile devices to predict road surface conditions. The prediction is performed by a specialized service responsible for forecasting. Users, by specifying the api service's address, can obtain forecast results about road conditions at the prediction points.

Developed components:

  • api provides data to users.
  • guessr makes predictions based on sensor data.
  • mobile a mobile application that collects sensor data and allows users to view analysis results.
  • points_consumer a service that groups prediction results to reduce the load on the database.

Optional components:

  • monitoring_imitator an auxiliary service for load testing guessr and points_consumer.
  • monitoring_keeper and monitoring_loader used for storing intermediate results during the testing of guessr algorithms.

Services used:

  • kafka a message queue used for communication between guessr, mobile, and points_consumer.
  • clickhouse a DBMS for storing prediction results.

Additional services:

  • kafkaui an interface for viewing the state of the kafka queue.

Build & Deploy

Services:

docker compose \
    [--profile monitoring-keeper] \
    [--profile monitoring-loader] \
    [--profile mobile-imitator] \
    build

docker compose \
    [--profile monitoring-keeper] \
    [--profile monitoring-loader] \
    [--profile mobile-imitator] \
    up

points-consumer may require manual restart after kafka is ready, otherwise won't read topics.

docker compose restart points-consumer

Mobile:

cd mobile
flutter build apk

Datasets