added docs voor expert 2

This commit is contained in:
SebasKoedam
2024-05-17 12:35:55 +02:00
parent 54cf012288
commit 031d766205
9 changed files with 425 additions and 257 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@@ -6,8 +6,8 @@ For this project we want to design an embedded system that can track a users pos
## Objectives
- Design an embedded system that can track user position.
- Develop an algorithm to process the data from the Wii Fit Board and determine the user's position.
* Design an embedded system that can track user position.
* Develop an algorithm to process the data from the Wii Fit Board and determine the user's position.
## Research and Analysis
@@ -80,10 +80,8 @@ To be added
## References
[Wiiboard lib](https://code.google.com/archive/p/wiiboard-simple/wikis/Documentation.wiki)
https://advanti-lab.sb.dfki.de/?page_id=64
https://github.com/paulburton/fitscales
https://github.com/micromu/WiiRemoteJ
## Appendices
To be added
[BlueSoil](https://advanti-lab.sb.dfki.de/?page_id=64)
[FitScales](https://github.com/paulburton/fitscales)
[WiiRemoteJ](https://github.com/micromu/WiiRemoteJ)
[Wiibrew Wiimote](https://wiibrew.org/wiki/Wiimote)
[Wiibrew Balance Board](https://wiibrew.org/wiki/Wii_Balance_Board)

View File

@@ -214,17 +214,18 @@ Done
To do
-
- Wii balance board research
- Wii balance board relasation
Done
-
- Wii balance board research
**16 May**
To do
-
- Wii balance board relasation
Done
@@ -234,7 +235,13 @@ Done
To do
-
- Expert review
- Update from the last review
- Add database
- Add new OOP
- Add new infrastructure apllication acrhitecture diagram
- Add k4 and k5
- Wii balance board relasation
Done

View File

@@ -1,165 +1,228 @@
# Expert 2 Sprint 2
# User Testing
## Table of Contents
## Introduction
This is a user test document for the occupation page. The occupation page allows users to view the occupation of the silent booth.
# Expert 1 Sprint 1
---
## ISO
## K1: Je hebt object georiënteerde software gemaakt die samenwerkt met een database.
For testing user experience, the ISO (International Standard Organization) definition of quality in use is used.
Voor het maken van object georiënteerde software die samenwerkt met een database maak ik gebruik van Java, NodeJs, phpMyAdmin en MariaDB.
“Quality in use is the degree to which a product or system can be used by specific users to meet their needs to achieve specific goals with effectiveness, efficiency, freedom from risk and satisfaction in specific contexts of use.”
### Database
De database voor FitBot (ons project) zal dienen als opslag van de oefeningen die wij willen gebruiken. De database zelf zal niet uitgebreid zijn sinds wij inprincipe geen data op te hoefen slaan. De uitdaging van de database zal liggen bij het verbinden van de app en de database.
#### Apache en phpMyAdmin
Apache is een webserver die wordt gebruikt om websites te hosten. phpMyAdmin is een webapplicatie die wordt gebruikt om databases te beheren. Wij maken gebruik van Apache en phpMyAdmin om de database visueel te kunnen beheren. Apache dient als de server waar phpMyAdmin op draait, deze configuratie dient alleen voor het gemak van ons team.
##### MariaDB
MariaDB is een open-source database die vrij gemakelijk is om op te zetten. MariaDB dient als onze database om de oefeningen in op te slaan.
##### NodeJs
NodeJs wordt gebruikt om server-side scripting te doen. Wij maken gebruik van NodeJs om de app te verbinden met de database en om de oefeningen op te halen.
NodeJs is geinstalleerd op de Pi maar moet nog wel verder worden opgezet.
#### ERD
Een ERD (Entity Relationship Diagram) is een diagram dat de relaties tussen de entiteiten in een database weergeeft.
Meer informatie over de ERD is te vinden in de [ERD](../../../documentation/database/ERD.md) documentatie.
#### EERD
Een EERD (Entity Enhanced Relationship Diagram) is een diagram dat de relaties tussen de entiteiten in een database weergeeft. Het verschil tussen een ERD en een EERD is dat een EERD meer informatie bevat over de entiteiten en de relaties tussen de entiteiten zoals primary keys, foreign keys, enz.
Meer informatie over de ERD is te vinden in de [EERD](../../../documentation/database/EERD.md) documentatie.
### OOP
Object Oriented Programming is een programmeermethode dat gebruik maakt van objecten en classes. Het doel van OOP is om de code beter te structureren en te hergebruiken. Omdat wij gebruik maken van java voor het maken van de software, is het makkelijk om gebruik te maken van OOP. Java is een object georiënteerde programmeertaal en maakt het makkelijk om gebruik te maken van OOP sinds het een van de belangrijkste concepten is van Java.
#### Inheritance
Inheritance is een princiepe waarbij een nieuwe class wordt gemaakt met behulp van eigenschappen van een bestaande class. De nieuwe class wordt afgeleid van de bestaande class.
Voorbeeld: Een olifant is een dier. Een olifant heeft alle eigenschappen van een dier, zoals ademhalen, eten, slapen, enz. Een olifant heeft ook enkele specifieke eigenschappen, zoals grootte, gewicht, slurf, enz.
Use case:
```java
public class MainActivity extends RobotActivity implements RobotLifecycleCallbacks {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Register the RobotLifecycleCallbacks to this Activity.
QiSDK.register(this, this);
}
@Override
protected void onDestroy() {
// Unregister the RobotLifecycleCallbacks for this Activity.
QiSDK.unregister(this, this);
super.onDestroy();
}
@Override
public void onRobotFocusGained(QiContext qiContext) {
// The robot focus is gained.
}
@Override
public void onRobotFocusLost() {
// The robot focus is lost.
}
@Override
public void onRobotFocusRefused(String reason) {
// The robot focus is refused.
}
}
```
De MainActivity class erft van RobotActivity, dit zorgt ervoor dat MainActivity properties en methods kan gebruiken van RobotActivity.
#### Abstraction
Abstraction is een princiepe om de complexiteit van een object te verbergen en alleen de nodige kenmerken weer te geven.
Voorbeeld: Een auto bestaat uit verschillende onderdelen, zoals motor, versnellingsbak, wielen, enz. Maar we hoeven niet te weten hoe deze onderdelen werken om een auto te besturen. We moeten alleen weten hoe we de auto moeten besturen, zoals hoe we gas moeten geven, remmen, sturen, enz.
Use case:
```java
@Override
protected void onCreate (Bundle savedInstanceState) {
setUpUi();
}
private void setUpUi() {
/*---Hooks---*/
drawerLayout = findViewById(R.id.drawer_layout);
navigationView = findViewById(R.id.nav_view);
/*---Navigation Drawer Menu---*/
navigationView.bringToFront();
ActionBarDrawerToggle toggle=new
ActionBarDrawerToggle(this,drawerLayout,toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawerLayout.addDrawerListener(toggle);
toggle.syncState();
}
```
In de method `onCreate` wordt de method `setUpUi` aangeroepen. De gebruiker hoeft niet te weten hoe de method `setUpUi` werkt, maar kan deze gewoon gebruiken.
#### Encapsulation
Encapsulation is een princiepe om de interne gegevens van een object te verbergen en alleen toegang te geven via methods.
Voorbeeld: Een bank heeft verschillende methods om geld te storten, geld op te nemen, saldo te controleren, enz. We kunnen niet rechtstreeks toegang krijgen tot de interne gegevens van de bank, zoals de balans, de rekeningnummers, enz. We moeten de methods van de bank gebruiken om deze gegevens te krijgen.
Use case:
```java
To be added
```
Op dit moment is er nog geen gebruik gemaakt van encapsulation.
#### Polymorphism
Polymorfism is een princiepe waarmee een class verschillende vormen kan hebben. Het kan worden bereikt door methods te hebben met dezelfde naam, maar met verschillende parameters.
Voorbeeld: Een dier kan verschillende geluiden maken, zoals een hond kan blaffen, een kat kan miauwen, enz. Maar we kunnen een algemene method maken die `makeSound` heet en deze method in de dierclass implementeren. De hondclass kan deze method overschrijven en blaffen implementeren, en de katclass kan deze method overschrijven en miauwen implementeren.
Use case:
```java
To be added
```
Op dit moment is er nog geen gebruik gemaakt van polymorphism.
---
### Effectiveness
## K2: Je hebt de wensen en behoeften van gebruikers verwerkt in een goed doordacht prototype.
#### Test Card
De wensen en behoeften van de gebruikers zijn op dit moment nog niet verwerkt in een prototype. Dit is omdat er nog niet genoeg informatie hebben over de wensen en behoeften van de gebruikers. In sprint 2 zal er een prototype worden gemaakt waarin de wensen en behoeften van de gebruikers zijn verwerkt.
Hypothesis: I think the page is very effective because it is easy to use and the user can easily find the information they are looking for.
Test: Ask the user to find the last use of the a silent booth.
Metrics: How long does it take for the user to find the information?
Criteria: The user should be able to find the information within 10 seconds.
#### Results
Harrald: The user was able to find the information within 10 seconds.
Olivier: The user was able to find the information within 10 seconds.
Sietse: The user was able to find the information within 10 seconds.
Dano: The user was able to find the information within 10 seconds.
Bram: The user was able to find the information within 10 seconds.
#### Learning Card
Hypothesis: I think the page is very effective because it is easy to use and the user can easily find the information they are looking for.
Observation: The user was able to find the information within 10 seconds.
Learning point & insight: The page is effective.
Advice: None
De manier waarop ik de wensen en behoeften van de gebruikers wil gaan verwerken in het prototype is door middel van Test/Learning cards. Dit is een manier om de gebruikerservaring te testen en te verbeteren.
---
### Efficiency
### ISO
#### Test Card
Voor het testen van de gebruikerservaring wordt de ISO (International Standard Organization) definitie van kwaliteit in gebruik gebruikt.
Hypothesis: I think the efficiency of the page can be improved beacuse there is a lot of text on the page.
Test: Ask the user to find a cretain time and day on the heatmap of the silent booth.
Metrics: How long does it take for the user to understand the heatmap? How many clicks does the user need to understand the heatmap?
Criteria: The user should be able to understand the heatmap within 30 seconds and with a maximum of 3 clicks.
“Qualiteit in gebruik is de mate waarin een product of systeem door specifieke gebruikers kan worden gebruikt om aan hun behoeften te voldoen om specifieke doelen te bereiken met effectiviteit, efficiëntie, vrijheid van risico en tevredenheid in specifieke gebruiksomstandigheden.”
#### Results
#### Effectiviteit
Harrald: The user was able to understand the heatmap within 30 seconds and 3 clicks.
Olivier: The user was able to understand the heatmap within 30 seconds and 3 clicks.
Sietse: The user was not able to understand the heatmap within 30 seconds and 3 clicks.
Dano: The user was able to understand the heatmap within 30 seconds and 3 clicks.
Bram: The user was not able to understand the heatmap within 30 seconds and 3 clicks.
Effectiviteit is de mate waarin gebruikers specifieke doelen kunnen bereiken met nauwkeurigheid en volledigheid.
#### Learning Card
##### Test Card
Hypothesis: I think the efficiency of the page can be improved beacuse there is a lot of text on the page.
Observation: Some users could not find the history. Most user found the legenda confusing.
Learning point & insight: Imrpove the legenda and make the history more visible.
Advice: Make the history a button and make the legenda more clear. Less text should be needed to understand the heatmap.
In de test card wordt de test beschreven die wordt uitgevoerd. De test card bestaat uit de volgende onderdelen:
Hypothese:
Test:
Meetmethode:
Criteria:
##### Resulaat
In `Resultaat` worden de resultaten van de test beschreven. De resultaten worden beschreven aan de hand van de hypothese, test, meetmethode en criteria.
##### Learning Card
In de learning card wordt beschreven wat er is geleerd van de test. De learning card bestaat uit de volgende onderdelen:
Hypothese:
Observatie:
Leerpunt en inzicht:
Advies:
---
### Satisfaction
#### Test Card
Hypothesis: I think the satisfaction of the page can be improved because the page is not very attractive.
Test: Ask the user to give their opinion on the page (this will be done in a form).
Metrics: What is the user's opinion on the page?
Criteria: The user should give a opinion on the page.
#### Participants
- Harrald
- Olivier
- Sietse
- Dano
- Bram
#### Questions and Results
1. **What is your first impression of the page?**
Harrald: Duidelijk en overzichtelijk.
Olivier: Simpel.
Sietse: Ziet er prima uit, goed overzichtelijk.
Dano: Ziet er strak uit, minimalisties design en duidelijk waar het over ging.
Bram: Eerste pagina was relatief duidelijk, alleen de history pagina was ietwat lastig te overzien en te veel gevuld met tekst met uitleg in plaats van voorbeelden, verder goed uitgewerkt.
2. **Is the information on the page clear?**
Harrald: Prima.
Olivier: Ja, last update zou last use moeten zijn.
Sietse: Ja.
Dano: Ja, er staat kort en bondig waar het over gaat.
Bram: Na wat moeite met het overzicht was het goed beschikbaar.
3. **Is the history easy to find?**
Harrald: Ja.
Olivier: Ja heel duidelijk.
Sietse: Ja behalve dat je niet super snel ziet dat het een knop is.
Dano: Ja, fijn dat er een feedback kwam toen de muis er overheen ging
Bram: Jazeker, alleen inplaats van een knop er voor zou ik op het vakje zelf klikken in plaats van het tekstje.
4. **Is the history easy to understand?**
Harrald: Even wennen, uitlijning kan duidelijker en tijden niet schuin.
Olivier: Ja alleen wel veel kleur door elkaar.
Sietse: Na een uitleg wel, maar wat de waardes zelf betekenen is een beetje onduidelijk.
Dano: Het kan beter, beetje onduidelijk waar de tijd bij hoordt.
Bram: Net iets te lastig, persoonlijk.
5. **Do you miss any features on the page?**
Harrald: Nee.
Olivier: Nee.
Sietse: Het is moeilijk te zien wat booth 1 of 2 is.
Dano: Nee.
Bram: Niet dat ik zou weten.
#### Learning Card
Hypothesis: I think the satisfaction of the page can be improved because the page is not very attractive.
Observation: All users gave a positive opinion on the page.
Learning point & insight: The page is attractive because it is clear and easy to use. The heatmap can be improved.
Advice: Improve the heatmap and make the history a button.
De effectiviteit en tevredenheid worden op gelijke manieren getest. Zodra de test is uitgevoerd en de resultaten zijn geanalyseerd, wordt er een learning card gemaakt. In de learning card wordt beschreven wat er is geleerd van de test en wat er kan worden verbeterd. Na alle resultaten te hebben geanalyseerd, wordt er een prototype gemaakt waarin de wensen en behoeften van de gebruikers zijn verwerkt.
---
## Conclusion
## K3: Je hebt een infrastructuur ontworpen en gebouwd volgens zelf-gedefinieerde vereisten.
The occupation page is effective, efficient and satisfying. The page is easy to use and the user can easily find the information they are looking for. The efficiency of the page can be improved by making the legenda more clear and the history more visible. The satisfaction of the page can be improved by improving the heatmap and making the history a button.
De infrastructuur voor FitBot (ons project) bestaat uit een database, een server en een app. De database wordt gebruikt om de oefeningen in op te slaan, de server wordt gebruikt om de app te verbinden met de database en de app wordt gebruikt om de oefeningen op te halen.
### Diagrams
De infrastructuur van FitBot is weergegeven in de volgende diagrammen:
![Architecture diagram](../../../documentation/diagrams/assets/appDiagram.png)
![Architecture diagram](../../../documentation/diagrams/assets/appDiagramV2.png)
![Deployment diagram](../../../documentation/diagrams/assets/appDiagramV3.png)
## K4: Je ontwerpt een embedded systeem op basis van gegeven hardware.
Voor het embed systeem van FibBot is de volgende research gedaan om de positie van een gebruiker te kunnen tracken:
[Wii Board](../../../documentation/research-questions/position-tracking-research.md)
---
## K5: Je kan software schrijven voor een intelligente controller voorzien van actuatoren en sensoren.
Voor het schrijven van software voor een intelligente controller voorzien van actuatoren en sensoren ben ik begonnen met het schrijven van software voor het Wii Balance Board. Het Wii Balance Board is een controller die wordt gebruikt om de positie van een gebruiker te tracken. De software die ik aan het schrijven ben verbind de android app met een Wii Balance Board en trackt de positie van de gebruiker.
Op dit moment kan het device nog niet worden verbonden met de app. Het is mogelijk om het board te discoveren maar de verbinding kan nog niet gemaakt worden.