Merixstudio’s IoT meeting room booking system

Overview

Chamberlain

Merix Logo

This project is in the open-sourcing process. There is only a mobile application available right now. The Firebase project will be available as soon as possible.

Merixstudio’s IoT meeting room booking system. Chamberlain is a part of our internal Ginny application for booking hot desks, conference rooms, and parking spots. If you want more about this project, check out our blog post.

Getting started

Right now we're sharing only the client application of the Chamberlain system, so you will not be able to integrate the application with your calendar without additional work. We'll open source the calendar integration as soon as possible.

Build the Flutter app

  1. Generate required files via build_runner, you can run make run_build_runner command.

  2. Connect Firebase projects by generating Firebase configurations via Flutter Fire CLI. At the moment, there is no support for different flavors, so we have to generate configuration multiple times (depending on the number of flavors). Run flutterfire configuration for a specific flavor (prod in this example).

flutterfire configure -a com.merixstudio.chamberlain -i com.merixstudio.chamberlain -o lib/config/firebase/options/prod/firebase_options.dart

Copy generated android/google-services.json to a flavor directory android/app/prod/google-services.json

Repeat the process for other flavors.

  1. Set the required --dart-define envs CALENDAR_ID, PIN_CODE & TIMZONE. VSC launch configuration is available in the .vscode/launch.json file.

Envs

  • FLAVOR [required] - allows to load different configurations for the firebase project,
  • CALENDAR_ID [required] - Google Calendar id that is available in the calendar settings,
  • INTERACTION_COUNTER_DISABLED - allows to disable auto return to the status page,
  • PIN_CODE - set the pin code for the admin section,
  • TIMZONE - default timezone for calendar events,
  • EMULATOR_ENABLED- enables firebase emulator support,
  • EMULATOR_HOST - defines firebase emulator host address,

Architecture

The core components of the architecture:

  • BloC for state management
  • get_it + injectable for DI
  • auto_route for routing
  • as always: freezed ❤️

The general concept of the application is really simple. Each device communicates with the Firestore only to have real-time communication and offline support. Devices have two main tasks: They listen for events for a specific conference room and create new events. Cloud functions are responsible for listening for changes in events and creating or modifying them on the Google Calendar via the REST API. Firestore stores the events of the two following days. After midnight, the Cloud Functions Schedulerclears the database and fetch the next two days.

The Google Calendar watch mechanism is used to stay up-to-date with all events. It allows you to watch a specific calendar ID.

Chamberlain flow diagram

Kiosk mode

Application is ready to run in kiosk mode. It's a mode that restricts the tablets’ functionality to Chamberlain application only. Device owner was set by the ADB. In the admin section, the kiosk mode can be disabled. To enter the admin section, double tap on the room name.

Device

Our goal was to use some unusual devices, so we decided to run Android OS on the RPI 4B. With the great work of https://konstakang.com we did it with ease. We used LineageOS 19 (Android 12L). Device is controlled by the official Raspberry Pi 7" touchscreen display.

Device Management

Because of the possibility to control devices via SSH, we decided to build a simple desktop application using Flutter to manage all of our devices. It's a really simple application that has some useful features:

  • display list of devices
  • show device information (name, IP, screen mirror preview)
  • control device (restart the device, turn off the screen, and so on).
  • send command to multiple devices
  • upload new apk to install an update
Application & source code availalbe soon

Firebase

Firebase Cloud Functions were used to synchronize events with the Google Calendar. Firestore for storing events and providing real-time communication with the target devices. The whole logic is a part of Ginny application.

Source code availalbe soon

TODO

  • Release firebase project (google calendar integration)
  • Release dedicated desktop application for device managament
  • (Chamberlain) Extend meeting time
  • (Chamberlain) Night mode - turn off screen at night
You might also like...

It is an IoT smart home app

It is an IoT smart home app

Smart Home Our world is increasingly interconnected - most of us own a smartphone and can access all kinds of information right from our pockets. From

Dec 26, 2022

On Demand Doctor Appointment Booking App Built in Flutter

flutter_doctor_appointment_booking_app Getting Started flutter_doctor_appointment_booking_app project has "main.dart" as Entry Point. Hire Me Drop me

Dec 23, 2022

Cab Booking Web App in Flutter

