---
# System prepended metadata

title: 'App 1: WebRTC en Rest (Charles, Marie, Tim, Karam)'
tags: [Semester1]

---

# App 1: WebRTC en Rest (Charles, Marie, Tim, Karam)

###### tags: `Semester1`

## Beschrijving van de app

### 1st idea
Privacy-minded, webbased communication app
Soort discord (web-based).
See use cases on github or https://hackmd.io/zF1o4_TuT46DcathwDFwCA.

* M0:
    - hoe testen schrijven? (leren werken met wdio)
      NOOPE! niet wdio gebruiken, een e2e testing, alleen kleine units tests using supertest (?)
    - taken precies bepalen
    - minimale testen schrijven voor elke taak... 
* M1: REST gebruiken om SDP's en candidates te sturen
    - koa & webRTC: script laden
    - reload om de 10 sec
    - audio tegelijk aanzetten , beide richtingen --> OK! polite zet zijn stream in zijn answer SDP (dus impolite moet de SDP offer sturen)
    - REST datasctructure aanpassen om SDP kunnen opslaan + routes
    - REST incorporeren in webRTC
* M2: fancy webpage
* M3: message-board toe voegen
* M4: permanent data-base toevoegen
* M5: usernames bewaren (+ polite/impolite bepalen ifv username/address/...) ? calls kunnen plannen (rdv zetten in kalender, andere user can confirm of niet) ? call kunnen doen met of zonder account (evt privacy probleem)

### 2nd idea
Netflix 2.0

* database met films die je kan bekijken

### 3rd idea


* Virtuele bioscoop


### Ander voorbeeld
All kinds of files sharen: http://cend.me/

### Keuze
Eerste idee lijkt best, we gaan voor de naam **postduif**:
- goede mascotte
- historisch belangrijk communicatiemiddel

Bekijk dit voorbeeld: https://appr.tc/ (Dit lijkt heel erg op een implementatie van M1...)


<!--
## Implementatie
* Sequence diagram

 https://mermaid-js.github.io/mermaid/#/sequenceDiagram
 voor documentatie 


```mermaid
sequenceDiagram
    actor A as Bob
    actor B as REST API
    actor C as Marie
    A->>B: GET index.html (statisch)
    B->>A: index.html (laadt ook scripts)
    A->>B: POST room/{roomID}
    A->>B: GET room/{roomID}
    B->>A: room.html (gegenereerd met roomID)
    Note over A,B: room.html laadt nu ook room.js, dat automatisch pollt:
    loop poll every 10s
    A->>B: GET data/{roomID}&username(?)...
    B->>A: data.json
    end
    C->>B: GET index.html
    B->>C: index.html
    C->>B: PUT room/{roomID} 
    
```
-->

## Log file
- Labozitting 22-11-2021: 
    - Vastleggen doelen van de app
    - Initialiseren project structure

- Rest van de week: 
    - wdio aan de praat krijgen + testen proberen runnen (veel opzoekwerk vooral) (Marie en Charles)
    - nadenken over data structuur en routes (Tim)
    - logo maken (Karam)

- Labozitting 29-11-2021: 
    - wdio verder
        -  Openen van een webpage controleren is OK
    -  use cases verder bepalen
    - toevoegen logo postduif (Karam)

- Rest van de week:
    - start implementing server (Tim)
    - start implementing clientside functionality (Charles)
    - introduce bootstrap to make better html (Karam)

- Labozitting 06-12-2021: 
    -  E2E proberen tot de prof zegt dat het te moeilijk is (Charles / Marie)
    - structuur van routes en sequence diagrams vastleggen adh van whiteboard (Charles, Karam, Tim)
    - set up van basis structuur branch app/webRTC (Marie / Charles)
    - use cases (Marie)


- Rest van de week:
    - implementeer rooms (Tim)
        - REST routes
        - form om room te maken/joinen + functionaliteit
    - app/webRTC branch verder (Marie & Charles)
        - nieuwe REST routes aanmaken
        - data structuur sterk updaten
        - verander the basis structuur om met de 'externe' data structuur te werken
    -  beginnen report (Marie & Charles)
    -  branch app/reloadProblem (Marie)
    -  chat 
        -  implementatie functionalities (Charles & Karam)
        -  tests (Charles)
        -  data structuur terug wijzigen (Charles)
        -  HTML design (Karam)
    -  sort alghorithm (quicksort for alphabetically sorting) + schrijven van tests ervoor (Charles)
    -  fancy webPage (Karam)

- Labozitting 13-12-2021: 
    - report (allemaal)
    - laatste aanpassingen code (zie branch bugfixes) (Tim & Karam)
    - werk use cases af (Marie)
    - localtunneling (Charles)
    - mermaid sequence diagram for usecases (Charles)



## TO DO
Milestones 4 en 5 niet gehaald