This is my B.Sc. thesis, based on the official AEI template (with modifications). I hope it'll be useful to engineering students from the AEI faculty of the Silesian University of Technology who want to find some examples.
There are two versions of the thesis:
- Original which can be compiled with
pdflatex
andxelatex
(XeLaTeX uses Calibri on the title page) - lualatex on the
lualatex
branch which can be compiled withlualatex
too and like thexelatex
version uses Calibri. Templates for this version can be found in my fork
The compilation is fastest when using pdflatex
, but if you want a nice title page use xelatex
or lualatex
and make sure that Calibri is installed.
pdflatex
,xelatex
orlualatex
depending on which one you want to use- Inkscape (must be in the PATH) for SVG support
- Python 3 and Pygments (
pip install Pygments
) for syntax highlighting - JRE and PlantUML if you want to render UML diagrams
- Following TeX packages (some aren't really necessary):
inputenc
,fontenc
,amsmath
,amsfonts
,amssymb
,amsthm
,babel
,indentfirst
,iftex
,geometry
,graphicx
,hyperref
,booktabs
,tikz
,pgfplots
,mathtools
,subcaption
,appendix
,csquotes
,biblatex
,ifmtarg
,setspace
,color
,minted
,ifplatform
- (XeTeX and LuaTeX)
fontspec
- (XeTeX)
xunicode
,xltxtra
- (pdfTeX)
lmodern
If you are using MiKTeX (probably the easiest way on Windows) it will ask you to install the required packages during first compilation.
The repository contains already rendered UML diagrams in SVG format, but if a change is made to the .puml
sources, the diagrams must be rendered again.
The command below should be enough, but if you want to know more, read the documentation
java -jar /path/to/plantuml.jar -tsvg -o "/full/path/to/repo/uml/render" "/full/path/to/repo/uml/source"
If you are using only LuaTeX you can try the plantuml package.
If you just want to compile the thesis using pdflatex
on Windows or Linux, you can use the simple script ./build.ps1
which should work on any system with Bash or PowerShell.
The repository contains configuration for the LaTeX Workshop (James-Yu.latex-workshop
) plugin, which will automatically compile the PDF using pdflatex
on source changes. On the lualatex
branch there is a recipe using LuaLaTex, but it has to be selected manually.
Regardless of the engine, the process follows these steps:
engine -shell-escape main
bibtex main
engine -shell-escape main
engine -shell-escape main
Replace engine
with pdflatex
, xelatex
or lualatex
and that's all. -shell-escape
is required, because the minted
package must run shell commands to use Pygments. All 4 commands must be executed, because TeX.
You can also try using latexmk
, but that will require Perl and reading some documentation to set -shell-escape
.
If you want to use it, you probably know how. I haven't used it in the project and can't guarantee that it'll work.
The source code of the project is available in the krzysdz/inz repository, which also contains a link to the platform with a some content. The link may work only occasionally as it was used mostly for testing.
The thesis in PDF format is available as main.pdf
and in Releases.
Interactive security training platform based on CTF concept
The popularity of the internet and its broad usage in the contemporary world introduces new problems in the form of vulnerabilities. One of the best ways to prevent them is good and practical cybersecurity education of developers responsible for the said web services. The thesis aims to design and create an easy-to-use platform suitable for education about web security using capture the flag challenges. The project combines this popular type of tasks with multiple-choice quizzes and allows rich descriptions of vulnerability types. The solution uses Docker and nginx proxy for easy automated challenge management.
educational platform, cybersecurity training, CTF, web security, Docker