[proofplan]
We prove the result by constructing limits and colimits of an arbitrary small diagram explicitly. Limits are realized as submodules of products, consisting of compatible families. Colimits are realized as quotients of direct sums by the submodule generated by the diagram relations. The universal properties of these two constructions give completeness and cocompleteness.
[/proofplan]
[step:Construct the limit as the module of compatible families]
Let $J$ be a small category, and let
\begin{align*}
F:J \to R\text{-}\mathsf{Mod}
\end{align*}
be a functor. For each object $j \in \operatorname{Ob}(J)$, write $F(j)$ for the corresponding left $R$-module, and for each morphism $\alpha:j \to k$ in $J$, write
\begin{align*}
F(\alpha):F(j) \to F(k)
\end{align*}
for the corresponding $R$-[linear map](/page/Linear%20Map).
Define the product left $R$-module
\begin{align*}
P := \prod_{j \in \operatorname{Ob}(J)} F(j),
\end{align*}
with addition and scalar multiplication defined coordinatewise. For each object $j \in \operatorname{Ob}(J)$, let
\begin{align*}
\pi_j:P \to F(j)
\end{align*}
denote the coordinate projection.
Define
\begin{align*}
L := \{x \in P : F(\alpha)(\pi_j(x)) = \pi_k(x) \text{ for every morphism } \alpha:j \to k \text{ in } J\}.
\end{align*}
The set $L$ is a left $R$-submodule of $P$. Indeed, if $x,y \in L$, $r \in R$, and $\alpha:j \to k$ is a morphism in $J$, then $R$-linearity of $F(\alpha)$ gives
\begin{align*}
F(\alpha)(\pi_j(x+y))
&= F(\alpha)(\pi_j(x)+\pi_j(y)) \\
&= F(\alpha)(\pi_j(x))+F(\alpha)(\pi_j(y)) \\
&= \pi_k(x)+\pi_k(y) \\
&= \pi_k(x+y),
\end{align*}
and
\begin{align*}
F(\alpha)(\pi_j(rx))
&= F(\alpha)(r\pi_j(x)) \\
&= rF(\alpha)(\pi_j(x)) \\
&= r\pi_k(x) \\
&= \pi_k(rx).
\end{align*}
Also $0 \in L$, since $F(\alpha)(0)=0$ for every morphism $\alpha$. Thus $L$ is a left $R$-module.
For each object $j \in \operatorname{Ob}(J)$, define
\begin{align*}
p_j:L \to F(j)
\end{align*}
by $p_j := \pi_j|_L$. Each $p_j$ is $R$-linear. By the definition of $L$, for every morphism $\alpha:j \to k$ in $J$,
\begin{align*}
F(\alpha)\circ p_j = p_k.
\end{align*}
Hence $(L,(p_j)_{j \in \operatorname{Ob}(J)})$ is a cone over $F$.
[/step]
[step:Verify the universal property of the constructed limit]
Let $M$ be a left $R$-module, and suppose that
\begin{align*}
q_j:M \to F(j)
\end{align*}
is an $R$-linear map for each $j \in \operatorname{Ob}(J)$ such that for every morphism $\alpha:j \to k$ in $J$,
\begin{align*}
F(\alpha)\circ q_j = q_k.
\end{align*}
Define
\begin{align*}
q:M \to P
\end{align*}
by
\begin{align*}
q(m) := (q_j(m))_{j \in \operatorname{Ob}(J)}
\end{align*}
for every $m \in M$. Since addition and scalar multiplication in $P$ are coordinatewise and every $q_j$ is $R$-linear, the map $q$ is $R$-linear.
For every $m \in M$ and every morphism $\alpha:j \to k$ in $J$,
\begin{align*}
F(\alpha)(\pi_j(q(m)))
&= F(\alpha)(q_j(m)) \\
&= q_k(m) \\
&= \pi_k(q(m)).
\end{align*}
Thus $q(m) \in L$ for every $m \in M$. Therefore $q$ factors through a unique $R$-linear map
\begin{align*}
\bar q:M \to L
\end{align*}
satisfying $p_j\circ \bar q=q_j$ for every object $j \in \operatorname{Ob}(J)$.
Uniqueness follows from the fact that elements of $L \subset P$ are determined by their coordinates: if $u:M \to L$ is another $R$-linear map with $p_j\circ u=q_j$ for every $j$, then for every $m \in M$ and every $j$,
\begin{align*}
\pi_j(u(m)) = p_j(u(m)) = q_j(m) = p_j(\bar q(m)) = \pi_j(\bar q(m)).
\end{align*}
Hence $u(m)=\bar q(m)$ for every $m \in M$, so $u=\bar q$. Therefore $L$ is the limit of $F$.
[/step]
[step:Construct the colimit as a quotient of a direct sum by diagram relations]
Using the same small category $J$ and functor
\begin{align*}
F:J \to R\text{-}\mathsf{Mod},
\end{align*}
define the direct sum left $R$-module
\begin{align*}
S := \bigoplus_{j \in \operatorname{Ob}(J)} F(j).
\end{align*}
For each object $j \in \operatorname{Ob}(J)$, let
\begin{align*}
\iota_j:F(j) \to S
\end{align*}
be the canonical $R$-linear inclusion into the $j$-th summand.
Let $N$ be the left $R$-submodule of $S$ generated by all elements of the form
\begin{align*}
\iota_k(F(\alpha)(x))-\iota_j(x),
\end{align*}
where $\alpha:j \to k$ is a morphism in $J$ and $x \in F(j)$. Define the quotient left $R$-module
\begin{align*}
C := S/N,
\end{align*}
and let
\begin{align*}
\rho:S \to C
\end{align*}
be the quotient map. For each object $j \in \operatorname{Ob}(J)$, define
\begin{align*}
c_j:F(j) \to C
\end{align*}
by $c_j := \rho \circ \iota_j$.
For every morphism $\alpha:j \to k$ in $J$ and every $x \in F(j)$,
\begin{align*}
c_k(F(\alpha)(x))-c_j(x)
&= \rho(\iota_k(F(\alpha)(x)))-\rho(\iota_j(x)) \\
&= \rho(\iota_k(F(\alpha)(x))-\iota_j(x)) \\
&= 0,
\end{align*}
because $\iota_k(F(\alpha)(x))-\iota_j(x) \in N$. Hence
\begin{align*}
c_k\circ F(\alpha)=c_j.
\end{align*}
Thus $(C,(c_j)_{j \in \operatorname{Ob}(J)})$ is a cocone under $F$.
[/step]
[step:Verify the universal property of the constructed colimit]
Let $M$ be a left $R$-module, and suppose that
\begin{align*}
d_j:F(j) \to M
\end{align*}
is an $R$-linear map for each $j \in \operatorname{Ob}(J)$ such that for every morphism $\alpha:j \to k$ in $J$,
\begin{align*}
d_k\circ F(\alpha)=d_j.
\end{align*}
By the universal property of the direct sum, there is a unique $R$-linear map
\begin{align*}
d:S \to M
\end{align*}
such that $d\circ \iota_j=d_j$ for every object $j \in \operatorname{Ob}(J)$.
We show that $N \subseteq \ker d$. For every generator $\iota_k(F(\alpha)(x))-\iota_j(x)$ of $N$, where $\alpha:j \to k$ and $x \in F(j)$, we have
\begin{align*}
d(\iota_k(F(\alpha)(x))-\iota_j(x))
&= d_k(F(\alpha)(x))-d_j(x) \\
&= 0,
\end{align*}
because $d_k\circ F(\alpha)=d_j$. Since $N$ is generated by these elements and $d$ is $R$-linear, it follows that $N \subseteq \ker d$.
Therefore $d$ factors uniquely through the quotient map $\rho:S \to C$, giving a unique $R$-linear map
\begin{align*}
\bar d:C \to M
\end{align*}
such that
\begin{align*}
\bar d\circ \rho=d.
\end{align*}
For each object $j \in \operatorname{Ob}(J)$,
\begin{align*}
\bar d\circ c_j
&= \bar d\circ \rho \circ \iota_j \\
&= d\circ \iota_j \\
&= d_j.
\end{align*}
If $u:C \to M$ is another $R$-linear map satisfying $u\circ c_j=d_j$ for every $j$, then
\begin{align*}
u\circ \rho\circ \iota_j = d_j = \bar d\circ \rho\circ \iota_j
\end{align*}
for every object $j$. Since the images of the inclusions $\iota_j$ generate the direct sum $S$, we get $u\circ \rho=\bar d\circ \rho$. Since $\rho$ is surjective, $u=\bar d$. Therefore $C$ is the colimit of $F$.
[/step]
[step:Conclude completeness and cocompleteness]
The category $R\text{-}\mathsf{Mod}$ has a limit for every small diagram $F:J \to R\text{-}\mathsf{Mod}$ by the construction of compatible families inside the product. Hence $R\text{-}\mathsf{Mod}$ is complete.
The category $R\text{-}\mathsf{Mod}$ has a colimit for every small diagram $F:J \to R\text{-}\mathsf{Mod}$ by the quotient of the direct sum by the diagram-relation submodule. Hence $R\text{-}\mathsf{Mod}$ is cocomplete. This proves that $R\text{-}\mathsf{Mod}$ is complete and cocomplete.
[/step]