I presume “constructive” means a computational algorithm is desired.
Assuming the chain complex $F$ over $\def\Z{{\bf Z}}\Z/2$ is bounded from below, we are going to construct by induction on $n$ a basis $E_n=A_n⊔B_n⊔C_n$ of $F_n$ with the following properties:
- $A_n$ is a basis of exact elements in $F_n$;
- $A_n⊔B_n$ is a basis of closed elements in $F_n$.
For sufficiently small $n$ we have $F_n=0$, which gives $A_n=B_n=C_n=∅$.
If $A_{n-1}$, $B_{n-1}$, $C_{n-1}$ have already been constructed,
take $A_n$ to be the image of $C_{n-1}$ under the differential.
Then extend $A_n$ to a basis $A_n⊔B_n$ of closed elements in $F_n$ using Gaussian elimination over $\Z/2$. Finally, extend $A_n⊔B_n⊔C_n$ to a basis of $F_n$ using Gaussian elimination again.
Now it is easy to lift $F$ to a chain complex over $\Z$: take the same basis elements and construct the corresponding differentials over $\Z$ as matrices with respect to these bases, where all entries are zero except for the entries corresponding to elements of $C_{n-1}$ mapping to elements of $A_n$, which we take to be 1.