/SmartYard-Android

Мобильное приложение для умных домофонов и видеонаблюдения / Android mobile application for SIP intercoms and CCTV for customers.

Primary LanguageKotlinGNU General Public License v3.0GPL-3.0

Teledom Android

История проекта

Это приложение, которое было изначально заказано операторм связи LanTa (г. Тамбов) у студии мобильной разработки Mad Brains (г. Ульяновск) в 2020 году для проекта умных домофонов. Это изначально был MVP, который умел принимать видеозвонки с IP домофонов Beward, открывать двери, калитки, шлагбаумы, принимать оплату от клиентов, подтверждать доступ пользователя к адресу, оставлять заявки на подключение, отображать камеры видеонаблюлюдения с архивом, получать и отображать текстовые уведомления, вести чат с оператором, управлять настройками домофона и управлять доступами для других жителей квартиры. Позже мы стали развивать этот проект совими силами и дополнять его дополнительными фичами. Мы добавили: видовые камеры, журнал событий, настройки функции распознавания лиц, а также исправляли баги, которые за время работы то там, то тут всплывали.

В октябре 2021 года мы созрели для того, чтобы открыть исходные коды нашего проекта и предлгаем всем, кто заинтересован в построении аналогичных сервисов не "изобретать свой велосипед" с нуля, а вместе с нами развивать данный проект, обмениваясь идеями и наработками. На этот момент приложением пользуется около 15 тысяч пользователей, живущих в домах оборудованных домофонными панелями и системами видеонаблюдения от нашей компании.

API

Приложение использует наше собственное API. (ссылка на API) Исходный код back-end, реализующий API, на текущий момент неотделим от нашей архитектуры и от всех остальных наших систем, поэтому на текущем этапе мы не можем вам предложить ничего лучше, как реализовать у себя это API своими силами. В описании API есть пример того, как делается интеграция между Asterisk и мобильным приложением на примере Linphone. Для понимания принципов построения системы это будет также полезно изучить.

Используемые фреймворки и компоненты (основные)

  • Liblinphone SDK для реализации SIP части
  • Flussonic или Nimble для работы с архивом видеокамер
  • Firebase Cloud Messaging для работы с Push-уведомлениями
  • osmdroid для работы с картами
  • Crashlytics для сбора информации и сбоях и аналитике

Дизайн

Возможно, вам также может понадобиться что-то поменять в дизайне приложения, или в коде вы увидите ссылки на номера экранов, тогда наши макеты экранов приложения в Figma могут быть полезны.

Частые вопросы (FAQ)

  • Где брать google-services.json для сборки приложения?

google-services.json - это файл настроек проекта для работы с Google Firebase, который необходимо скачать из консоли Firebase после регистрации там своего проекта. Инструкция по регистрации https://firebase.google.com/docs/android/setup

  • Как добавить свой сервер в список операторов, поддерживаемых приложением?

Напишите ваш запрос на добавление нам на почту: sesameware@gmail.com или свяжитесь с нами через Telegram https://t.me/+39S-IGTfmMdmZDJi

  • Как сделать свой вариант приложения на основе кода из репозитория?

С помощью инструкций на https://developer.android.com/studio/build/build-variants

  • Как протестировать работу приложения через обычный HTTP?

Нужно собрать проект в варианте (flavor) teledomTest, у которого в настройках атрибут cleartextTrafficPermitted="true".

Лицензия и условия использования

Данный проект опубликован под стандартной общественной лицензией GNU GPLv3. Вы можете модифицировать и использовать наши наработки в своих проектах, в т.ч. коммерческих, при обязательном условии публикации их исходного кода. Также мы готовы рассмотреть ваши Pull requests, если вы хотите чтобы наш проект развивался с учётом ваших модификаций и доработок.