Skip to content

Requirements

George P. Latos edited this page Nov 12, 2024 · 1 revision

Requirements

Requirement Type Requirement
Functional (FR)
1. The system shall generate customized recommendations based on sensor data for various plant types.
2. The system shall send notifications to the user when plant care actions are required based on calculated recommendations.
3. The Android App shall notify the user when soil moisture is low and watering is necessary.
4. The Android App shall estimate watering frequency and predict the next watering time based on historical sensor data.
5. The system shall measure and monitor soil moisture, temperature, and light conditions using Grove sensors.
6. The system shall read, transmit, and display data from Grove sensors (moisture, temperature, and light intensity) at regular intervals through the MQTT broker, http and Wio Terminal.
7. The system shall send notifications to the user in cases of extreme weather events.
8. The system shall store all historical sensor data locally on the device the app is installed on.
9. The system shall provide users with the option to enable dark mode.
10. The system shall provide users with the option to give feedback to the developers.
11. The system shall provide users with the ability to create and switch between different plant profiles.
12. The system shall allow users to configure an MQTT connection within the settings page of the app.
13. The system shall allow users to view a plant database within the app.
14. The system shall provide a confirmation message on the terminal when mqtt is connected.
Constraints
1. The app shall be compatible with Android devices.
2. The app shall be completed before May 15, 2023.
3. The system shall utilize all chosen sensors for full functionality.
4. All team members shall adhere to the team contract.
5. The system shall be developed using Java, MQTT, Android Studio, and Arduino IDE.
Domain Assumptions (DA)
1. The user shall have access to a compatible Android device to run the app.
2. Both the user and the Wio Terminal shall have a stable internet connection.
3. The system shall be compatible with Grove sensors.
4. The Grove sensors shall be placed correctly within the plant's environment.
User Stories (US)
US1 (FR5): As a data-driven plant enthusiast, I want the system to continuously monitor my plants soil moisture, temperature and light intensity at regular intervals so I can understand trends and better care for my plant. Acceptance criteria: The system successfully measures all sensor data at regular intervals.
US2 (FR6): As a plant owner with a full time job, I need to be able to view my plants' conditions remotely so that I can monitor them and plan what actions will need to be taken once I get home. Acceptance criteria: MQTT broker is set up to transfer the sensor data from the terminal into the app over the internet.
US3 (FR6): As a remote gardener, I want to view my plant’s sensor data directly on the terminal so I can check its status even if I don’t have access to the app. Acceptance criteria: Real-time sensor data is displayed on the Wio Terminal directly.
US4 (FR2): As a forgetful plant owner, I want to receive push notifications when my plant needs care actions so I don’t forget to give my plant the conditions it needs. Acceptance criteria: The app pushes notifications to the users device when care actions are required, based on sensor data.
US5 (FR2): As a busy professional, I want to be able to customise the notification settings so that i only receive notifications when I am available to tend to my plant. Acceptance criteria: The app allows users to create time-windows for when notifications are to be pushed (by day of the week and time of day).
US6 (FR2): As a user with many plants, I want to receive a summary of all the care actions required for my plants so that I can efficiently plan my routine. Acceptance criteria; The app provides a summary of all care actions recommended upon request.
US7 (FR3): As an attentive plant owner, I want to receive a notification when my plant’s soil moisture is low, so that I can water it promptly. Acceptance criteria: The app pushes a watering notification when the soil moisture is too low.
US8 (FR3): As a curious plant enthusiast, I want to be able to view my plant’s soil moisture in real-time on the app so I can monitor how fast it depletes. Acceptance criteria: The app displays sensor data on the app in real-time.
US9 (FR7): As a plant owner with a garden, I want to know when extreme weather like storms are on the way that might damage my plants, so that I can prepare to bring them inside. Acceptance Criteria: App monitors weather app and sends a notification to the user if a weather warning is in place in the users location.
US10 (FR8): As a data driven plant owner, I want to be able to view my plants historical sensor data so that I can look at trends. Acceptance criteria: The app displays graphs of historical data to the user so trends can be observed.
US11 (QR2): As a user of the app, I want the UI to be clean and organized so that I can easily navigate and use the app efficiently.
US12 (FR9) As a user with a sight impairment, I want the option to enable dark mode so that I can navigate the User Interface without difficulty.
US13 (FR10) As a user who is conscious about the continued development of apps I regularly use, I want the option to be able to give feedback to the developers through the app.
US14 (FR11) As a user with many different plants, I want the ability to create and switch between different profiles for my plants so that I am not confused by the stored data if I put the sensors with different plants.
US15 (FR12) As a user of the system, I want to be able to configure an MQTT connection to my Wio terminal so that I can monitor my plants via the app. Acceptance Criteria: MQTT can be configured in the settings page without the need for editing any code or app files directly.
US16 (FR6): As a user of the app, I want my terminal to read and store sensor data continuously, not just when I am running the app, so that I can observe trends over long periods of time. Acceptance Criteria: Terminal data is transmitted at regular intervals, via http, to a firebase server and stored, so it can then be retrieved by the app.
US17 (FR13): As a user of the app, I want to be able to view a database of plants within the app so that I can plan my care routine for different kinds of plants.
US18 (FR14): As a user of the app, I want to be able to see a confirmation message when my mqtt is configured properly, so I know that the components are connected.
US19 (QR2): As a user of the app, I want to be able to view a tutorial so I can understand how to use the user interface.
Quality Requirements (QR)
1. The system shall be responsive and send updates and notifications to the Android app in a timely manner.
2. The system shall have a user-friendly interface
Clone this wiki locally