DNAStrands
My BSc thesis: a web application that encodes information into DNA sequence designs. The one repository here you can open and read.
What it is
DNA can carry arbitrary information in the same four-letter alphabet biology uses, and there is real research interest in it because it is extraordinarily dense and stable compared with magnetic or solid-state media. DNAStrands converts input into bits and encodes those bits as nucleotide sequences ready for a synthesis device, and it generates DNA tags for marking physical objects.
Around that sits what a real application needs: registration and JWT authentication with refresh, a per-user history of everything generated, JSON export, validated forms with errors bound to their fields, light and dark themes, and a containerised development environment.
Why it is here
It is from 2022 and it is a thesis project, so it counts for less than recent professional work. It stays because most of my professional work is closed-source, and this repository, with the full thesis, is the one a reviewer can open and read.
The repository shows a commit from January 2025. That was a bug fix: the user-history screen was displaying incorrectly, and I fixed it and updated the README in the same sitting. Nothing else changed.
It is no longer hosted, and it does not run as the repository stands today. The code and the thesis are there to read, not to try.
What I would do differently
It is 2022 React: hand-rolled form state and data fetching in effects. Today I would use hooks throughout, a server-state library, schema-driven validation written once for both sides, and React's own form primitives for submission state. The Django and JWT choices I would keep.