\PassOptionsToPackage{type=CC,modifier=by,version=4.0}{doclicense}
\documentclass[conference,a4paper,flushend]{cs-techrep}
\pdfoutput=1 % pdflatex hint for arxiv.org (within first 5 lines)

% Class cs-techrep.cls loads biblatex / biber with predefined options
\addbibresource{embedded.bib}       % its content is declared below, embedded within this tex-file
\addbibresource{webdev_commons.bib} % includes REST, React, Angular, Vue, Svelte, Docker, AWS-*, Socket.IO, and many more!
\addbibresource{cpn_all_all.bib}    % includes all previous CyberLytics@OTH-AW technical reports

% ======================================================================
% EDIT THESE:

\cstechrepAuthorListTex{Christoph P.\ Neumann\,\orcidlink{0000-0002-5936-631X}}
% Team example:
%\cstechrepAuthorListTex{Vorname1 Nachname1, Vorname2 Nachname2, Vorname3 Nachname3, Vorname4 Nachname4,\\ Vorname5 Nachname5, Vorname6 Nachname6, Christoph P.\ Neumann\,\orcidlink{0000-0002-5936-631X}}
\cstechrepAuthorListBib{Christoph P. Neumann}
% Team example:
%\cstechrepAuthorListBib{Vorname1 Nachname1 and Vorname2 Nachname2 and Vorname3 Nachname3 and Vorname4 Nachname4 and Vorname5 Nachname5 and Vorname6 Nachname6 and Christoph P. Neumann}

% Capitalization: https://capitalizemytitle.com/style/Chicago/
\cstechrepTitleTex{The cs-techrep Paper Example of a Technical Report in Computer Science or Software Engineering}
 % IF you need manual linebreaks in the titel, then clone the title without linebreaks for BibTeX:
\cstechrepTitleBib{{\cstechrepTitleTex}}
%\cstechrepTitleBib{The cs-techrep \LaTeX{} Class Example of a Software Engineering Technical Report}

\cstechrepDepartment{CyberLytics\-/Lab at the Department of Electrical Engineering, Media, and Computer Science}
%\cstechrepDepartment{CyberLytics\-/Lab an der Fakultät Elektrotechnik, Medien und Informatik} % DE
\cstechrepInstitution{Ostbayerische Technische Hochschule Amberg\-/Weiden}
\cstechrepAddress{Amberg, Germany}
%\cstechrepAddress{Amberg, Deutschland} % DE
\cstechrepType{Technical Report}
%\cstechrepType{Technischer Bericht} % DE
\cstechrepYear{2024} % CTAN
\cstechrepMonth{9} % CTAN
\cstechrepNumber{CL-TR-\cstechrepYear{}-99}
\cstechrepLang{english}  % en-US
%\cstechrepLang{ngerman} % DE

% Special remark on babel/csquotes terminology in regard with US-vs-UK:
% en-US  = [english]/[american]/[usenglish] (+ [canadian])
% en-UK  =           [british] /[ukenglish] (+ [australian]) <OXFORD>
% For cs-techrep (like ACM), the recommended english variant is en-US!

% DO NOT DELETE THIS:
\filecontentsForceExpansion|[] % force command expansion inside a filecontents* environment
\begin{filecontents*}[overwrite]{selfref.bib}
    @TECHREPORT{selfref,
        author = {|cstechrepAuthorListBib},
        title  = {\cstechrepTitleBib},
        institution = {\cstechrepInstitution, \cstechrepDepartment},
        type   = {\cstechrepType},
        number = {\cstechrepNumber},
        year   = {|cstechrepYear},
        month  = {|cstechrepMonth},
        langid  = {|cstechrepLang},
    }
\end{filecontents*}

% ======================================================================
% EDIT THIS:

