Kurs-repo för kursen Webbserver och Databaser

Overview

Webbserver och databaser

This repository is meant for CME students to access exercises and codealongs that happen throughout the course.

I hope you will find this repository useful during this course.

Useful links

Node related

VS Code plugins

  • Bracket Pair Colorizer 2 - Makes it easier to see the bracket pairs by colorizing them
  • ES7+ React/Redux/React-Native snippets - A collection of useful code snippets, by dsznajder
  • Prettier - For better and consistent formatting of code (useful when working with others)
  • Auto Rename Tag - As the name suggests, it auto renames the paired HTML/XML/JSX tag
  • npm Intellisense (Christian Kohler)
  • Node.js Modules Intellisense (Zongmin Lei)
  • Path Intellisense (Christian Kohler)

My computer setup

Comments
  • allt slutade funka idag!

    allt slutade funka idag!

    som titeln lyder... igår kväll blev jag klar med allt och allt funkade felfritt, idag funkar inte ett skit.... varför? har inte ändrat något.... dubbelkollat allt... min backend funkar fine med insomnia, inget konstigt på front-enden.... T-T

    hjälp behövs 
    opened by Flying0101 55
  • Server kraschar vid PATCH-anrop

    Server kraschar vid PATCH-anrop

    Jag har problem med att servern kraschar när jag gör PATCH anrop. Enligt network-loggen funkar patch men när det ska göras en ny GET är det något som går fel vid parse av JSON när fs.readFile ska läsa min json-fil.

    Ibland funkar det att skriva till filen alltså ändra isDone till true men därefter skriver den inte över isDone till false. Det är i det här läget den kraschar.

    Någon som har några förslag?

    Screenshot 2022-05-26 at 10 17 32 Screenshot 2022-05-26 at 10 17 16

    Troligtvis blir det fel när json-filen ska läsas igen vid GET-anropet efter PATCH.

    hjälp behövs 
    opened by Binnaz-CME 14
  • Kan posta från Insomnia, men ej från frontend

    Kan posta från Insomnia, men ej från frontend

    Hej! Lyckas posta todos från Insomnia, men inte från Frontenden.

    Backendkod: if (req.url === "/todos") { if (req.method === "POST") { console.log("POST"); req.on("data", (chunk) => { const newTodo = JSON.parse(chunk); todos.todos.push(newTodo); const stringifiedTodos = JSON.stringify(todos, null, "\t"); res.statusCode = 200; res.end(); fs.writeFile("todos.json", stringifiedTodos, (err) => { if (err) throw err; console.log("Added todo"); }); }); } }

    Axios request (som funkar i Insomnia, men ej från frontend): const options = { method: "POST", url: "http://localhost:5000/todos", headers: { "Content-Type": "application/json" }, data: { id: "INSOMNIA", todo: "ISSUE", date: "2022-05-16", time: "14:58", prio: "high", completed: "false", }, }; axios .request(options) .then(function (response) { console.log(response.data); }) .catch(function (error) { console.error(error); });

    Pending: image Headers: image Payload: image Initiator: image Timing: image Timing "Stalled": image

    Vänliga hälsningar Kevin

    opened by kevlio 8
  • Problem med installera npm i sqlite3

    Problem med installera npm i sqlite3

    Beskriv problemet Jag skulle installera sqlite3 via npm men den ger mig bara error. Detta är första gången jag försökt installera sqlite3.

    Vad jag försöker göra Jag körde npm i sqlite3, till och med kopierade från https://www.npmjs.com/package/sqlite3 i fall jag skrivit fel men fick samma error.

    Vad du förväntar dig Installera sqlite3

    Screenshots Error koden: image Min package.json och mappstruktur: image

    Övrigt Min gissning är att jag kanske saknar något npm pack installerat globalt? Har kört node utan problem förut. Någon annan som har haft likande problem innan jag raderar alla modules och installerar om allting?

    hjälp behövs 
    opened by linda-94-andersson 7
  • Varför får jag bara uppdaterat svar på andra uppdateringen?

    Varför får jag bara uppdaterat svar på andra uppdateringen?

    Jag har skapat en databas med tillhörande tabeller och korrekt data. Jag kan hämta, lägga till, uppdatera och deleta utan problem. Det som stör är att responsen som skickas inte kommer som svar direkt, utan jag måste skicka requesten två gånger eller uppdatera servern innan JSON objekten visas med den uppdaterade listan. Bli samma i insomnia eller om jag skickar direkt från consolen. Någon som har någon idé.

    hjälp behövs 
    opened by alvablot 6
  • Nodemon ERR --> Powershell Terminalen [Windows?]

    Nodemon ERR --> Powershell Terminalen [Windows?]

    Hej! Är det någon som använder Nodemon och får fel när de kör i konsolen (terminalen) på Windows i VScode?

    Se felmeddelande nedan: image

    Läste även på länken och tänkte om någon har en lösning på problemlösningen eller stött på denna (som förmodligen använder Windows)?

    Länk till Execution_Policies: https://docs.microsoft.com/sv-se/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.2

    👍🏽 🦺 ⛑️ #nodemon

    bugg 
    opened by aleksmagnusson 6
  • Delete todos/id

    Delete todos/id

    som titeln lyder har jag problem med delete, något missar jag men vad...

    kod för delete: testDat.filter(todo => parseInt(todo.id) !== requestedId); har försökt med olika varianter men utan framgång, blir galen på skiten. några tips?

    opened by Flying0101 5
  • socket.username hjälp

    socket.username hjälp

    Jag sätter min socket.username = username (tar emot som input). När jag joinar ett rum så skriver jag ut att just denna användare har joinat. Detta fungerar.

    MEN När jag lämnar rummet får jag att "undefined har lämnat rummet". Det samma gäller när jag vill skriva ut vem som skickat meddelandet.

    Som jag förstår det räcker det med att sätta socket.username för att sedan ha tillgång till det valda användarnamnet/ kunna använda socket.username igen?

    Server: socket.on("set_username", (name) => { socket.username = name; });

    Efter detta, hur kommer jag åt socket.username?

    hjälp behövs 
    opened by M00NB3VM 4
  • Frågor om K2

    Frågor om K2

    Vad för databas ska vi använda oss av?

    För detta kommer vi att använda oss av en SQL-databas, förslagsvis SQLite. (Enklast!) Då slipper vi tänka på anslutningsdetaljer och vi kan commita vår databas-fil till Git-repot. (Det gör vi inte normalt sett, men eftersom ändamålet är att testa er inlämning så går det bra!)

    Vad för data borde boken innehålla?

    Förslag:

    id - int
    title - string
    author - string
    genre - string
    

    Vad är ett lämpligt meddelande och statuskod?

    ex. en request till GET /books/:id där id't inte finns, bör den svara med:

    // Statuskod 
    404 
    // JSON
    { status: "error", message: "The book with id {x} could not be found" } 
    

    Vad skickar jag till en PUT och PATCH? Vad är skillnaden?

    PUT ersätter resursen med det du skickar in, så skulle du vilja ändra en bok behöver du skickar med samtliga värden, även de som inte ändrats.

    PUT /books/:id 
    { id: 1, title: "En bok", author: "Ryan Dahl", genre: "Sci-fi" }
    

    PATCH uppdaterar du en del av resursen, där du bara behöver skicka med det värdet du vill ändra - men behåller övriga värden intakta.

    PATCH /books/:id 
    { title: "En bouk fast pau rejn Skaunska" }
    

    Vad ska en POST svara med när den är klar?

    Den svarar alltid med statuskod och även ibland det objektet, den resursen du skapat:

    // Statuskod
    201
    // JSON-svar
    { id: 2, title: "Hur man skapar en bok", author: "Bryan Dahl", genre: "thriller" }
    

    Får man skapa en Frontend också?

    Absolut! Jag kommer dock inte betygsätta den, men det är en bra övning!

    Hur kombinerar man SQL och JSON?

    Vi kommer titta på detta under nästa vecka, men ett exempel kan du hitta här: https://github.com/cme-osuka/webbserverdatabaser/tree/main/week5/lecture14/examples/express-sqlite-example

    Får man använda UUID?

    Absolut! Enda kravet på bibliotek/paket är att du ska använda Express, annars får du lov att använda i princip vad du vill.

    VG: Kommer vi gå igenom JWT?

    Det kommer vi göra nästa vecka!

    VG: Ska man kunna låna hur många av en bok som helst eller ska det finnas ett antal?

    Detta är frivilligt, om du vill testa på att implementera ett antal - ex. om du säger att en bok har amount och ett antal lånbara böcker, så skulle du kunna skriva logik som kollar antalet låne-transaktioner och ser hur många som finns ute på lån just nu.

    tips 
    opened by sawariz0r 4
  • front end / tips gällande ID

    front end / tips gällande ID

    Tjenis!

    jag har fastnat lite på ID delen när jag POSTar mina todos, har ni några tips eller tricks gällande IDet, jag skulle vilja att varje todos id ökar med 1 eller dylikt, men får det inte att funka.

    för tillfället kör jag på ${1 + Math.random()} vilket ger mina todos unika ID men blir problematiskt om jag sen skulle vilja köra GET på en specifik todo, för isåfall skulle jag till ex behöva skriva http://localhost:4000/todos/1.079026734055252 för att få fram en specific todo....

    hjälp behövs 
    opened by Flying0101 4
  • TIPS: Koppla backend till Frontend sökes. + Insomnia

    TIPS: Koppla backend till Frontend sökes. + Insomnia

    Jag tror jag fått min backend klar och ska koppla till min frontend. Vad är era bästa tips/tricks/lösning på att komma igång?

    #10 [TRÅD: Koppla frontend med backend URL]. I insomnia kan man få en direktlänk för frontend när man väl ska skapa för varje request [GET, POST, PUT, PATCH & DELETE].

    Bredvid "New Request" kan man skapa genererad kod för sin backend till frontend. Se fil:

    image --> image --> image

    På bild[3] kan man ändra vilket kodspråk och vilken utdata (axios, fetch, jQuery eller XLMHttpRequest) man önskar.

    PS. Bästa svar vinner ett litet pris.

    hjälp behövs 
    opened by aleksmagnusson 3
  • K3: Frågor om kunskapskontrollen

    K3: Frågor om kunskapskontrollen

    Hur ska jag tänka kring data-strukturen?

    Du skulle kunna tänka på den på detta viset, där varje tabell ansvarar för att hålla den respektive typen av data. image

    Vi har users som kanske håller information om användaren, rooms som ansvarar för att hålla reda på vilka rum som finns. Och messages innehåller information om vilket rum och vilken användare det skickades till.

    Det är fritt fram att lägga till ytterligare data om respektive data-typ, men detta är så basic det skulle kunna bli.

    opened by sawariz0r 2
  • K3: Förklaringar kring de olika kraven

    K3: Förklaringar kring de olika kraven

    Godkänt

    Backenden ska byggas med hjälp av Node och Socket.io

    Här klarar du dig gott med bara node och socket.io-paketet, så skulle du vilja använda ytterligare paket för att lösa det är det fritt fram. Men viktigt att komma ihåg: Det är genom socket.io servern och klienten ska kommunicera.

    Den ska ha en tillhörande frontend

    Du behöver alltså skapa en tillhörande frontend som ska ha stöd för dessa funktioner, den ska stödja möjligheten att skapa, skriva i flera rum och ta bort dessa i frontenden. Viktigt även här att kommunikationen mellan klient och server sker med socket.io-client

    Den ska spara meddelande och rum långsiktigt, i en databas

    Valet av databas är frivilligt, men jag skulle rekommendera att använda sqlite3. Skulle du välja att använda en annan databas, måste du inkludera instruktioner och anslutningsuppgifter för denna databas. Dessa kan du skicka i samband med inlämningen

    Den ska ha stöd för flera chatt-rum

    Man ska alltså kunna skapa och ha flera separata chatt-rum samtidigt.

    Man ska kunna skapa och ta bort chattrum

    Tror denna är tydlig nog :)

    När man tar bort ett chattrum ska även dess meddelande tas bort

    Om du skulle ta bort ett chattrum, vill jag även att dess meddelande ska tas bort. Du behöver alltså ta bort både rum och meddelande från databasen när ett rum tas bort. Här skulle du kunna nyttja styrkan av relationer (och ON DELETE CASCADE) mellan två tabeller.

    Chattrum som skapas ska ha unika namn

    Du behöver se till så två rum inte kan ha identiska namn, exempelvis genom att kolla om det finns innan du skapar det.

    Varje meddelande ska ha info om vem som skrev det och när

    I ett meddelande behöver du alltså ha både name och en tidsstämpel på när det skrevs. Ex:

    {
      name: "Oscar",
      timestamp: "20-06-22 12:51" // (bör vara en date-sträng)
    }
    

    Den ska innehålla en middleware som sparar loggar med relevant info i en eller enskilda filer (tidsstämpel, vem som skrev det, i vilken kanal)

    Här är det lättast att skriva sin egen, men du kan även använda 3e parts-paket om du hittar ett lämpligt sådant. Det behöver innehålla en tidsstämpel, namn och vilken kanal de skrev i.

    Den ska validera meddelande på backenden så att en användare inte kan skicka ett tomt meddelande

    Du behöver se till så man inte kan skicka ett tomt meddelande, genom att validera datan du får från klienten.

    Väl godkänt (minst 3)

    Klienten ska visa alla användare som är aktiva i chatten/rummet

    En lista på användare som har en aktiv anslutning och är med i det rummet

    När någon skriver ska det finnas någon form av indikator att någon håller på att skriva ett meddelande (ex. “... skriver just nu”)

    Du behöver berätta för alla användare i det rummet där det skrivs, att någon skriver ett meddelande - t.ex. när de skriver något i input-fältet så ska de andra användarna kunna se det.

    Det ska finnas stöd för att skapa ett låst rum som kräver lösenord

    Man ska kunna skapa ett rum som är lösenordsskyddat, så när du försöker ansluta till det så behöver du ange just det lösenordet.

    Man ska inte kunna ta bort ett lösenordsskyddat rum utan lösenordet

    Hör ihop med föregående, du behöver ha och ange lösenordet för att kunna ta bort ett lösenordsskyddat rum.

    Det ska finnas stöd för att skicka direktmeddelande till andra användare

    På samma sätt som vi har rum, så vill jag att man ska kunna skriva direkt till andra användare.

    Det ska finnas stöd för att skicka emojis i meddelanden

    Stöds emojis rakt upp och ner en sträng eller behöver du hantera det på något specifikt sätt?

    opened by sawariz0r 0
