Skip to content

Latest commit

 

History

History
149 lines (103 loc) · 6.99 KB

README.md

File metadata and controls

149 lines (103 loc) · 6.99 KB

Laundry Savior Prototype App

Laundry Savior provide a dashboard to check availability of the washing machine, and remind users to collect laundry immediately as well as allow e-payment to pay for the laundry.

Please visit our website for further information.

User Guide

1. Installation

  • Download the app from the link above.

  • Tap on the .apk file to install the app.

  • Pop-ups may appear according to phone type. Accept any pop-ups, such as “This type of file can harm your device.

2. Setup the app

  • Select Dormitory -> Select Floors -> Done!

  • You can change the dormitory and floor on the settings page.

3. Check the status of washing machines

  • You can switch between 2 views with a toggle view button:

    1. (Left) Showing all machines on the user’s floor
    2. (Right) Showing all available machines on any floors in the dorm

4. Get notified if any washing machine is available.

  • Click on the bell toggle to turn on notification for washing machines / dryer machines

  • When notification is turned on, by default, you will be notified when any machine on your floor is available. If you want to get notified for other floors, you can select by clicking the select floor button.

  • You can configure the reminder settings from the settings page.

5. Using E-payment

  • When clicked on a machine, you are required to pay in order to use the machine.

  • (above) When a default payment method is set, there will be a shortcut for the selected method.

  • (below) During the first time or when the default payment method is not set, you should manually select a payment method.

  • You can configure the default payment method in the settings page

6. Notify When Laundry is Done

  • When the laundry is done, you will receive a notification.

  • You can configure the reminder settings from the settings page.

Limitations and Hard-coded features

Limitations/tradeoffs of the current prototype

  • Animations are not in the current prototype.
  • By now, we could only send notifications, and could not trigger an alarm.
  • FAQ and Feedback page in the Settings Page is not yet implemented

Wizard of Oz techniques

  • The machine status is simulated.
    • It’s computed with the state transition here: Machine state simulation
    • For demonstration, the time in the app is speeded by 60x (1 second = 1 minutes).
  • The e-payment does not direct the users to a 3-rd party payment app
    • Reason: we do not register with 3-rd party payment services to receive payment.

Hard-coded features

The data of all dormitories and floors are hard-coded.

Development

Project Structure

flutter-template
├───build
├───assets
│   ├───icons
│   └───images
├───lib
│   ├───generated
│   │   └───intl
│   ├───l10n
│   ├───models
│   │   └───api
│   ├───services
│   ├───theme
│   ├───utils
│   └───widgets
│       ├───components
│       └───screens
├───test
├───android
├───ios
├───linux
├───macos
├───web
└───windows

Prequisites

  1. Install Flutter

Setup

  1. git clone this repository
  2. flutter pub get to get all dependencies

Localization

To add string value to existing locale (zh-TW):

  1. Get Flutter Intl Extension (for VS Code)
  2. Add key-value pair in lib/i10n/intl_zh_Hant_TW.arb
  3. Save and the extension will generate .dart code automatically

For adding locales or further information, please refer to the documentation at the extension page.

Production

  1. flutter build android or flutter build apk

Upgrade SDK

Update to newer flutter version:

  1. flutter channel stable
  2. flutter upgrade
  3. flutter pub upgrade

Backend Development