Cab-Booking-Flutter-Web-App Cab Booking Template - Flutter Cab offers you just about everything you are looking for in a free taxi service website tem

Dec 30, 2022

Flutter UI design for a car booking application

Flutter UI design for a car booking application

Flutter UBER UI Kit A flutter Uber UI Kit inspired by A design on behance 20+ Screens and still making more. 😁 Star if you like what you see. ⭐ ⭐ ⭐ ⭐

Dec 11, 2022

Docoline is a virtual Doctor appointment booking application

Docoline is a virtual Doctor appointment booking application

Docoline Docoline is a virtual Doctor appointment booking application, that has been developed to override the problems of booking an appointment with

Oct 17, 2022

Flutter UI design for a car booking application

Flutter UI design for a car booking application

Flutter UBER UI Kit A flutter Uber UI Kit inspired by A design on behance 20+ Screens and still making more. 😁 Star if you like what you see. ⭐ ⭐ ⭐ ⭐

Dec 22, 2021

Bus Seat Booking App For Flutter

Bus Seat Booking App For Flutter

shani_bus(Bus Seat Booking App) splash screen Login page 3)Home screen Seat book

Oct 8, 2022

Flutter Hotel Booking UI

Flutter Hotel Booking UI

hotel_booking Original Design: https://dribbble.com/shots/7967793-Travel-App RESULT Getting Started This project is a starting point for a Flutter app

Dec 28, 2022

Doctor booking app - Flutter Ui Challenge Speed Code

Doctor booking app - Flutter Ui Challenge Speed Code

Installation flutter pub get Usage flutter run Live Demo : Flutter Doctor Booking App Web Demo Try Android APK : Download From Google Drive Dotor Bo

Jan 3, 2023
Owner
Merixstudio
We are a full-stack team ready to plan, design and develop your web applications & digital products. We love startups!
Merixstudio
Hotel-Booking-App-UI - Beautiful Hotel Booking App UI with support for dark and light mode

Flutter Hotel Booking App UI with support for dark and light mode. Flutter 2.8.1

Martin Gogołowicz 11 Nov 1, 2022
Find a good meeting time across multiple timezones.

meeting_scheduler Adventures in scheduling across timezones. A project by the Adventures In [Dart, Flutter, Firebase] group. Goals: Help people find a

Adventures In [Dart, Flutter, Firebase] 3 May 23, 2022
Example of Flutter app integration with Clan Meeting

Clan Meeting - Flutter Integration Please make sure that the permissions required for mobile apps are added to your app. We use Flutter InAppWebView f

null 0 Oct 17, 2022
Use CMP Crew, Create a room, invite your friends to join, and let them add their orders to the shared menu!

Tired of collecting your friends’ orders at restaurants? Lost track of how many of you want tea? Don’t worry we got you covered! Use CMP Crew, Create a room, invite your friends to join, and let them add their orders to the shared menu!

Ahmed Ihab 14 Dec 15, 2022
Create a Grid Layout of IoT (Internet of Things) devices in a particular house.

Create a Grid Layout of IoT (Internet of Things) devices in a particular house. Keep it simple to just 4-6 devices. Each device will have an icon on its own. When you press the icon, toggle the image and toggle the text underneath between on and off.

null 0 Dec 30, 2021
A Dart-native lightweight Apache Pulsar client primarily focused on the IoT telemetry domain

pulsar_iot_client A lightweight Apache Pulsar client primarily focused on the IoT telemetry domain. This project aims to improve the resulting perform

Mike Zolotarov 5 May 10, 2022
Cross-platform mobile app for tracking GPS with IoT technologies.

IoT Tracking Cross-platform mobile app for tracking GPS with IoT technologies. Table of Contents Introduction Requirements Installation Build & Run Kn

0xShikYe 4 Oct 2, 2022
💖A free IoT (Internet of Things) platform and private cloud

??A free IoT (Internet of Things) platform and private cloud

Open IoT Hub(云易连) 422 Nov 30, 2022
IoTF app is a smart farming app for IoT and AI-powered tomato plant disease detection. It is built with Flutter and uses Firebase as its backend.

Internet of Tomato Farming IoTF app is a smart farming app for IoT and AI-powered tomato plant disease detection. It is built with Flutter and uses Fi

ILYAS IMZAGNAN 4 Dec 9, 2022