The Prototype

The Issue & Opportunity

The Dissertation Tracker has been an on-and-off idea for several semesters, with quite a few iterations over the last three months. The core problem it addresses has always been the same: autoethnographic research requires systematic self-documentation, but the act of documentation can feel artificial — a bureaucratic interruption to the thinking it’s supposed to capture.

The opportunity this class created was to take that nagging idea seriously. Not just as a journal or a form, but as real infrastructure — a web application backed by a graph database, with an AI research partner built in, that could generate dissertation data as a byproduct of authentic reflection rather than in spite of it. The tracker became the method, not just a method tool.

System Architecture

How the pieces connect

Browser / UI Converse  ·  Timeline  ·  Review  ·  Graph View localStorage UI source of truth Cloudflare Worker dissertation-neo4j.math-generator.workers.dev POST /entry GET /entries POST /chat POST /chat/extract GET /entries/unapproved POST /entry/:id/approve GET /health Neo4j Aura TrackerEntry  ·  Era Theme  ·  Conversation Anthropic Claude API conversation + extraction

Database Schema

Neo4j graph model — nodes and relationships

Node Properties Notes
TrackerEntry id
type
title
content
context
tags[]
emotionalResponse
date
createdAt
approved
Core research artifact
Era name As a Student / Teacher / Researcher / Personal
Theme name Auto-created from entry tags
Conversation id
entryId
messages (JSON)
summary
turnCount
createdAt
Claude API conversation transcript
(TrackerEntry)-[:SITUATED_IN]->(Era) (TrackerEntry)-[:SURFACES]->(Theme) (Conversation)-[:REFLECTS_ON]->(TrackerEntry)

The graph structure is not incidental — it mirrors the dissertation’s theoretical framework. Entries are not rows in a table; they are nodes in a network of lived experience.

Experience Designing & Developing

“I wrote the most in the tracker when I was in the middle of building something — not when I set aside time to reflect. The tracker didn’t just record what I was doing; building it was what made me understand what I was doing.”

The development process unfolded across the semester in overlapping layers — sometimes a research question, sometimes a debugging session, often both at the same time. The technical stack grew incrementally: localStorage first, then a Cloudflare Worker to proxy the Anthropic API, then Neo4j Aura as a graph backend, then Claude API integration embedded directly in the reflection workflow.

Most of this was built while sick, under deadline, across too many browser tabs — which turned out to be appropriate. The messiness of the development process became its own autoethnographic data. The build logs in the tracker document not just what was built, but what it felt like to build it. The frustrations with git merge conflicts, wrong API endpoints, and CORS errors are entries in the dataset now.

What I Learned

Patience

Both technical and methodological. Debugging a wrong API endpoint at midnight while sick is not so different from sitting with an analysis that won’t resolve. Both require you to trust that the answer is findable if you keep looking carefully.

Vibe Coding as a Research Method

Learning to effectively use AI-assisted development — Claude and Claude Code for the heavy architectural lifts — made it possible to build real infrastructure in a semester that would otherwise have taken much longer. This is not a shortcut. It’s a skill: knowing what to ask, how to verify, when to push back, and when to trust the output.

Code as Art

This process reignited something. Coding stopped feeling like a means to an end and started feeling like the thing itself — a way of thinking that makes certain kinds of understanding possible. The tracker is not a tool for the dissertation. It is the dissertation, in part.

Next Steps

Immediate
  • Start actually using it — the infrastructure is built, the research should begin
  • Run schema constraints in Neo4j Aura console to set up proper uniqueness indexes
  • Complete the conversation-first entry flow: Converse tab, extraction pipeline, and Review/Approve workflow
  • Further develop Claude’s ability to prompt based on database content as well as being able to pick up a conversation I’ve told it to “pin”
Future
  • Allow other users to comment on memories or entries they are tagged in — turning the tracker from a solo instrument into a collaborative memory
  • Build out the ingestion pipeline: written artifacts, old photos, test scores, and web content → Claude API extraction → Neo4j nodes -- In progress May 3rd, 2026
  • Use Claude Co-work and Claude Code to consume archival data and load into the database
  • Connect tracker data to the joint display as the quantitative strand matures
  • Create iOS version of the web application for portability and ease of use -- Completed May 1st, 2026

Also Worth Seeing