\documentclass{beamer}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage[inkscapeformat=png]{svg}
\usepackage{tikz}
\usetikzlibrary{positioning,arrows.meta, calc}
\usepackage{caption}

\definecolor{darkgreen}{RGB}{0,100,0}
\setbeamercolor{title}{fg=darkgreen}
\setbeamercolor{frametitle}{fg=darkgreen}
\setbeamercolor{structure}{fg=darkgreen}
\setbeamercolor{normal text}{fg=black,bg=white}

\usetheme{default}
\setbeamertemplate{footline}[frame number]{}
\setbeamertemplate{navigation symbols}{}

\setbeamerfont{frametitle}{size=\huge,series=\mdseries}
\setbeamerfont{title}{size=\huge,series=\mdseries}

\setbeamertemplate{frametitle}{
    \vspace{1.5em}
    \begin{centering}
        \usebeamerfont{frametitle}\insertframetitle\par
    \end{centering}
    \vspace{0.5em} 
}
\title{Enter the [matrix]} 
\author{Filip Wandzio\vspace{0.5em}\\\texttt{contact@philw.dev}\\\texttt{@philw:matrix.philw.dev}}
\date{}

\begin{document}

\begin{frame}
    \titlepage 
\end{frame}

\begin{frame}{O mnie}
\centering
\vspace{0.5cm}
\includesvg[width=0.3\textwidth]{assets/web}
\vspace{0.5cm}
\begin{center}
    \begin{minipage}{0.15\textwidth}
        \centering
        \includesvg[width=0.9\linewidth]{assets/wsb}
    \end{minipage}\hfill
    \begin{minipage}{0.15\textwidth}
        \centering
        \includesvg[width=0.9\linewidth]{assets/mad}
    \end{minipage}\hfill
    \begin{minipage}{0.15\textwidth}
        \centering
        \includesvg[width=0.9\linewidth]{assets/k7}
    \end{minipage}\hfill
\end{center}
\end{frame}

\begin{frame}{Czym jest [matrix]?}
\begin{itemize}
    \item Otwarty protokół komunikacji RT rozwijany przez \texttt{matrix.org}
\end{itemize}
\end{frame}

\begin{frame}{Nazwy własne}
\begin{itemize}
    \item \textbf{Homeserver} – oprogramowanie umożliwiające zarządzanie użytkownikami, przechowywanie danych i obsługę komunikacji.
    \item \textbf{Federacja} – mechanizm komunikacyjny tworzący zdecentralizowaną sieć.
    \item \textbf{Client} – oprogramowanie umożliwiające korzystanie z usług homeservera.
    \item \textbf{Bridge} – integrator/agregator innych systemów (np. IRC, Slack, Discord).
\end{itemize}
\end{frame}

\begin{frame}{Jak działa [matrix]?}
\centering
\resizebox{0.9\textwidth}{!}{
\begin{tikzpicture}[node distance=1.2cm]
\tikzset{
    box/.style={draw, thick, minimum width=3.5cm, minimum height=1cm, align=center, rounded corners},
    client/.style={draw, thick, minimum width=3.0cm, minimum height=0.9cm, align=center, rounded corners},
    arrow/.style={-{Stealth}, thick},
}

\node[client] (clientA) {Client A};
\node[client, right=4cm of clientA] (clientB) {Client B};

\node[box, below=of clientA] (serverA) {Server A};
\node[box, below=of clientB] (serverB) {Server B};

\draw[arrow] (clientA.south) -- node[right,align=center] {events\\CS-API} (serverA.north);
\draw[arrow] (serverA.north) -- ++(0,0.8) -| (clientA.south);

\draw[arrow] (clientB.south) -- node[left,align=center] {events\\CS-API} (serverB.north);
\draw[arrow] (serverB.north) -- ++(0,0.8) -| (clientB.south);

\draw[<->,thick] (serverA.east) -- node[above,align=center] {SS-API (HTTPS)} (serverB.west);
\end{tikzpicture}
}
\\
{\scriptsize Źródło: \url{https://matrix.org/docs/matrix-concepts/elements-of-matrix/}} 
\end{frame}

\begin{frame}{Jak działa [matrix]?}
    \begin{center}
    \texttt{contact@philw.dev <-> contact@phil.xyz}
    \texttt{@philw:matrix.philw.dev <-> @phil:phil.xyz}
    \end{center}
\end{frame}

\begin{frame}{Jak działa [matrix]?}
\begin{itemize}
    \item Komunikacja: REST API 
    \item Synchronizacja: \texttt{sync} lub \texttt{sliding-sync} – mechanizm aktualizacji
    \item E2EE:
    \begin{itemize}
        \item Olm (1:1)
        \item Megolm (1:n)
    \end{itemize}
    \item WebRTC
\end{itemize}
\end{frame}


\begin{frame}{[matrix] a wybrane systemy}
\begin{center}
\begin{tabular}{|l|c|c|c|c|}
\hline
 & \textbf{Matrix} & \textbf{Signal} & \textbf{Slack} & \textbf{Discord} \\
\hline
Decentralizacja & Tak & Nie & Nie & Nie \\
E2EE & Tak & Tak & Nie & Nie \\
E2EE (a/v) & Tak & Tak & -- & Tak \\
Otwartość & Tak & Nie & Nie & Nie \\
Bridge & Tak & Tak* & Tak* & Tak* \\
Self-host & Tak & Nie & Nie & Nie \\
\hline
\end{tabular}
\end{center}
\end{frame}

\begin{frame}
\vspace{0.5em}
\centering
    {\usebeamerfont{frametitle}\usebeamercolor[fg]{frametitle}\Huge Jak zacząć korzystać z [matrix]?}
\vspace{1em}
\end{frame}

\begin{frame}{Wybór oprogramowania}
\begin{center}
    \begin{minipage}{0.45\textwidth}
        \centering
        \includesvg[width=0.9\linewidth]{assets/servers}
        \captionsetup{labelformat=empty}
        \captionof{figure}{Lista serwerów}
    \end{minipage}\hfill
    \begin{minipage}{0.45\textwidth}
        \centering
        \captionsetup{labelformat=empty}
        \includesvg[width=0.9\linewidth]{assets/clients}
        \captionof{figure}{Lista klientów}
    \end{minipage}
\end{center}
\end{frame}

\begin{frame}{Whiterabbit}
\begin{itemize}
    \item Automatyczna konfiguracja wybranych serwerów [matrix]
    \item Automatyczna konfiguracja Coturn 
    \item Automatyczne TLS/SSL 
    \item Konteneryzacja 
\end{itemize}
\centering
\includesvg[width=0.25\textwidth]{assets/whgit}
        \captionsetup{labelformat=empty}
        \captionof{figure}{Repozytorium Git}
\end{frame}

\begin{frame}
  \vspace{0.5em}
  \centering
  {\usebeamerfont{frametitle}\usebeamercolor[fg]{frametitle}\Huge  Jak to działa?}
  \vspace{1em}
\end{frame}

\begin{frame}{Pytania}

\begin{center}
    \begin{minipage}{0.45\textwidth}
        \centering
        \includesvg[width=0.9\linewidth]{assets/email}
        \captionsetup{labelformat=empty}
        \captionof{figure}{E-mail}
    \end{minipage}\hfill
    \begin{minipage}{0.45\textwidth}
        \centering
        \captionsetup{labelformat=empty}
        \includesvg[width=0.9\linewidth]{assets/matrix}
        \captionof{figure}{Matrix}
    \end{minipage}
\end{center}
\end{frame}

\end{document}
