This paper studies the problem of encoding messages into sequences which can
be uniquely recovered from some noisy observations about their substrings. The
observed reads comprise consecutive substrings with some given minimum overlap.
This coded reconstruction problem has applications to DNA storage. We consider
both single-strand reconstruction codes and multi-strand reconstruction codes,
where the message is encoded into a single strand or a set of multiple strands,
respectively. Various parameter regimes are studied. New codes are constructed,
some of whose rates asymptotically attain the upper bounds.