Owner
null
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
This is email scheduler made using MERN. This repo contains server code, client repo is linked in readme.

Email Scheduler Client This is an email scheduler server (client in different repository). It is made using node.js/express.js. Overview User can sign

Sai Charan 2 Apr 14, 2022
This repo is a collection of code samples and links to previous twitch live stream sessions. If you have any ideas or suggestions for future episodes, feel free to open an issue.

Talk DEV to me Talk DEV to me is a monthly show on twitch.tv/aws hosted by Tiago Barbosa and Alex Melnyk, where we invite customers, partners, or Amaz

AWS Samples 112 Nov 24, 2022
Base-mock-api - Repo to storage my fake api's to use in my 2022 projects.

Base Mock API's Project made 100% with JavaScript, with the objective of creating endpoints to use in projects. Prerequisites Before you begin, ensure

Arthur Cabral 0 Nov 20, 2022
This repo contains instructions on how to create your NFT in Solana(using Metaplex and Candy Machine) and mint it using your custom front-end Dapp

Solana-NFT minting Dapp Create your own NFT's on Solana, and mint them from your custom front-end Dapp. Tools used Metaplex -> Metaplex is the NFT sta

Udit Sankhadasariya 12 Nov 2, 2022
Monolithic repo for api server, image server, web server

Onsecondary Market Deployed at https://market.onsecondary.com Monolithic repo for api server, image server, web server TODO -use a script to cull expi

