diginote

This app uses a companion app Diginote Screen to display messages.

Table of Contents

Overview

The aim of this project was to develop a prototype of an electronic Post-It note system which a member of staff (specifically, university lecturers) can display via a mobile device placed on the door to their office.

Using a remote mobile dashboard, it allows a staff member to leave notices as to his/her office presence and associated availability, to post real-time messages for people who are expected at their office, etc.

Its core purpose was to ensure that availability is communicated clearly and easily under different contexts of use to planned and prospective visitors to the individuals’ office.

Diginote Demo

Features

  • User authentication
  • Easy screen pairing
  • Screen 'preview' to add messages or insert templates, and position them
  • Various message customisation options
  • Message scheduling
  • Message templates
  • Screen presence notifications
  • Low battery notifications

Possible Improvements

  • Add more customisation options.
  • Design and usbility improvements.
  • Make the pairing process simpler. For example, using a QR code.
  • Add MFA to prevent malicious messages.
  • Integrate with ID scanners to know who is present at the screen.
  • More complex message scheduling.
  • Analytics with various metrics.
  • Two-way communication.
  • Display alternative content by integrating with other apps, such as a calendar app.

Setup

To run this project:

  1. Clone the project to get a local copy
git clone https://github.com/kelvin589/diginote
  1. cd into the project folder
cd diginote
  1. Install dependencies
flutter pub get
  1. Setup Firebase
  2. Update firebase_options_example.dart with your Firebase configuration
  3. Run the application in an emulator.

Libraries

add_message_popup
add_schedule_popup
add_screen_popup
add_template_popup
background_colour_selector
colour_picker_icon
date_time_selector
dialogue_helper
firebase_login_provider
firebase_login_repository
firebase_options
firebase_preview_provider
firebase_preview_repository
firebase_register_provider
firebase_register_repository
firebase_screen_info_provider
firebase_screen_info_repository
firebase_screens_provider
firebase_screens_repository
firebase_templates_provider
firebase_templates_repository
font_picker
font_selector
foreground_colour_selector
generated_plugin_registrant
header_input
home_view
icon_helper
input_validators
login_view
main
message_input
message_item
message_item_content
message_item_paneled
message_size_selector
messages_model
notification_service
online_status_icon
preview_view
register_view
screen_info_model
screen_item
screen_item_content
screen_model
screen_settings_popup
screens_view
settings_view
shared_preferences_theme_manager
state_enums
styling_constants
templates_model
templates_view
templates_view_popup
text_alignment_selector
theme_provider
timer_provider
token_updater_service
zoom_provider