it is the way

Webapplications 4

Karine Samyn, Benjamin Vertonghen, Thomas Aelbrecht, Pieter Van Der Helst

"Give someone a program, you frustrate them for a day; teach them how to program, you frustrate them for a lifetime" - David Leinweber
Applicatieontwikkeling
Netwerken en systeembeheer
Gegevensbehandeling en beheer
Probleemanalyserend denken en Business
Communicatie
Probleemonderzoekend en oplossend denken
Professionele en individuele groei
1e jaar 2e jaar 3e jaar
Algemene vorming Algemene vorming Algemene vorming
KP mobiele applicaties
KP Programmeren KP systeem- en netwerkbeheer
KP e-Business
KP netwerken KP Mainframe applicaties en -beheer
Projecten, iTalent, Stage, Bachelorproef

Applicatieontwikkeling

De student kan kwaliteitsvolle IT-oplossingen efficiënt en autonoom ontwerpen, ontwikkelen, documenteren en testen, rekening houdend met nieuwe ontwikkelingen en toepassingsdomeinen.

what are we going to do?

  • Single Page Application (SPA)
  • Angular 9.0 (º 6 feb 2020)
  • open source, made by Google
  • other similar frameworks exist: React, Vue

why Angular? (and not React, Vue)

  • first of all: it doesn' t (really) matter
  • learning a modern javascript framework is what matters
  • neither will exist (in it's current form) in 5 years anyway
  • still, which one to chose to teach a modern javascript framework?
  • vdab: # jobs for programmers in Gent +60km mentioning (Angular | React | Vue)

what are you going to do?

  • you can only learn programming by making things, not by reading slides
  • ((add chamilo link here))
  • so: build a webapp by the end of week 13
  • a github classroom link will be provided on chamilo
  • oral exam during the exam period, where you get asked some questions about your webapp

"we have too much work"

margaret hamilton at nasa
"Margaret Hamilton, NASA's lead software engineer for the Apollo Program, stands next to the code she wrote by hand that took Humanity to the moon in 1969"

"we have too much work"

  • each year students complain about "too much work"
  • they're not (entirely) wrong, you also have projecten2, research techniques with the same deadline (and iTalent!)
  • but everything from web4 is on github, so... we check the complainers and notice they all start working in week 9 or 10 (or later)
  • so we shrug and pretty much ignore the complaints
  • if you want your complaints to be taken seriously, start working and committing early (but then there will be no need to complain and everyone will be happy)

deadline.

  • you know the deadline, plan accordingly
  • we've heard all excuses over the years; we're real sympathetic, we still won't make an exception just for you, it wouldn't be fair
  • some highlights!
    • "I have to train for the world championship athletics during the week of the deadline"
    • "my firstborn son was born prematurely on the day of the deadline and I was at the hospital"

examples.

made by students in previous years

schedule.

theory (all together)

exercise (per class)

week 1.
introduction, Angular basics
trouble installing?
week 2.
holiday - no class
(mandatory) discuss your webapp idea - setup github
week 3.
services, communication between components
get help while working on your webapp
week 4.
backend API in .NET Core (part 1)
get help while working on your webapp
week 5.
backend API in .NET Core (part 2)
get help while working on your webapp
week 6.
observables (basics) so we can use the API
exercise on observables
week 7.
reactive forms / Cypress testing
(mandatory) discuss your REST API
week 8.
modules / routing
get help while working on your webapp
week 9.
authentication and authorization
get help while working on your webapp
week 10.
state management, observables and rxjs in depth
get help while working on your webapp
week 11.
"guest" lecture - get everything running online (maybe)
get help while working on your webapp
week 12.
get help while working on your webapp
get help while working on your webapp

slides?

software?

we're here to help.

we're here to help.

  • read errors / warnings; copy-paste them in google
  • no errors?
    • find steps to reliably reproduce the problem
    • isolate the problem (backend / frontend; rendering / database / ...)
    • use a debugger; use your brain
    • ask on stackoverflow

we're here to help.

  • still stuck?
    • email me a link to your stackoverflow question
    • if not applicable: create branch on github with the problem, add steps to reproduce in the readme of the branch
    • email me with your name, class, the link to this github branch, a gif CLEARLY showing the problem, and a short explanation
    • we'll talk after the next class to discuss your problem
  • if you email me ALWAYS add your class and a link to your github (your mail is automatically filtered as spam if you forget, I won't even see it)

questions?