Bygg orderhantering till en Eshop

By . Latest revision .

Du har utfört en ER-modellering av en databas för en Eshop och du har skapat en databas som motsvarar modellen. Du har byggt en terminalklient och en webbklient mot databasen.

Du skall nu uppdatera dina klienter för att jobba med CRUD mot ordertabellerna.

Du kan utföra denna uppgift enskilt, eller i samma grupp som utförde ER-modelleringen.

Alla lämnar in en egen lösning i sitt kursrepo, även om man jobbat i grupp.

#Förkunskaper

Du har utfört uppgiften “Skapa grunden till en Eshop”.

Du har jobbat igenom övningen “CRUD med Express, MySQL och lagrade procedurer”.

Du har jobbat igenom “Triggers i databas”.

#Introduktion

Du skall med Express bygga ett webbaserat CRUD gränssnitt till din databas.

Du skall uppdatera din terminalklient med nya kommandon.

Du skall använda lagrade procedurer och triggers.

Tänk på din kodstruktur, underhåll den, modifiera den om den känns alltför tungarbetad.

Du bygger vidare på den kod du redan skapat.

#Krav

  1. Inloggningsdetaljer till databasen finns i config/db/eshop.json.

  2. Försäkra dig om att du kan återställa databasen till sitt ursprungsläge, genom att köra SQL-filerna i sql/eshop. Du har filen setup.sql för att skapa databasen och användaren. Du har ddl.sql för att skapa tabeller, vyer, procedurer, triggers, etc. Du har insert.ddl för att fylla tabellerna med innehåll.

  3. Dina klienter skall klara de krav som fanns i föregående uppgift “Skapa grunden till en Eshop”. Det är utgångsläget.

  4. Bygg din nya databaskod som lagrade procedurer, tänk API mot databasdelen.

  5. I din webbklient, skapa CRUD för orderhantering. Via webbinterfacet kan man utföra CRUD på ordrar och dess innehåll. Man skall kunna skapa en ny order, uppdatera den och ta bort den. Man skall kunna se vilka ordrar som finns.

  6. Varje order kan innehålla en beställning av 0 eller flera produkter. Vi kallar detta orderrader. Varje produkt kan beställas i ett visst antal.

  7. Man kan lägga till, ta bort, och redigera orderrader i en order.

  8. Varje gång en orderrad skapas/raderas/uppdateras så skall det loggas i loggtabellen med relevant information (implementera med trigger).

  9. I din terminalklient lägg till ett kommando order som visar en översikt över de ordrar som finns.

  10. I din terminalklient, lägg till ett kommando order <id> som visar detaljer om vald order, inklusive dess orderrader.

  11. I din terminalklient, lägg till ett kommando log som visar en utskrift från loggtabellens tio senaste inlagda rader.

  12. Ta en uppdaterad backup av databasen med mysqldump och spara i sql/eshop/backup.sql.

  13. Validera din kod.

# Flytta till kurskatalogen
dbwebb validate eshop2

Rätta eventuella fel som dyker upp och publisera igen. När det ser grönt ut så är du klar.

#Extrauppgift

Gör följande om du har tid och ro.

  1. Lägg till CRUD för produkter och kunder.

  2. Gör så att webbklienten kan visa innehållet i loggtabellen.

  3. I terminal, gör kommandot log <antal rader> som ger möjlighet att begränsa hur många rader som skrivs ut från loggtabellen, man vill se de senaste raderna.

  4. Jobba på din kodstruktur så att du bli nöjd.

#Tips från coachen

Lycka till och hojta till i forumet om du behöver hjälp!

#Revision history

  • 2018-02-20: (D, mos) Slog ihop 6&7.
  • 2018-02-17: (C, mos) Mindre justeringar i text.
  • 2018-02-13: (B, mos) Genomgången, förtydligad.
  • 2018-01-11: (A, mos) Första utgåvan.

Document source.

Category: javascript, nodejs, mysql, express, crud, er-modellering, kursen dbjs, kursen databas.