// Author: van Nes Zias
// Date: 26-dec-2025
// Serengo

#set document(
  title: "Serengo",
  author: "Zias van Nes",
)

// Page setup with margins and header/footer
#set page(
  paper: "a4",
  margin: 3cm,
  header: context {
    let elems = query(heading)
      .filter(h => h.location().position().page <= here().position().page)
    let chapter = if elems != () {
      emph(elems.last().body)
    }
    align(right, chapter)
  },
  numbering: "1",
)

// Text settings - 1.5 line spacing
#set par(
  leading: 0.65em,
  justify: true,
  first-line-indent: 1.8em,
)

// Section numbering (1, 2, 3...)
#set heading(numbering: "1.")

// Title page
#align(center)[
  #text(size: 20pt, weight: "bold")[Serengo]
  #v(0.8em)
  #text(size: 12pt)[Projectdocumentatie]

  #v(2em)

  #text(size: 12pt)[Zias van Nes]
  #v(0.5em)
  #text(size: 11pt)[Toegepaste Informatica, Odisee Hogeschool, Brussel]

  #v(1em)

  #datetime.today().display()
]

#pagebreak()

// Abstract
#align(center)[
  #text(size: 12pt, weight: "bold")[Abstract]
]

#par(first-line-indent: 0pt)[
  Serengo is een locatie-gebaseerde sociale webapplicatie waarmee gebruikers zogenaamde 'finds'
  (plaatsen en momenten) op een kaart kunnen vastleggen, verrijken met media en delen met een
  vertrouwde kring. Deze paper beschrijft de doelstelling en doelgroep van het project, de
  onderliggende data- en software-architectuur, de gebruikte tools en ontwikkelworkflow, de
  deploymentaanpak en de belangrijkste optimalisaties die tijdens de ontwikkeling zijn uitgevoerd.
]

#pagebreak()


// Table of contents
#outline(
  title: "Inhoudstafel",
  indent: auto,
)

#pagebreak()

// Include all sections

#include "sections/wat-is-serengo.typ"
#include "sections/voor-wie-is-serengo.typ"
#include "sections/erd.typ"
#include "sections/klassediagram.typ"
#include "sections/architectuur.typ"
#include "sections/buildtools.typ"
#include "sections/deployment.typ"
#include "sections/optimalisaties.typ"
#include "sections/screenshots.typ"

#pagebreak()

// Bibliography
#bibliography("bib/main.bib", style: "apa", title: "Referenties")
