---
# System prepended metadata

title: '**App 1 (Sterre De Grefte, Valentine Vanckeerbergen, Maarten Vanmarcke en Rob Van Den Noortgate)**'

---

# **App 1 (Sterre De Grefte, Valentine Vanckeerbergen, Maarten Vanmarcke en Rob Van Den Noortgate)**

# Logboek
**Week 22.11.21**
* Maandag (PO sessie)
Demo gegeven.
Toevoegen en initialiseren van de app/App1 branch.
Verdelen taken en afspraken deadlines.
Opzetten basis structuur.

* Woensdag
Resources lezen over WebSockets. Demo bekeken over het opzetten van een signaling server.
* Donderdag
Eerste globale structuur van WebSockets is geïmplementeerd. De client en de server kunnen beide data verzenden. Beide kunnen de ontvangen data verwerken. 

**Week 29.11.21**
* Maandag (PO sessie)
App verder uitgewerkt en uitgelegd aan assistenten.
Data-encryptie geïmplementeerd, maar is overbodig gebleken.
WebRTC over twee verschillende netwerken lukt.
Tunnelling geprobeerd, maar is nog niet geslaagd. Dit wordt volgende P&O-sessie verder bekeken.

* Dinsdag 
Een bug bij de eigen implementatie van WebSocket gezocht en opgelost.

* Woensdag
De datastructuur achter de web socket server (wss) is geïmplementeerd met bijhorende testen.
De wss zelf is ook geïmplementeerd met bijhorende testen. De message handling hiervan moet nog afgestemd worden op de mogelijke messages vanuit de webrtc functionaliteiten.

* Donderdag
Eerste implementatie van de client side voor de Web Socket signaling server. Deze moet nog verder uitgewerkt worden met documentatie en testen.

* Vrijdag 
Verder implementatie afwerken van de client side voor de Web Socket signaling server.

* Zaterdag
Skype 17u00-18u30: Uitleg WebSocket en message handling. Verder afgesproken over de samenwerking tussen WebSocket en WebRTC.

* Zondag
Implementatie van de app server over https en bijhorende tests.

**Week 6.12.21**
* Maandag
P&O-sessie: Bespreken verslag in team. Bekijken van de problemen bij de verschillende onderdelen van de app. Verder implementeren. Starten met verslag schrijven.

* Dinsdag
Message handling afgewerkt bij WebSocket.

* Woensdag
Skype 18u00 - 19u20: problemen bespreken i.v.m. code. Verslag bespreken.

* Donderdag
Password checking hergeïmplementeerd naar aanleiding van Skype-gesprek.
Verder schrijven aan verslag.

* Vrijdag
Verslag volledig schrijven.
* Zaterdag
Verslag nalezen.

* Zondag
Skype 15u00-16u10: Verslag nabespreken.
Verslag commentaar aanpassen.

**13.12.2021**
* Maandag
P&O-sessie: bespreken verslag. Bugs app fixen.
Bugfix afwerken

* Dinsdag
App verder afwerken.

* Woensdag 
Afspraak 16u00-18u00: App testen in P&O-lokaal en bespreken demonstratie.

* Vrijdag
Import problemen van module qrcode-generator opgelost.

# DEMO VRAGEN
**Waarom gebruik je een externe server (WebSocket)?**
* ICE candidates wijzigen soms -> app beter niet meerdere QR codes.

**Waarom password?**
Zodat url  naar server niet wordt onderschept

## Takenverdeling
- QR:
    - [X ] QR generation:generate a QR code of some data element in JSON format.
    -> Valentine & Sterre
    - [X ]   QR encryption: encrypt information and generate this  into a QR code with regard to some    password.
    -> Valentine & Sterre
    We've worked on this task, but we changed our security mechanism, so this code will not be used in our final solution.
    - [X ]   QR decryption: decrypt the QR code with regard to some password.
    -> Valentine & Sterre
    We've worked on this task, but we changed our security mechanism, so this code will not be used in our final solution.
    - [X ]   QR detection: detect a QR code of a camera picture.
    -> Valentine & Sterre
    - [ ]   Image Processing: process the taken picture of the QR code so the QR code can be easilydetected,         e.g. adjusting the brightness and color values for easier detection of black/white tints.
    -> Valentine & Sterre
    - [X ]   QR decoding: decode a QR code to a JSON formatted data element.
    -> Valentine & Sterre
    
- Camera: 
    - [ ]  Opening the camera: open the camera of a mobile phone from within the app.  This could also be done by just loading a picture of the QR code from within the app.  The possibilitiesneed to be further examined.
    -> Degenen die klaar zijn
    - [ ]  Using the camera: make a picture using the camera.
    -> Rob
    - [x]  Closing  the  camera: close  the  camera  if  the  user  just  wants  to  send  audio  (TODO or  text-drivendata), to gain the trust of the users.
    -> Rob
    
- App page:
    - [x]  Koa: setup https-server
    -> Maarten
    - [ ]  Displaying the buttons: show the correct buttons at the correct times in the process.
    -> Rob
    - [ ]  Processing the buttons: assign the correct handlers to the buttons when a user clicks on one.
    -> Rob
    
- WebSocket:
    - [x]  WebSocket data generation: generate the data in JSON format needed to set up the Web-Socket connection, that will be converted to a QR code.
    -> Maarten
    - [x]  WebSocket set-up: set up the WebSocket connection when the necessary data for the set-upis received.
    -> Maarten 
    - [x]  WebSocket data format preprocessing: convert the SDP and ICE candidates into a valid JSONformat.
    -> Maarten 
    - [x]  WebSocket transfer:transfer the SDP and the ICE candidates (in JSON format) over theWebSocket data channel.
    -> Maarten

- WebRTC:
    - [x]  WebRTC  stream  acquiring: acquire  the  data  streams  (audio,  video  and/or  text-drivendata).
    -> Rob
    - [x]  WebRTC offer creating: create the offer on the peer-side that showed the QR code.
    -> Rob
    - [x]  WebRTC offer receiving: set the received offer on the peer-side that scanned the QR code.
    -> Rob
    - [x]  WebRTC answer creating: create the answer on the peer-side that scanned the QR code.
    -> Rob
    - [x]  WebRTC answer receiving: set the received offer on the peer-side that showed the QR code.
    -> Rob
    - [x]  WebRTC ICE candidates: process the ICE candidates correctly.
    -> Rob
    - [X]  WebRTC display: display the received media streams (audio, video and/or text)
    -> Rob