---
# System prepended metadata

title: Notebook REST API v1 (Eli Duval en Alexander Mikhaylov)

---

# Notebook REST API v1 (Eli Duval en Alexander Mikhaylov)
## eerste twee weken
### LOGBOEK:

11/10: praktische bespreking (elke woensdagvoormiddag vrijhouden + eventueel ergens in het weekend)
16/10: 11-13u featurw geprobeerd te doorgronden + veel tutorials bekeken om eraan te kunnen starten
17/10: 11-13u en 14-18u: server kunnen laten runnen + ruwe datastructure gemaakt met bijhorende backend              methodes +probeersel testen
18/10 vragen: wat zijn de attributen van de notes (key=user?, pw), is DBrowser toegestaan als                     datastructure?, Array<Note> notes hoe opslaan?,  de syntax van de testen correct? wat is require en         supertest?, hoe bestanden importeren uit naar bestand uit andere folder, 
    14-19:30u voorstelling datastructure aangepast dmv 2 simpele classes + testen voor geschreven maar             werken niet...
20/10: 10-13:30 en 14:30-16:30 fouten uit note(s) gehaald + testen proberen laten werken (niet gelukt maar         ligt wss niet aan implementatie maar aan de testfile zelf) + de routes begonnen met uitwerken maar         erg verwarrend...
23/10:11-15u + 16-17u30 gebeld
    GET, POST, PUT, DELETE volledig geimplementeerd: heel lang gesukkeld met input van user krijgen -> via     postman lukt het nu wel (via request.body)
24/10: 11-13u +14-16u gebeld
    timer geimplementeerd + test voor note + test voor API te testen (deze werkt wel niet, maar manueel via     postman klopt het wel) + heel simpele documentatie geschreven 

24/10:

### TO DO: 
    M3 en M4 volledig + vragen oplossen waardoor reeds geimplementeerde delen volledig werken

### VRAGEN:
-hoe put,post, delete toevoegen aan allowedMethods zodat deze ook op browser toegestaa  zijn?
        -hoe op site zelf input kunnen vragen (niet enkel via postman)?
        -> hoe Document laten werken?



### DONE:
ruwe lijnen van grootste deel van M1 (http(s) server runt, database werkt, interface werkt, werkt,         data structure voor notes (backend))
     M1: =  data structure (note en notes), unit test voor datastructure
    M2: interactie user-database via postman niet via browser zelf, implementatie get,put,post,delete,          na bepaalde tijd verdwijnt note,  tests


### DEADLINES:

volgens 11/10 
    18/10: M1 af + M2? ->niet gelukt
    20/10: M2 af ook M3?-> niet gelukt


25/10: volledige feature af -> niet gelukt
        WEL GELUKT: M1 en M2 (behalve vragen) af
        
        
### TUTORIALS: https://www.tutorialspoint.com/koajs/koajs_restful_apis.htm
        https://codeburst.io/lets-build-a-rest-api-with-koa-js-and-test-with-jest-2634c14394d3
        https://inviqa.com/blog/how-build-basic-api-typescript-koa-and-typeorm
        https://medium.com/nerd-for-tech/koajs-brief-introduction-build-a-simple-api-post-get-8365737e2c32
        https://dev.to/ekafyi/tribute-to-swissted-part-i-setting-up-a-node-js-web-app-with-koa-and-nunjucks-ph4
        https://www.freecodecamp.org/news/rest-api-tutorial-rest-client-rest-service-and-api-calls-explained-with-code-examples/
        https://medium.com/@9cv9official/what-are-get-post-put-patch-delete-a-walkthrough-with-javascripts-fetch-api-17be31755d28
        https://colinhacks.com/essays/zod
        https://mherman.org/blog/building-a-restful-api-with-koa-and-postgres/

    
## verder werken: 8/11 tot 22/11

### logboek:
    
- donderdag 11/11 12-17u: client/web-side gemaakt: html, functies voor get/post/put/delete via addEventListner 
- zaterdag 13/11 11-17u30: via fetch post/put/delete/get langs web en server side geimplementeerd (kan nog steeds niet gerund worden),notes test verbeterd, key suggestions geimplementeerd
- zondag 14/11 14u-: bug bij routes gevonden, https gelukt, HTML, web en server te verbinden, supertest en testNote af, user levensduur van note kiezen, start public notes (enkel HTML-elementen aangemaakt)
- maandag 15/11 14-19u
- maandag 15/11 20-23u verslag review deel (eli)
- dinsdag 16/11 14u-17u en 20u-00u: afmaken/voll juist GET/POST/PUT/DELETElangs beide zijden (server en web) (eli)
- woensdag 17/11 9u-13u en 14u-18u en 23-00u: verslag (eli) 
    
    
    
### vragen:
- in package.json wat moet main zijn?
        -hoe html-web-server verbinden?
        -hoe werken public notes nu precies? klopt het dat de verzameling public is maar elke note nog steeds eigen key en password?

TIP: Je kan ook checkboxes toevoegen! 
- [ ] test
    

### doelen: 
- [x] code verbeteren adhv code-review->check
- [x] HTTPS laten werken: A                     ->check
- [x] HTML-file + input elements: E             ->check
- [x] browser en server side (met html) laten werken->check
- [x] put/post/delete mogelijk maken            ->check
- [x] user tijd laten kiezen                    ->check
- [x] testen volledig maken: note (E)           ->check
- [x] notes (A) 
- [x] supertest (E)      ->check
- [x] suggestions for key                 ->check
- [ ] keys with non pasword (public)
- [x] notes na tijd verwijderen                 ->check 
- [x] documentatie
- [x] max aantal notes (security)
- [ ] M3
- [ ] M4 
    
 

### deadlines:
maandag zoveel mogelijk af: m1, M2 volledig, 
    18 november: report    
    
    
### report verdeling:
A: Feature Implementation and design M1, M3 M4
       Code review: part 4 and 5 
    E: Feature Implementation and design M2
       Code review: part 1-3
    
    