Admazzola 2 Jan 11, 2022
Repo of MVRT's super scout website

MVRT Super Scout Development Clone repo and install dependencies git clone https://github.com/mvrt-115/super-scout-dashboard.git npm install Include

Monta Vista Robotics Team 2 Sep 10, 2022
This is the repo for the Medium2 project with Next.js, Sanity CMS, React and Tailwind CSS

Next.js + Tailwind CSS Example This example shows how to use Tailwind CSS (v3.0) with Next.js. It follows the steps outlined in the official Tailwind

null 1 Jan 22, 2022
This repo. contain some "Login page" , That I have made during learning and practicing HTML & CSS.

Login-Page This repo. contain some "Login page" , That I have made during learning and practicing HTML & CSS. Table of content: v1 v2 Objective and Re

Ayush Mishra 1 Jan 28, 2022
A GitHub Action for pushing to a repo.

action-gh-push A GitHub Action for pushing to a repo. ?? Usage Below is a simple example of step.if tag gating name: ci on: push jobs: build:

迷渡 6 Feb 15, 2022
Demo repo used in crash course for students learning web development.

Web Development Crash Course Hosted by Rubberdøk Preparation Following these steps prepares you to join the interactive React demo of the crash course

Rubberdøk 3 Sep 20, 2022
A quick way of bootstrapping a new mono-repo for a Web Application

