summaryrefslogtreecommitdiff
path: root/iadocs/critc_development.tex
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--iadocs/critc_development.tex84
1 files changed, 84 insertions, 0 deletions
diff --git a/iadocs/critc_development.tex b/iadocs/critc_development.tex
index e69de29..eaa9e4c 100644
--- a/iadocs/critc_development.tex
+++ b/iadocs/critc_development.tex
@@ -0,0 +1,84 @@
+\input{header.inc}
+
+\title{Criterion C: Development}
+
+\begin{document}
+\maketitle
+
+% Remember to demonstrate algorithmic thinking.
+
+\section{Structure and justification}
+
+\section{Algorithmic thinking}
+
+\section{Development techniques}
+
+\section{Existing tools}
+
+The following tools, libraries, and other materials were used in the
+development of this product.
+
+\begin{itemize}
+ \item The \href{https://go.dev}{Go programming language}'s
+ \href{https://go.dev/ref/spec}{specification} was referred to,
+ especially for documentation on how channel operations work;
+ its GC toolchain (the most widely-used reference
+ implementation) is used as the compiler during development and
+ production; its standard library is used extensively in the
+ program.
+
+ \item \href{https://gobyexample.com}{Go by Example} was referred to for
+ documentation on command-line flags and contexts.
+
+ \item \href{https://developer.mozilla.org/en-US/}{MDN Web Docs} was
+ used as my primary source of JavaScript documentation.
+
+ \item \href{https://godocs.io}{A hosted fork of gddo} was used as my
+ primary source of Go documentation, along with using the
+ \texttt{go doc} command as part of the GC toolchain.
+
+ \item \href{https://git.sr.ht/~emersion/go-scfg}{scfg}
+ written by \href{https://emersion.fr}{Simon Ser} is used to
+ parse configuration files.
+
+ \item \href{https://github.com/MicahParks/keyfunc}{keyfunc}
+ written by \href{https://micahparks.com/}{Micah Parks} is used
+ to update the JSON Web Key Set to validate JSON Web Tokens for
+ user authentication.
+
+ \item \href{https://github.com/coder/websocket}{websocket} maintained
+ by \href{https://coder.com/}{coder} is used for bi-directional
+ communication.
+
+ \item A minimal variant of the
+ \href{https://www.rfc-editor.org/rfc/rfc1459#section-2.3}{RFC1459
+ IRC message format} is used as the message format in
+ client-server communication.
+
+ \item \href{https://github.com/golang-jwt/jwt}{golang-jwt} is used to
+ parse and validate JSON Web Tokens for user authentication.
+
+ \item \href{https://github.com/google/uuid}{uuid} by Google is used to
+ generate
+ \href{https://www.rfc-editor.org/rfc/rfc9562.html}{UUIDs}
+ during testing.
+
+ \item \href{https://github.com/jackc/pgx}{pgx} by
+ \href{https://jackchristensen.com/}{Jack Christensen} is used
+ to establish a connection with the PostgreSQL database backend.
+
+ \item \href{https://www.postgresql.org/}{PostgreSQL} is used as a
+ database backend.
+
+ \item \href{https://golangci-lint.run/}{golangci-lint} is used as a
+ linter to detect programming errors.
+
+ \item \href{https://neovim.io/}{neovim} is used as a text editor; its
+ LSP client was used to connect to
+ \href{https://pkg.go.dev/golang.org/x/tools/gopls}{gopls} for
+ error detection and documentation provision while editing code.
+
+\end{itemize}
+
+
+\end{document}