# Expert review sprint 2

# Expert review sprint 2

### K1
Voor het maken van object georiënteerde software die samenwerkt met een database maak ik gebruik van Java, NodeJs, phpMyAdmin en MariaDB.

### Java

Java gebruiken wij als taal van de app. Deze taal zorgt ervoor dat onze app functioneert.


### Database

De database voor FitBot zal worden gebruikt als opslag van de oefeningen die wij willen gebruiken. Wij moeten deze nog verbinden met de app
#### Apache en phpMyAdmin

Om de database te managen gebruiken wij PHPmyadmin deze meot worden gedraaid op een webserver en voor de webserver hebben wij apache2 gebruikt

##### MariaDB

MariaDB dient als onze database om de oefeningen in op te slaan.

##### NodeJs

NodeJS is geinstaleerd op de Pi maar deze moeten wij nog verder instellen

Ik heb in java ook OOP gewerkt, niet in hele grote maten, omdat wij gaan voor een minimalistische app, maar ik heb de app ontworpen daar heb ik gebruik gemaakt van styles. Hier vindt u mijn documentatie over android styles. [Documentatie styles](docs\documentation\android\code_documentation\AndroidStyles.md) 

Ik heb ook een class gemaakt om eenvoudig code te schrijven om via buttons te navigeren. Ik heb hier nog geen documentatie over geschreven, maar ik heb wel de code al af en functionerend. Hier vindt u de class [buttonClass](code\src\Fitbot\app\src\main\java\com\example\fitbot\util\ButtonNavigation.java)

```java
com.example.fitbot.util.ButtonNavigation.setupButtonNavigation(this, R.id.homeButton, MainActivity.class);
```
Dit hoe je de class implementeerd in de activities.

### K2

De wensen en Behoeftes van de gebruikers hebben wij nog niet kunnen meten. Ik ga wel binnenkort (28 mei) een wandeling maken met de gebruikers. Deze wandeling doe ik via buurtcampus oost. Om deze test zo goed mogelijk uitvoeren heb ik een test card gemaakt. Met deze testcard wil ik aan de gang gaan tijdens de wandeling
![TESTCARD](TESTCARD28.png)

Na het uitvoeren van de test ga ik de resultaten bespreken in een apart markdown folder. Na het bespreken van de resultaten ga ik een learningcard maken, zodat ik kan zien wat ik geleerd heb.
![empty learning card](Learningcardempty.png)

Daarnaast heb ik meerdere onderzoeken naar hoe je een app voor ouderen moet maken. Dit onderzoek kan je hier vinden [colorsforlayout](docs\documentation\brainstorm\colorsforlayout.md)

Ik zou ook nog graag onze app willen voorleggen aan ouderen om te kijken of onze app wel goed gebouwd is, dit komt als wij ons prototype afhebben dan kunnen we beginnen met testen en aan de hand van die feedback gaan wij extra user stories aanmaken.
### K3

De infrastructuur voor FitBot 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. 

Voor de server gebruiken Wij Apache2.

Voor de database gebruiken wij MariaDB.

Voor management van de database gebruiken wij phpMyAdmin.

**Infrastructuur diagram**
```mermaid
graph TD
    subgraph Raspberry Pi
        A[MariaDB]
    end

    subgraph Pepper Bot
        C[Android Tablet]
   
    end
    subgraph WiFi Fit Board
     B[WiFi Fit Board]
    end
    B --> |Bluetooth| C
    C --> |Receive/Send Data| A
    A --> |Communicate Workouts| C
    
```
Om nog extra voor K3 te doen ga ik een onderzoek schrijven over de datatransfer protocollen en welke het beste werkt voor ons project. Dan aan de hand van dat onderzoek moeten wij een keuze gaan maken in welke protocollen we willen gebruiken.

### K4

Ik heb de verschillen tussen de NAO en pepper onderzocht, dit heb ik gedaan om te kijken welke het beste bij ons project past. Dit is belangrijk om te weten voor als we moeten switchen/het project opnieuw moeten doen.
[pepperNAOcompare](Docs\documentation\robots\Comparisons.md)

Daarnaast waren er wat mankementen met de Wiifit bord. ik wil graag onderzoeken hoe het fout kan gaan en wat de alternatieven zijn. 

### K5

Voor K5 hebben wij motion trackers ontworpen die wij willen gebruiken voor onze oefeningen. Deze werken met een accelerometeren een gyro sensor. Deze gebruiken wij om te meten of een persoon de oefening goed. De gebruiker krijgt zijn bewegeingen live terug te zien in de app en zo kan je je eigen bewegingen zien en het vergelijken met het voorbeeld. Ook hebben wij een wii fit bord om te kijken of een persoon er op staat dit kan gebruikt worden voor oefeningen op 1 been bijvoorbeeld. Deze moeten wij nog verbinden met de app alleen hebben wij een probleem dat het wiifit bord niet wil werken als alternatief gaan wij aan de slag met een ESP en LDRs. Wij willen meten of iemand op een bord staat doormideel wan licht en wij willen die dat versturen met de Bluetooth van de EPS door daar een bleutooth server op te hosten die comminuceert met de app.