Disclaimer: this below may be wrong as I know nothing about design matrices, but is mainly an explanation of how I interpret the first linked website and the Matlab page on full factorial designs.
Edit: fixed small mistake noticed by Will Orrick
First, a Hadamard matrix is defined as any square matrix $M\in \{-1,1\}^{n\times n}$ in which every two columns are pairwise orthogonal (meaning $a\cdot b=0$ for any two distinct columns $a,b$). These matrices have many interesting properties, in particular their determinant is as large as it can be (the inequality from Hadamard's inequality holds with equality).
Existence of Hadamard matrices for arbitrary $n$ is an interesting and well-studied problem, but for now we only need to know that there are particularly nice constructions of Hadamard matrices if $n$ is a power of 2.
There seem to be two similar definitions of two-level full factorial design matrix. The easiest way to define it is probably just as a $2^k\times k$ matrix of $0$'s and $1$'s which just lists the numbers from $0$ to $2^k-1$ in binary:
$$
M=\begin{bmatrix}0 & 0 & 0\\
0 & 0 & 1\\
0 & 1 & 0\\
0 & 1 & 1\\
1 & 0 & 0\\
1 & 0 & 1\\
1 & 1 & 0\\
1 & 1 & 1\\
\end{bmatrix}
$$
Note: this is what Matlab does. I am not sure if the order of columns and rows matters for naming or the application, but it does not matter for this post.
Another way of writing a two-level full factorial design matrix is to use $1$ and $-1$ instead of $1$ and $0$: $M'=2M-J$ where $J$ is the all ones matrix.
Name the columns of $M'$ as $m_1,m_2,\ldots, m_k$. Every column of the model matrix/analysis matrix then consists of the elementwise product of some subset of $\{m_1,m_2,\ldots, m_k\}$ (I am not sure if it necessarily contains all subsets). For the empty subset we just write a column of ones.
Since there are $2^k$ possible subsets of $\{m_1,m_2,\ldots, m_k\}$, the result is a $2^k\times 2^k$ matrix of $-1$'s and $1$'s. An example for $k=2$:
$$
D=\begin{bmatrix}
\emptyset & m_1 & m_2 & m_1*m_2\\\hline
1 & -1 & -1 & 1\\
1 & -1 & 1 & -1\\
1 & 1 & -1 & -1\\
1 & 1 & 1 & 1
\end{bmatrix}
$$
We can prove that the matrix $D$ is always a Hadamard matrix. Take any two columns of $D$ corresponding to distinct subsets $S,T\subseteq \{m_1,m_2,\ldots, m_k\}$. Call these columns $m_S$ and $m_T$. We have
$$m_S\cdot m_T=\sum_{i=1}^{2^k}(m_S)_i(m_T)_i=\sum_{i=1}^{2^k}(m_{S\Delta T})_i=0$$
Here $S\Delta T$ is the symmetric difference. The symmetric difference is nonempty, and $(m_{S\Delta T})_i=1\Leftrightarrow (m_{S\Delta T})_{i+2^{k-u}}=-1$ for any $m_{u}\in S\Delta T$ and $i\leq 2^k-2^{k-u}$. It follows from this that exactly half of the elements of $m_{S\Delta T}$ are equal to $1$ (as we can make a bijection between $1$'s and $-1$'s), and therefore $\sum_{i=1}^{2^k}(m_{S\Delta T})_i=0$.
I hope this helps, and I would also recommend looking at original sources about design matrices (I could not get much wiser from the thesis that was linked, as it does not properly introduce the subjects it discusses).