Skip to content

The remote for an electronic Post-It note system, built using Flutter and Provider, for my final year project

Notifications You must be signed in to change notification settings

kelvin589/diginote

Repository files navigation

diginote

This app uses a companion app Diginote Screen to display messages. A documentation page for the public libraries can be found here.

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 usage.
  • Additional login and registration providers.
  • Integrate with ID scanners to know who is present at the screen.
  • Integrate with other applications, such as a calendar app and weather app.
  • More complex message scheduling.
  • Analytics with various metrics.
  • Two-way communication (e.g., text chat).
  • GeoFencing to display messages based on the location of the remote.
  • Automatic analysis and creation of templates for frequently created messages.
  • Make the preview view easier to use.
  • Speech to text.
  • Favourites option for templates.
  • Help section or tutorial for new users.

Setup

  1. Setup your development environment by following the official Flutter guide
  2. Setup an emulator (iOS, Android, Chrome, etc.)
  3. Follow the Firebase guide to install and setup Firebase CLI
  4. Run dart pub global activate flutterfire_cli to install FlutterFire CLI
  5. Register for a firebase account (note: the project must be on the Blaze plan for notifications and the QR code to work properly)
  6. Open Firebase console
  7. Set up Authentication
    • Enable the email/password provider
  8. Set up Firestore Database
    • Set up the security rules to allow for read and write
  9. Set up Realtime Database
    • Set up the security rules to allow for read and write
  10. Set up Firebase Cloud Functions (see the diginote_cloud_functions repository)
  11. Clone the project to get a local copy
git clone https://github.com/kelvin589/diginote
  1. Change your directory to the project folder
cd diginote
  1. Install dependencies
flutter pub get
  1. Initialise FlutterFire from the project's root
flutterfire configure
  1. Open main.dart and run the project on an emulator