Bygg kursbeställningsverktyg till skolan
Bygg en terminaklient och en webbaserad klient som löser delar av ett beställningsverktyg för utbildningsprogram och kurser till skolan.
Klienterna jobbar mot ett API mot databasen, ett API som består av lagrade procedurer och döljer själva implementationen i databasen.
Uppgiften skall lösas individuellt.
#Förkunskaper
Du har utfört följande del i guiden “Kom igång med SQL i MySQL (Programmera i databasen)”.
Du har sedan tidigare kodbas för att skapa terminaklient och webbklient i Express med Node.js och JavaScript.
#Introduktion
Du skall utgå från den databas du skapade i “Kom igång med SQL i MySQL (Programmera i databasen)” och du skall bygga en terminalklient och en webbklient mot den databasen.
Du har tidigare kod som du kan utgå ifrån. Kopiera den för att komma igång snabbt. Men, i denna uppgiften vill jag att du försöker ha så specifik kod som möjligt, rensa bort allt som du inte behöver i terminalklienten eller i webbklienten. Främst är det ju webbklienten som du kopierat och byggt ut sedan kmom04. Ta nu tillfället i akt och renodla koden så den enbart löser denna uppgiften, ta bort kod som är relaterad till äldre kmoms.
Du har gjort en hel del liknande programmering tidigare. Se denna uppgift delvis som repetition och som en möjlighet att städa i din kod så den ser bra ut. Tänk att du vill återanvända koden inför det stundande projektet, så städa väl, se det som ren förberedelse.
#Krav
Inloggningsdetaljer till databasen skall sparas i
config/db/skolan.json
. Jobba mot databasen skolan med användare:lösen som tidigare, user:pass.De SQL-filer som används för att skapa databasen är de som du skapat i guiden Kom igång med SQL i MySQL (Programmera i databasen). Låt dem ligga där de ligger men försäkra dig om att man kan återskapa din databas via
program_ddl.sql
följt avprogram_insert.sql
.Skapa en menydriven terminalklient i
cli.js
. Ditt terminalprogram skall fungera som en oändlig kommandoloop där man kan skriva in kommandon som programmet utför. Det skall finnas ett kommandomenu
som visar menyn med samtliga kommandon. När man skriver kommandotexit
skall programmet avslutas.I terminalprogrammet, skapa kommandot
pt
som visar en tabell över de programtillfällen som finns.I terminalprogrammet, skapa kommandot
kt <programtillfalle> <kurskod> <lasperiod>
som beställer ett nytt kurstillfälle till ett programtillfälle.I terminalprogrammet, skapa kommandot
log <antal>
som visar antal rader som senast lagts in i loggen.Skapa en webbklient med Express. Servern startas via
node index.js
.I webbklienten, skapa routen
/
som visar en välkomstssida med header, footer och navigering mellan sidorna. Alla sidor skall ha samma sidlayout och det skall gå att klicka sig fram mellan sidorna, via navigeringen.I webbklienten, skapa en sida
/log
som visar innehållet i loggtabellen.I webbklienten, skapa en sida
/kurstillfallen
som visar de kurstillfällen som finns, tillsammans med deras status “Beställd/Godkänd”. Rapporten skall innehålla det som beskrivs i Rapporter med JOIN.Skapa en/flera routes/formulär där “rektorn” kan godkänna en kursbeställning och tilldela en kursansvarig.
Validera din kod.
# Flytta till kurskatalogen
dbwebb validate bestall
Rätta eventuella fel som dyker upp och publisera igen. När det ser grönt ut så är du klar.
#Tips från coachen
Lycka till och hojta till i forumet om du behöver hjälp!
#Revision history
- 2018-02-20: (A, mos) Första utgåvan.