# Project instructions

As project you should work in groups of up to three and create a platform (a solution consisting of two applications communicating over Firebase). Using Firebase real time database, your apps should simulate a controller and a device, where the controller controls the device. The application should be implemented with Vue native, as taught in the course.

At the end of the project you will submit a report documenting all of the steps of your work.

# 1. Register your project groups

You will be working in project groups of up to three people, and your first task is to sign up on Canvas. Click here and register for a group together with your other group members.

Take note of your project group members in the report.

# 2. Describe your Idea

You will create two different applications working together communicating using Firebase. One application should be the controller application and one application should be the device application.

The controller application should

  • Send commands to the device application.
  • Retrieve the status of the device application.
  • Show the current status of the device application.

The device application should

  • Retrieve commands from the controller application.
  • Simulate some kind of device (examples can be found further down).
  • Send status updates back to the controller device.

Describe your idea by answering the following questions in a document and submitting it on Canvas (at least 2 pages)

  1. What system will your applications simulate?
  2. What data will your device send to your controller?
  3. What data and commands will your controller send to your device?
  4. How often will the device update the controller?
  5. How will the controller make sure it's up to date with the device?
  6. How will you implement the system? (describe the different technologies used to make the system work)

Describe your idea and answer these questions in your report.

# Example systems

  1. A light and a light switch
    • Your system simulates a light and a switch to turn the light on and off
    • The device sends data about the light status, if it's turned on or off
    • The controller sends commands to turn the light on or off
    • The device updates the controller every time it's toggled as well as once every minute
    • The controller subscribes to a database in Firebase to keep it updated
    • The system is build using Vue Native and Firebase
  2. A robot vacuum and an app
    • Your system simulates a robot vacuum and an app showing the status of the vacuum (off / idle / cleaning)
    • The device sends information about its current status as well as how long it's been cleaning if it's currently cleaning
    • The controller sends commands about starting cleaning or ending cleaning
    • The device updates the controller every minute while idle, or every second while cleaning
    • The controller subscribes to a database in Firebase to keep it updated and checks a timestamp in the database to

# 3. Design your applications

Use draw.ioto create mockups of your applications.

Create mockups for all screens of both your applications, use arrows to show what buttons and interractions should do what. For example, if you have a button that turns on a light in the device application, use an arrow with a text above it to illustrate that.

Export and save your mockups and add them to your report.

# 4. Implement your applications

Now it's time to build your application. Implement all of the screens and build the application in Vue Native, using Firebase for the communication between the apps.

# Plan and document your project

Document your development process by first describing user stories (read about user stories here)

Write down all user stories for your project, add information about when development of each story started, when it was completed and who (which group members) was involved in the development of that particular story.

Add your documentation to your report

# 5. Present your applications

When you are ready to present your application, send an e-mail to linus.rudbeck@redcapes.se and ask to present. You will get a response with a few suggestions on a time to present.

# 6. Submit your applications

Submit your application code along with your project report on Canvas.

Contact linus.rudbeck@redcapes.se if you have any questions about the project.

You need to submit your project before the end of 2021-10-24