Bygg orderhantering till en Eshop
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
Inloggningsdetaljer till databasen finns i
config/db/eshop.json
.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 filensetup.sql
för att skapa databasen och användaren. Du harddl.sql
för att skapa tabeller, vyer, procedurer, triggers, etc. Du harinsert.ddl
för att fylla tabellerna med innehåll.Dina klienter skall klara de krav som fanns i föregående uppgift “Skapa grunden till en Eshop”. Det är utgångsläget.
Bygg din nya databaskod som lagrade procedurer, tänk API mot databasdelen.
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.
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.
Man kan lägga till, ta bort, och redigera orderrader i en order.
Varje gång en orderrad skapas/raderas/uppdateras så skall det loggas i loggtabellen med relevant information (implementera med trigger).
I din terminalklient lägg till ett kommando
order
som visar en översikt över de ordrar som finns.I din terminalklient, lägg till ett kommando
order <id>
som visar detaljer om vald order, inklusive dess orderrader.I din terminalklient, lägg till ett kommando
log
som visar en utskrift från loggtabellens tio senaste inlagda rader.Ta en uppdaterad backup av databasen med mysqldump och spara i
sql/eshop/backup.sql
.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.
Lägg till CRUD för produkter och kunder.
Gör så att webbklienten kan visa innehållet i loggtabellen.
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.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.