core.tex 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396
  1. \documentclass[aspectratio=169]{beamer}
  2. % get rid of clickable beamer buttons
  3. \beamertemplatenavigationsymbolsempty
  4. % parse most utf-8 correctly
  5. \usepackage[utf8]{inputenc}
  6. \usepackage[ngerman]{babel}
  7. % better graphics
  8. \usepackage{graphicx}
  9. % beamer settings
  10. \title{snailmail}
  11. \author{Noah Vogt \& Simon Hammer}
  12. \date{5 Februar 2022}
  13. \institute{Gymnasium Kirschgarten}
  14. \usetheme{Copenhagen}
  15. \usepackage{varwidth}
  16. \usepackage{graphicx,calc}
  17. \newlength\myheight
  18. \newlength\mydepth
  19. \settototalheight\myheight{Xygp}
  20. \settodepth\mydepth{Xygp}
  21. \setlength\fboxsep{0pt}
  22. \newcommand*\inlinegraphics[1]{
  23. \settototalheight\myheight{Xygp}
  24. \settodepth\mydepth{Xygp}
  25. \raisebox{-\mydepth}{\includegraphics[height=\myheight]{#1}}%
  26. }
  27. % for code snippits
  28. \usepackage{listings}
  29. \usepackage{color}
  30. \definecolor{dkgreen}{rgb}{0,0.6,0}
  31. \definecolor{gray}{rgb}{0.5,0.5,0.5}
  32. \definecolor{mauve}{rgb}{0.58,0,0.82}
  33. \definecolor{background}{rgb}{0.36,0.36,0.36}
  34. \lstset{
  35. numbersep=3pt,
  36. keywordstyle=\color{blue},
  37. commentstyle=\color{dkgreen},
  38. stringstyle=\color{mauve},
  39. breaklines=true,
  40. numbers=left,
  41. numberstyle=\scriptsize\color{black},
  42. frame=none,
  43. basicstyle = \small\ttfamily,
  44. breaklines=true
  45. breakatwhitespace=false,
  46. columns=flexible,
  47. xleftmargin=0.5cm,framesep=8pt,framerule=0pt,
  48. aboveskip=3mm,
  49. belowskip=3mm,
  50. }
  51. % Package to use videos
  52. \usepackage{movie15}
  53. %for table
  54. \usepackage{array}
  55. \newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}
  56. %% Putting the background image in the frames
  57. \usebackgroundtemplate{%
  58. %\vbox to \paperheight{\hfil\hbox to \paperwidth{\hfil\includegraphics[width=1\paperwidth]{../../logo/version2grey.pdf}\hfil}\vfil}
  59. \hspace{5.2cm}\includegraphics[width=0.8\paperwidth]{../logo/version2grey.pdf}
  60. }
  61. \begin{document}
  62. \begin{frame}[plain]
  63. \maketitle
  64. \end{frame}
  65. % TODO: create and insert toc
  66. \begin{frame}[plain]{Inhaltsverzeichniss}
  67. \tableofcontents
  68. \end{frame}
  69. \section{Vorwort}
  70. \subsection{Motivation}
  71. \begin{frame}[plain]{Motivation}
  72. \begin{varwidth}{.5\textwidth}
  73. \begin{figure}
  74. \centering
  75. \includegraphics[width=.9\textwidth]{media/macbook.jpg}
  76. \end{figure}
  77. \end{varwidth}
  78. \hfill
  79. \begin{varwidth}{.5\textwidth}
  80. \begin{itemize}\pause
  81. \item allgemeines Interesse\pause
  82. \item fehlender Edubs-Mail-Client\pause
  83. %\item fehlender Edubs-Mail-Client\inlinegraphics{media/baslerstab-1.jpg}\pause
  84. \item persönliche Bedürfnisse
  85. \end{itemize}
  86. \end{varwidth}
  87. \end{frame}
  88. \subsection{Ziele}
  89. \begin{frame}[plain]{Ziele}
  90. \begin{varwidth}{.5\textwidth}
  91. \begin{figure}
  92. \centering
  93. \includegraphics[width=.8\textwidth]{../logo/version3d.png}
  94. \end{figure}
  95. \end{varwidth}
  96. \hfill
  97. \begin{varwidth}{.5\textwidth}
  98. \begin{itemize}\pause
  99. \item Basisfunktionen \inlinegraphics{media/mail.png} \pause
  100. \item Account Manager\inlinegraphics{media/business.png}\pause
  101. \item Design Prinzipien\inlinegraphics{media/paintbrush.png}\pause
  102. \item Schnelligkeit\inlinegraphics{media/run.png}\pause
  103. \item Mobil und Modern\inlinegraphics{media/mobile.png}\pause
  104. \item Einstellungen\inlinegraphics{media/settings.png}
  105. \end{itemize}
  106. \end{varwidth}
  107. \end{frame}
  108. \begin{frame}[plain]{Weshalb Java?}
  109. \begin{varwidth}{.3\textwidth}
  110. \begin{figure}
  111. \centering
  112. \includegraphics[height=.8\textheight]{media/java-logo.png}
  113. \end{figure}
  114. \end{varwidth}
  115. \hfill
  116. \begin{varwidth}{.6\textwidth}
  117. \begin{itemize}\pause
  118. \item war offizielle Sprache für Android Apps\pause
  119. \item abgelöst von Kotlin (seit 2019)\pause
  120. \item EF Informatik
  121. \end{itemize}
  122. \end{varwidth}
  123. \end{frame}
  124. % TODO: consider using external player
  125. \section{Haupteil}
  126. \subsection{App mit Film}
  127. \begin{frame}[plain]{Demo}
  128. \begin{figure}[h]
  129. \centering
  130. INSERT DEMO HERE
  131. %\includemovie[toolbar]{120pt}{190pt}{media/cutaccountViewer.mp4}
  132. %\includemovie[toolbar]{90pt}{90pt}{media/draftsExample.mp4}
  133. \end{figure}
  134. \end{frame}
  135. %:TODO Fix it simon
  136. \subsection{App Inhalte}
  137. \begin{frame}[plain]{Was alles drin ist}
  138. \centering
  139. \begin{figure}[h]
  140. \pause
  141. \includegraphics[height=.8\textheight]{media/emailWriter.jpg}
  142. \pause
  143. \includegraphics[height=.8\textheight]{media/errorMessage.png}
  144. \pause
  145. \includegraphics[height=.8\textheight]{media/emailViewer.jpg}
  146. \pause
  147. \includegraphics[height=.8\textheight]{media/accountManager.jpg}
  148. \pause
  149. \includegraphics[height=.8\textheight]{media/moreSettings.jpg}
  150. \end{figure}
  151. \end{frame}
  152. \subsection{App-Struktur}
  153. \begin{frame}[plain]{Allgemeine App-Struktur}
  154. \begin{varwidth}{.3\textwidth}
  155. \pause
  156. \begin{figure}
  157. \centering
  158. \includegraphics[height=.8\textheight]{../maturText/media/AppStructureFull.png}
  159. \end{figure}
  160. \end{varwidth}
  161. \hfill
  162. \begin{varwidth}{.5\textwidth}
  163. \begin{itemize}\pause
  164. \item Das User Interface \pause
  165. \item Die Server Connection \pause
  166. \item Die Database \pause
  167. \end{itemize}
  168. \end{varwidth}
  169. \end{frame}
  170. \begin{frame}[plain]{Database}
  171. \begin{block}{allgemein}
  172. \end{block}
  173. \begin{block}{in der app}
  174. %:TODO finish this simon
  175. \pause
  176. \begin{tabular}{ |C{1.4Cm} |C{0.9Cm} |C{0.5Cm} |C{0.65Cm} |C{0.95Cm} |C{0.85Cm} |C{1.05Cm} |C{1.55Cm} |C{1.05Cm} |C{0.8Cm}|}
  177. %\begin{tabular}{ c c c c c c c c c c}
  178. \hline
  179. \multicolumn{10}{|c|}{Database Table} \\
  180. \hline
  181. \small{ObejctKey} &To & cc & bcc & from & date & subject & \small{textContent} & folder & seen \\
  182. \hline
  183. \pause
  184. 01 & \small{Sam} & null & null & \small{Anna} & \small{1.3.13} & Schule & Hallo Herr & Draft & true \\
  185. \hline
  186. \end{tabular}
  187. \end{block}
  188. \end{frame}
  189. \begin{frame}[plain]{Email Connection}
  190. \centering
  191. \includegraphics[width=.8\textwidth]{../maturText/media/connection-diagram.png}
  192. \end{frame}
  193. \defverbatim[colored]\makeset{
  194. \lstset{language=python}
  195. \begin{lstlisting}
  196. def sendStarttls(host, sendingMail, receivingMail, password, message="",
  197. subject="", port=587, cc=[], bcc=[]):
  198. context = ssl.create_default_context()
  199. if type(cc) is not str:
  200. cc = ",".join(cc)
  201. if type(bcc) is not str:
  202. bcc = ",".join(bcc)
  203. utf8Message = ("Subject: " + subject + "\nCC: " + cc + "\nBCC: " + bcc +
  204. "\n\n" + message)
  205. decoded = utf8Message.encode('cp1252').decode('utf-8')
  206. with smtplib.SMTP(host, port) as serverConnection:
  207. serverConnection.starttls(context=context)
  208. serverConnection.login(sendingMail, password)
  209. serverConnection.sendmail(sendingMail, receivingMail, decoded)
  210. \end{lstlisting}
  211. }
  212. \begin{frame}[plain]{Senden einer Email}
  213. %\makeset
  214. \lstset{language=Python}
  215. \lstinputlisting[language=Python]{code/sentMail.py}
  216. \end{frame}
  217. % TODO: make abstraction layer
  218. \begin{frame}[plain]{Room}
  219. INSERT ABSTRACTION LAYERS
  220. \end{frame}
  221. % TODO: add individual layers, add 'wirklich again'
  222. \begin{frame}[plain]{Was haben wir selber gemacht?}
  223. %\includegraphics[height=.8\textheight]{media/hardware-abstraction-layers.png}
  224. \includegraphics<1>[height=.8\textheight]{media/empty.png}
  225. \pause
  226. \includegraphics<2>[height=.8\textheight]{media/layer01.png}
  227. \pause
  228. \includegraphics<3>[height=.8\textheight]{media/layer02.png}
  229. \pause
  230. \includegraphics<4>[height=.8\textheight]{media/layer03.png}
  231. \pause
  232. \includegraphics<5>[height=.8\textheight]{media/layer04.png}
  233. \pause
  234. \includegraphics<6>[height=.8\textheight]{media/layer05.png}
  235. \pause
  236. \includegraphics<7>[height=.8\textheight]{media/layer06.png}
  237. \pause
  238. \includegraphics<8>[height=.8\textheight]{media/layer07.png}
  239. \end{frame}
  240. %\begin{frame}[plain]{Material Design}
  241. %\begin{varwidth}{.5\textwidth}
  242. % \begin{figure}
  243. % \centering
  244. % \includegraphics[width=\textwidth]{media/material-design-in-action.jpg}
  245. % \end{figure}
  246. % \end{varwidth}
  247. % \hfill
  248. % \begin{varwidth}{.4\textwidth}
  249. % \includegraphics[width=\textwidth]{media/material-android.png}
  250. % \begin{itemize}\pause
  251. % \item GUI-Framework\pause
  252. % \item beliebt\pause
  253. % \item in Google Apps
  254. % \end{itemize}
  255. % \end{varwidth}
  256. %\end{frame}
  257. % TODO: insert bugs
  258. \begin{frame}[plain]{Bugs}
  259. INSERT BUGS HERE
  260. \end{frame}
  261. %:TODO Ich han eig gmeint Bilder us de Apps. Also wenn du seisch es isch zu überlade das me das in de Apps seht und ned s Logo fo de App
  262. \begin{frame}[plain]{Inspiration Design}
  263. \begin{varwidth}{.3\textwidth}\pause
  264. \begin{figure}
  265. \centering
  266. \includegraphics[width=.9\textwidth]{media/gmail-logo.png}
  267. \end{figure}
  268. \end{varwidth}
  269. \hfill
  270. \begin{varwidth}{.3\textwidth}\pause
  271. \begin{figure}
  272. \centering
  273. \includegraphics[width=.9\textwidth]{media/k9-logo.png}
  274. \end{figure}
  275. \end{varwidth}
  276. \hfill
  277. \begin{varwidth}{.3\textwidth}\pause
  278. \begin{figure}
  279. \centering
  280. \includegraphics[width=.9\textwidth]{media/fairmail-logo.png}
  281. \end{figure}
  282. \end{varwidth}
  283. \end{frame}
  284. \begin{frame}[plain]{Resultate}
  285. \begin{itemize}\pause
  286. \item User Interface\pause
  287. \item chaquopy\pause
  288. \item Funktionalität\pause
  289. \item abschliessend
  290. \end{itemize}
  291. \end{frame}
  292. \begin{frame}[plain]{Was wir gelernt haben}
  293. \begin{varwidth}{.5\textwidth}
  294. \begin{figure}
  295. \centering
  296. \includegraphics[width=.95\textwidth]{media/monetary-success.jpeg}
  297. \end{figure}
  298. \end{varwidth}
  299. \hfill
  300. \begin{varwidth}{.5\textwidth}
  301. \begin{itemize}\pause
  302. \item Java\inlinegraphics{media/java-only-logo.png}\pause
  303. \item Android Apps\inlinegraphics{media/android-robot.png}\pause
  304. \item Android Studio\inlinegraphics{media/android-studio-logo.png}\pause
  305. \item Database \& SQL\inlinegraphics{media/database.png}\pause
  306. \item Gradle\inlinegraphics{media/gradle.png}\pause
  307. \item Zusammenarbeit\inlinegraphics{media/handschlag.jpeg}
  308. \end{itemize}
  309. \end{varwidth}
  310. \end{frame}
  311. \begin{frame}[plain]{persönliche Meinung: Simon}
  312. \begin{varwidth}{.4\textwidth}
  313. \begin{figure}
  314. \centering
  315. \includegraphics[width=.95\textwidth]{media/git-logo.png}
  316. \end{figure}
  317. \end{varwidth}
  318. \hfill
  319. \begin{varwidth}{.5\textwidth}
  320. \begin{itemize}\pause
  321. \item VCS $\rightarrow$ Git $\rightarrow$ GitHub\pause
  322. \item Treffen \& Absprachen \& VoIP\pause
  323. \item texdiary
  324. \end{itemize}
  325. \end{varwidth}
  326. \end{frame}
  327. \begin{frame}[plain]{persönliche Meinung: Noah}
  328. \begin{varwidth}{.4\textwidth}
  329. \begin{figure}
  330. \centering
  331. \includegraphics[width=.95\textwidth]{media/gradle-logo.png}
  332. \end{figure}
  333. \end{varwidth}
  334. \hfill
  335. \begin{varwidth}{.5\textwidth}
  336. \begin{itemize}\pause
  337. \item fehlende Erfahrung\pause
  338. \item Java Libraries\pause
  339. \item persönlicher \& beruflicher Vorteil
  340. \end{itemize}
  341. \end{varwidth}
  342. \end{frame}
  343. \begin{frame}[plain]{Zukunft: Wie geht es weiter?}
  344. \begin{figure}
  345. \centering
  346. \includegraphics[height=.7\textheight]{media/github-repo.jpg}
  347. \end{figure}
  348. \begin{itemize}
  349. \centering
  350. \item https://github.com/noahvogt/snailmail
  351. \item https://git.noahvogt.com/me/snailmail
  352. \end{itemize}
  353. \end{frame}
  354. \end{document}