Functional

  1. The system must store and thus remember user settings even after it is switched off.
  2. The system must not act on behalf of our user:
    1. The system shall not create any content on its own, but will only fetch data from the user’s online profiles.
    2. The system shall not send any e-mail, post anything or respond to any message.
    3. The system shall not send any data or information about the user.
  3. The system must detect room conditions:
    1. Depending on the conditions, it shall notify the user if he exceeds a preset threshold for the room-comfort levels.
    2. The user shall have the possibility to act and modify easily these thresholds in order to fit its habits.
  4. The system must monitor the electric consumption:
    1. Depending on the readings, it shall notify the user if a preset threshold is exceeded.
    2. The user shall have the possibility to act and modify easily this threshold in order to fit its own preference.
  5. The web application (online interface) for user preferences must be clear and easy to use:
    1. The user shall always be aware of what he is doing and which are the features of the system he is modifying.
  6. The system must provide the alarm clock functionality:
    1. The system shall offer at least two different types of alarm setting configurations.
    2. The system shall allow user modifications for the alarms he has set.
  7. The system must be able to retrieve only new information from the internet, while caching previously fetched data:
    1. The system shall only present new messages or notifications to the user.
    2. The system shall not display notifications that have already been presented.
  8. The whole list of notification must be accessible online from everywhere:
    1. The web interface shall be compatible with different kind of devices, from computers to smart-tv
  9. The system must understand when the user is free or not:
    1. The system will use the user’s calendar stored locally to achieve this task.
      1. The user’s calendar will be built upon both social platforms’ events (Google Calendar and Facebook) and user’s manually inserted events.
    2. The system will try to understand if the user is at home alone, basing itself on the guest-list field present in any calendar events:
      1. The system will shut down voice alerts if the user results not to be ad home alone (due to privacy concerns).
    3. The system must allow the user to configure a silent or do-not-disturb period:
      1. During these periods, the system shall stop all notifications.
      2. The user can create a temporary silent period of N minutes (with N a configurable amount), by actively pressing the dismiss button.
  10. The system must inform the user whenever the doorbell rings:
    1. The user shall be able to detect multiple rings within close time intervals.
  11. The system must differentiate between the priorities in the notifications through clear and visible distinction (eg. the frequency of flashing in light notifications):
    1. The system shall filter and prioritize notifications basing itself on the relationship between the user and the notification source:
      1. Relationships between the user and a contact are inferred depending on the amount of communications and events attended together or directly set through the online interface by the user itself.
  12. Different types of light notifications shall be displayed using different colors

Non-functional

  1. The system must have limited functionality without Internet access:
    1. The system shall not crash whenever Internet connection is not available.
  2. The system must keep proper track of user preferences, actions, and relations.
    1. The system must take into account these data in future notification decisions.
    2. The system must not lose analyzed? or raw data, if the power is lost or the system is cycled
  3. The system must always prioritize user preferences over inferred preferences, regardless of historical data.
  4. The system must be modularly designed to allow future extensions, such as adding more social networks:
  5. The system must be punctual in notifying the user with respect to the notification generation time.
    1. The system must display an alarm notifications within 30 seconds of its due time.
  6. The system will only be designed for handling a single user:
    1. The system can be extended later to manage multiple users, by means of extra sensors.
  7. The system will try to minimize possible privacy issues in notifying the user:
    1. The user must explicitly inform the system through calendar or preferences that the he is not going to be at home alone.
    2. The system can be extended to automatically infer such cases with the use of sensors capable of detecting specific data on the human presence in a room.