# 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