Personalized handheld breathalyzer you can carry with you anywhere you go. It will measure and compare you to statistics and allows for application personalization and cloud syncronization of data.
Task description:
The pie chart activity will contain a pie chart of the drink types that were input by the user for that specific week, along with a listview of the drinks input for that week.
Related epic: #33
Task description:
Create an page to register the user and their new device. The registration page will require a username, password, email, and device ID.
Related epic: #35
Epic:
As a drinking buddy user, I want to view the result obtained with the click of a button so that I can be aware of my current alcohol consumption level.
Epic
As a drinking buddy user, I want to have the results of the breathalyzer sensor and drinks I input in separate graphical displays, so the information generated and stored by the app can be more easily understandable.
Task description:
Write code to read data from sensor when triggered, establish mathematical correlation with sensor raw data and human readable values.
Related epic: #3
Task description:
Once a user inputs their registration information, this information gets stored in an SQL table. If a user inputs an existing username, prompt the user to change their username. The password should be hashed before being stored in the database.
Related epic: #35
Task description:
Set parameters for the sensor to begin reading input data at a certain value parameter so that the information is more accurate upon input.
Related epic: #34
Task description:
The sensor readings will now be displayed as a line graph in the line graph activity along with a listview of all past breaths.
Related epic: #33
Task description:
Create the barebones structure of the android application with the general layout to be completed as more features get implemented.
Related epic: #5
Task description:
Transmit data packets over the Bluetooth connection channel. Verify the reception and data integrity of the packets.
Related epic: #2
Task description:
Fetch the data stored in the database from the sensor and output the result. The process of obtaining data from the sensor and outputting it should be achieved within a small time frame.
Related epic: #4
Task description:
Create an activity for drink inputs, separating the breath from the drink data. Users will be able to enter any number of drinks of 4 distinct categories, and the input will be saved to a new table in the database, with timestamp.
Related epic: #33
Task description:
Get the ESP32 to connect to Bluetooth. This can be achieved using the built in Bluetooth property of the ESP32. Find and test Bluetooth communication libraries in the Arduino IDE.
Related epic: #2
Epic
As a drinking buddy user, I want to be informed when the device is listening for a new sample so I can collect the most accurate sample of my alcohol level in my system.
Task description:
The statistical and user information are compared to one another so the user can see where they stand versus the general population. This is done largely on screen so they may see their results clearly.
Related epic: #33
Task description:
When a user logs in, get the password by username and ensure they match. The password must be de-hashed before being compared with the user input. If the information is accurate, the user is logged in.
Related epic: #35
Task description:
If the user is creating their profile for the first time or editing from an existing one, the display of the profile page varies.
Related epic: #35
Task description:
Visually displaying that the hardware is ready for the user to add an additional breath input so that they may set themselves up to perform the action.
Related epic: #34
Task description:
Once the hardware is done measuring, a display will be shown on the screen before being prompted back to the home page.
Related epic: #34
Task description:
Create the initial page wherein the user can either register if they don't have an account, or log in if they already have an account. Once logged in, this page no longer appears.
Related epic: #35
Task description:
Obtain available Bluetooth connections through the android app by creating the necessary Bluetooth services. The android app needs to read available Bluetooth devices to be able to connect to the breathalyzer.
Related epic: #1
Task description:
Once the button is pressed and the data is acquired, a message displaying the result in a user friendly way will indicate the user's current alcohol consumption level.
Related epic: #5
Epic:
As a user, I want the drinking buddy to connect to my phone via Bluetooth while using the app so I may always have my phone ready for a new breathalyzer input.
Task description:
Create the home page of the android application with a button to intake the sensor data obtained. On click of the button, the data from the sensor should be retrieved from the database.
Related epic: #5
Task description:
Using the obtained hardware, connect the ESP32 with the sensor, switch and battery (although the battery will be omitted in the development process to save time and complexity). A breadboard can be used for making the relevant connections.
Related epic: #1
Task description:
Create a new database to handle all needed variables. Store the data obtained from the sensor data into an SQL database.
Related epic: #4
Task description:
Configure GPIO port on the ESP32 to connect with the sensor, and read sensor inputs. The data obtained should be representative of the user's current alcohol consumption levels.
Related epic: #3
Task description:
Send data over the preestablished Bluetooth communication channel. Acquire said data from the Bluetooth channel into the android app.
Related epic: #4
Task description:
Based on the coded conditions, only the specific information read during the previous task will be sent and stored within the database to be used with other tasks.
Related epic: #34
Task description:
This input page must be created and set up to be run once the user hits the "NEW BREATH" button on the main/home page so that they can add a new input.
Related epic: #34