marp theme class author true gaia lead invert Matteo ronchi [email protected] Mono-repo Starter https://github.com/cef62/monorepo-template What

Matteo Ronchi 12 Jul 29, 2022
A template repo that contains a NodeJS app that will consume messages from a RabbitMQ queue and immediately send them to an Azure EventHub.

README.md Summary This repo (RabbitMQ to EventHub Shovel) is a template that contains a NodeJS app that will consume messages from a RabbitMQ queue an

Valtech San Diego 6 Jul 2, 2022
Thank you for visiting this repo! ;)

React Native - UI Coffee Order [Pixel BWA] This is the React Native source code from a design provided by Pixel BuildWithAngga. I made this repo for t

Janaka Jati Lasmana 3 Mar 11, 2022
OnePiece /r/place repo to store the template and script for outlining the place to put titles

onepiece-place OnePiece /r/place repo to store the template and script for outlining the place to put titles This script & repo are cloned from Antice

Lopeh 11 Apr 9, 2022
Repo for r/UKplace efforts

Browser script instructions (easy) First, install the TamperMonkey browser extension: Chrome Webstore Firefox (ViolentMonkey) Then just click here, cl

null 27 Aug 12, 2022
A solidity tutorial repo.

Advanced Sample Hardhat Project This project demonstrates an advanced Hardhat use case, integrating other tools commonly used alongside Hardhat in the

Yadav! ✔ 3 Apr 13, 2022
This is an email scheduler made using MERN stack. This repo contains client, server side is linked in readme

Email Scheduler Client This is an email scheduler client (server in different repository). It is made using react. Overview User can sign-up/sign-in,

Sai Charan 3 Apr 14, 2022
A repo for the live coding portion of my full-stack nanodegree sessions

Udacity Full-Stack Nanodegree Classroom This repo includes the live coding portion of my lecture for Udacity Full-Stack Nanodegree students. It will b

Hossam Abubakr 58 Nov 21, 2022