Assemble by dragging
Objects snapped to optional grids and stored their position as fractions, keeping an answer stable as the artboard resized.
Earlier work · 2016–2019
PocketScholar was a full-stack science-learning platform I built before Code Mochi. It combined animated explanations, original scientific illustrations, and quizzes that went well beyond choosing A, B, or C.
The product
The goal was to make science feel less like reading a textbook and more like manipulating the ideas directly. A lesson could move from a video explainer to a diagram-building exercise, then ask for a calculation or a set of correct observations.
That required a content model flexible enough for very different interactions, a responsive artboard that behaved consistently across screen sizes, and a grading system that understood more than exact string matches.
The technical challenge
GreenSock powered data-driven lesson animation. React Draggable handled object placement, while a shared server-side pipeline graded every response model.
Objects snapped to optional grids and stored their position as fractions, keeping an answer stable as the artboard resized.
Text answers accepted normalized alternatives, while numerical answers supported configurable error tolerances.
Questions could enforce one choice per group or allow several correct observations across a responsive answer grid.
Correct work earned points and advanced the learner. Missed answers returned explanations before another question was selected for the level.
Under the hood
PocketScholar was deployed as a static React application backed by a GraphQL API on AWS. Authentication, payments, content, learner responses, observability, and local development were all part of the product—not separate demos.
Apollo Client, styled-components, GreenSock, and Storybook.
Node, Apollo Server, Serverless Framework, and Auth0.
S3, CloudFront, Stripe, Docker, Sentry, and AWS X-Ray.
What stayed with me
Storing positions proportionally made the same authored exercise work across changing artboard dimensions.
The client collected intent; the server owned correctness, points, feedback, and progression.
The interaction model had to serve the scientific idea instead of forcing every lesson into the same quiz template.
PocketScholar science archive
Preserved with their original 2016 publication dates. These historical versions have not yet been reviewed for current scientific or public-health guidance.
The biochemistry behind why lead contamination can cause damage throughout the body.
Read the archived articleWhy the sky appears blue—and how both the atmosphere and human vision shape what we see.
Read the archived articleA tour through atomic scale, electrostatics, and the puzzle that led toward quantum mechanics.
Read the archived articleHow quantized states and uncertainty help explain why electrons do not collapse into the nucleus.
Read the archived article