\begin{filecontents}[overwrite]{embedded.bib}
@online{ieee2015howto,
    author = {Michael Shell},
    title = {How to Use the {IEEEtran} \LaTeX\ Class},
    url = {http://mirrors.ctan.org/macros/latex/contrib/IEEEtran/IEEEtran_HOWTO.pdf},
    year = {2015}
}
@online{ieee2018formattingrules,
    author = {{IEEE}},
    title = {Conference Template and Formatting Specifications},
    url = {https://www.ieee.org/content/dam/ieee-org/ieee/web/org/conferences/Conference-template-A4.doc},
    year = {2018}
}
@online{iaria2014formattingrules,
    author = {{IARIA}},
    title = {Formatting Rules},
    url = {http://www.iaria.org/formatting.doc},
    year = {2014}
}
@online{iaria2009editorialrules,
    _author = {Cosmin Dini},
    author = {{IARIA}},
    title = {Editorial Rules},
    url = {https://www.iaria.org/editorialrules.html},
    year = {2009}
}
@online{languagetool,
    author = {{LanguageTooler GmbH}},
    title  = {{LangueTool}},
    url    = {https://languagetool.org/overleaf}
}
@online{overleaf,
    author = {{Digital Science UK Limited}},
    title  = {{Overleaf}},
    url    = {https://www.overleaf.com}
}
\end{filecontents}

\usepackage{fontawesome} % i.a., \faWarning{}
\usepackage{relsize}     % i.a., \textsmaller{...}
\usepackage{lipsum}      % for blindtext

% ======================================================================

% cf. https://ctan.org/pkg/acronym
% Usage:
% singular, within sentence       = \ac{gui}
% singular, beginning of sentence = \Ac{gui}
% plural, within sentence       = \acp{gui}
% plural, beginning of sentence = \Acp{gui}
\begin{acronym}
    \acro{gui}[GUI]{Graphical User Interface}
    \acro{ide}[IDE]{Integrated Development Environment}
\end{acronym}

% https://www.silbentrennung24.de/
% https://www.hyphenation24.com/
\hyphenation{block-chain block-chains Ethe-re-um}

\begin{document}
\selectlanguage{\cstechrepLang}

\maketitle

\begin{abstract}
\lipsum[11]%[3-10]
\{\,\faWarning{}The abstract does neither mention a teaching module nor a team/project,
it is a summary of the content of the technical report, thus, the objectives and architecture.\}
\end{abstract}

% A list of IEEE Computer Society appoved keywords can be obtained at
% http://www.computer.org/mc/keywords/keywords.htm
\begin{IEEEkeywords}
template; lorem ipsum.
\end{IEEEkeywords}

\section{Introduction and Objectives \textbar{} Functional Requirements \textbar{} Problem Statement}

The cs-techrep formatting is adopted both from \textsmaller{IEEE} \cite{ieee2018formattingrules} and \textsmaller{IARIA} \cite{iaria2014formattingrules} styles.
The cs-techrep \LaTeX\ class is based on \textsmaller{IEEE}tran class \cite{ieee2015howto}.
In addition, be aware of the supplementary \textsmaller{IARIA} editorial rules \cite{iaria2009editorialrules} \faWarning{} that provide a beginner-friendly set of further advices.
It is recommended to use a grammar tool, e.\,g., the LanguageTool \cite{languagetool} browser plugin in combination with Overleaf \cite{overleaf}.

The pipe symbol \textquote{\textbar{}} in the headings represents alternatives. Choose one and remove the others. The selectively provided quoted terms are special German alternatives.

The problem statement needs to be written from perspective of a subject-matter expert (\textquote{Fachkonzept}). Like an elevator pitch / mission statement \faWarning{}. NOT from a technical perspective.

\section{Optional: Related Work \textbar{} State of the Art \textbar{} Methods \textbar{} Data Acquisition}
\lipsum[12]

\section{Architectural Goals} % \textbar{} \textquote{Architekturziele}}
Provides
(1) a visualization of the external systems and users with which the system interacts (\textquote{Kontextabgrenzung}),
(2) the most important technical and organizational preconditions (\textquote{Rahmenbedingungen}),
(3) quality/non-functional requirements (\textquote{Qualitätsziele}), and/or
(4) architectural style design decisions with formative patterns of the solution (\textquote{Architekturstil})
as well as (5) the applied programming language.

\section{Architecture of FancyName \textbar{} Results \textbar{} Structural Design \textbar{}  \textquote{Bausteinsicht}}

\subsection{Technology Stack \textbar{} Overall System} %\textbar{} \textquote{Gesamtsystem}}
Provides
(1) design decisions based on the previously defined requirements and
(2) a visualization of the functional structure at top level including relationships (\textquote{Grobe Zerlegung}), thus, gives an overview on modules, frameworks, and middleware.

In discussions of multi-tier architecture, layer is often used interchangeably -- and mistakenly -- for tier. They aren't the same. A \textquote{layer} refers to a functional division of the software, but a \textquote{tier} refers to a functional division of the software that runs on infrastructure separate from the other divisions. The Contacts app on your phone, for example, is a three-layer application, but a single-tier application, because all three layers run on your phone.

In discussions concerning multi-tier architecture, the term \textquote{layer} is frequently misused interchangeably with \textquote{tier}, despite their distinct meanings. A layer denotes a functional partition within the software, whereas a tier signifies a functional division that operates on separate infrastructure from other divisions/tiers. For instance, the Camera app or Settings app on your phone exemplifies a three-layer application but remains a single-tier application since all three layers run on your phone.


\subsection{Presentation Tier \textbar{} Frontend}
\lipsum[13]

\subsection{Application Tier \textbar{} Backend \textbar{} \textquote{Anwendungskern}}
\lipsum[14]

\subsection{Data Tier \textbar{} Persistence}
\lipsum[15]

\subsection{Optional: Infrastructure and Deployment \textbar{} Distribution Perspective \textbar{} \textquote{Verteilungssicht}}
Provides (1) information about configuration, exact software versions, SBOM, DevOps, Cloud, AWS, and others.
Should add (2) security-related considerations or disclaimers.
Could include (3) a software bill of materials (SBOM), at least for the major libraries or frameworks.


\section{Discussion \textbar{} Evaluation \textbar{} \\ Lessons Learned \textbar{} Impediments}
\lipsum[16]

\section{Conclusion and Future Work \textbar{} \\ \textquote{Fazit und Ausblick}}
\lipsum[17]

%%% CPN Peer-Rev'd
\nocite{LeNe24vocattllm} % Co
\nocite{PANP23seccloudfogai} % Co
\nocite{StNe23foodfresh} % Advisor
\nocite{NeLe13adhocCoop}
\nocite{Neumann2012lni}
\nocite{NeLe12alphaFlow}
\nocite{NeHL12hydra}
\nocite{NeWL12offsync}
\nocite{WaNe12alphaoffsync} % Co
\nocite{NSWL11alphaadaptive}
\nocite{ToNe11alphaprops} % Co
\nocite{JBN+10fcmdb} % Co
\nocite{FDI+10esmmog} % Co
\nocite{NeFL10oxdbs}
\nocite{NeLe10alphaUC}
\nocite{ILN+09semrttx} % Co
\nocite{NHSL09oxdbs} % DE
\nocite{NeLe09alphaflow}
\nocite{NeLe09dmps}
\nocite{NeWL09xdsrig} % DE
\nocite{NRDL09deus}
\nocite{IND+09lzatav} % Co (DE)
\nocite{MeNe04testejb} % Pseudo-Co

%%% CPN Monographic Work
\nocite{Neumann2013dissBook}
\nocite{Neumann2012dissPreprint}
\nocite{neumann2005da}
\nocite{neumann2004sa}

%%% TechRep / Non-Peer-Reviewed
\nocite{ModA-TR-2024SS-CCT-TeamGruen-CloudDice}
\nocite{ModA-TR-2024SS-BCN-TeamCyan-SkillIssue}
\nocite{ModA-TR-2024SS-BCN-TeamGelb-GoalGuru}
\nocite{ModA-TR-2024SS-BCN-TeamWeiss-InfluenzaConnect}
\nocite{ModA-TR-2024SS-BCN-TeamGruen-NanoVend}
\nocite{ModA-TR-2024SS-BCN-TeamRot-StockSentinel}
\nocite{ModA-TR-2024SS-WAE-TeamCyan-Connect4IfYouCan}
\nocite{ModA-TR-2024SS-WAE-TeamWeiss-Geodingens}
\nocite{ModA-TR-2024SS-WAE-TeamGruen-MunchMunch}
\nocite{SaNe24othfb}
\nocite{StNe24kosmosis-TR}
\nocite{ModA-TR-2023SS-WAE-TeamWeiss-Neunerln}
\nocite{ModA-TR-2023SS-BDCC-TeamRot-CompVisPipeline}
\nocite{ModA-TR-2023SS-BDCC-TeamBlau-NauticalNonsense}
\nocite{ModA-TR-2023SS-BCN-TeamGruen-TorpedoTactics}
\nocite{ModA-TR-2023SS-BCN-TeamCyan-Stockbird}
\nocite{ModA-TR-2023SS-BCN-TeamBlau-FancyChess}
\nocite{ModA-TR-2023WS-SWT-TeamRot-SGDb}
\nocite{ModA-TR-2023WS-SWT-TeamGruen-OPCUANetzwerk}
\nocite{ModA-TR-2022SS-WAE-TeamWeiss-WoIstMeinGeld}
\nocite{ModA-TR-2022SS-BDCC-TeamWeiss-TwitterDash}
\nocite{ModA-TR-2022SS-BDCC-TeamRot-Reddiment}
\nocite{ModA-TR-2022SS-BDCC-TeamGruen-ExplosionGuy}
\nocite{ModA-TR-2022SS-BDCC-TeamCyan-OTHWiki}
\nocite{ModA-TR-2022WS-SWT-TeamGruen-Graphvio}
\nocite{ModA-TR-2021SS-WAE-TeamWeiss-CovidDashboard}
\nocite{ModA-TR-2021SS-WAE-TeamRot-FireForceDefense}
\nocite{ModA-TR-2021SS-WAE-TeamGruen-MedPlanner}
\nocite{NeRL12deus}
\nocite{LNR+11egr}

% ======== References =========
%\vfill % To end last page and thus get bibliography "behind" subfigure example, only this allows pbalance to level columns at the last page correctly (but no other balance-package can handle this situation better than pbalance, either). % However, pbalance ist not compatible with arxiv.
\begingroup
\sloppy
\printbibliography[notcategory=selfref]
\endgroup 
    
\end{document}
