benbot/presentation/main.tex

162 lines
3.5 KiB
TeX
Executable File

% !TeX program = xelatex
% !TeX encoding = UTF-8
\documentclass{beamer}
%-------------------------------------------------------
\usetheme[background=dark, progressbar=foot]{metropolis}
\title{Discord Chat Bot}
\subtitle{Asynchronous PHP}
\date{May 2, 2017}
\author{Benjamin Hamilton Harris}
\institute{Northern Michigan University}
\usepackage{multicol}
\begin{document}
\maketitle
\section{Introduction}
\begin{frame}{Discord}
Discord Chat Client
\begin{itemize}
\item Marketed towards gamers
\item Rich text chat
\item Silky smooth voice chat
\end{itemize}
\end{frame}
\begin{frame}{Discord API}
Discord exposes a REST-ful HTTP API
\begin{itemize}
\item Raw HTTP requests are cumbersome
\item Many wrapper libraries available
\item JavaScript, Python most popular
\end{itemize}
\end{frame}
\section{Project Info}
\begin{frame}{Technology Stack}
Technologies
\begin{itemize}
\item PHP 7
\item DiscordPHP API wrapper library
\item ReactPHP Promises for Async
\item Composer
\end{itemize}
\end{frame}
\begin{frame}{Project Background}
Proposal
\begin{itemize}
\item Started as passion project
\item General purpose chat bot
\item Rapidly growing feature set
\end{itemize}
\end{frame}
\section{Grading}
\begin{frame}{Possible Points}
\begin{multicols}{2}
\begin{itemize}
\item Get User Info [1 pts]
\item Get Profile Photo for arbitrary User [1 pts]
\item Get Server Info [2 pts]
\item Display Bot Status/Uptime [1 pts]
\item Send direct message to any user [1 pts]
\item Permissions for commands based on user's permissions [2 pts]
\item Talk to Cleverbot [3 pts]
\item Save images and retrieve them later [5 pts]
\item Save text and retrieve it later [2 pts]
\item Send me a text message [2 pts]
\item Send emails to a saved address for a user [2 pts]
\end{itemize}
\end{multicols}
\end{frame}
\begin{frame}{Possible Points, cont.}
\begin{multicols}{2}
\begin{itemize}
\item Internet lookups
\begin{enumerate}[--]
\item Weather for any city [3 pts]
\item Time for any city [3 pts]
\item Save a preferred city for each user for time and weather [2 pts]
\item Look up a random joke [2 pts]
\item \textbf{Send an image from Google Images [5 pts]}
\item Stream music from YouTube to voice channel [10 pts]
\end{enumerate}
\item Create and vote on polls [5 pts]
\item Chat games (TicTacToe, Hangman) [10 pts]
\item Text transform (emojis, unicode fonts, and ASCII art) [3 pts]
\item Roll an n-sided die [1 pts]
\item 8-Ball style fortunes [2 pts]
\end{itemize}
\end{multicols}
\end{frame}
\begin{frame}
\begin{center}
\Large\textbf{Demo Time!}
\end{center}
\end{frame}
\begin{frame}{Grading Scale}
63+ $\rightarrow$ \textbf{A}
56+ $\rightarrow$ B
49+ $\rightarrow$ C
42+ $\rightarrow$ D
35+ $\rightarrow$ F
\textbf{65/70 possible points from proposal achieved}
\end{frame}
\begin{frame}{Possible Extra Points}
Things I've done that might be worth more points!
\begin{itemize}
\item Edit and delete messages in the chat
\item Run a command line process and return stdout as a message
\item Evaluate arbitrary PHP code and return the results to the chat
\end{itemize}
\footnotesize I am the only user allowed to evaluate arbitrary code.
\end{frame}
\begin{frame}
\begin{center}
\Large\textbf{Any Questions?}
\end{center}
\end{frame}
\end{document}