[{"data":1,"prerenderedAt":189},["ShallowReactive",2],{"content-blog-index":3,"content-blog-projects":4},[],[5,76,131],{"id":6,"title":7,"body":8,"description":62,"extension":63,"image":64,"link":65,"meta":66,"navigation":67,"path":68,"seo":69,"stack":70,"status":73,"stem":74,"__hash__":75},"projects\u002Fprojects\u002Fdigital-twin.md","Digital Twin",{"type":9,"value":10,"toc":57},"minimark",[11,26,30,33,36,41],[12,13,14],"project-summary",{},[15,16,17,18,25],"p",{},"Real-time mapping of port assets using a ",[19,20,24],"a",{"href":21,"rel":22},"https:\u002F\u002Fwww.mapbox.com\u002F",[23],"nofollow","Mapbox","-powered digital twin, enabling precise localization and efficient logistics management.",[27,28,7],"h1",{"id":29},"digital-twin",[15,31,32],{},"The Digital Twin project creates a live digital representation of an inland port, mapping loading units and inventory systems so operators can track and manage assets with precision.",[15,34,35],{},"The core challenge was bridging physical port operations with a web-based interface that stays accurate as assets move throughout the day.",[37,38,40],"h2",{"id":39},"what-it-covers","What it covers",[42,43,44,48,51,54],"ul",{},[45,46,47],"li",{},"Interactive Mapbox-based map of the port layout",[45,49,50],{},"Real-time localization of loading units and inventory",[45,52,53],{},"Asset management interface for port operators",[45,55,56],{},"Integration with existing logistics data sources",{"title":58,"searchDepth":59,"depth":59,"links":60},"",2,[61],{"id":39,"depth":59,"text":40},"A digital twin of an inland port that maps loading units and inventory systems using Mapbox and Nuxt for precise asset localization and management.","md","\u002Fimages\u002Fdigital_twin.png",null,{},true,"\u002Fprojects\u002Fdigital-twin",{"title":7,"description":62},[71,24,72],"Nuxt","Logistics","Working on","projects\u002Fdigital-twin","VOJS25A3AL9A7hf2h_WePTNO_7sYDVfdiim2ZcPFEHc",{"id":77,"title":78,"body":79,"description":58,"extension":63,"image":121,"link":65,"meta":122,"navigation":67,"path":123,"seo":124,"stack":125,"status":128,"stem":129,"__hash__":130},"projects\u002Fprojects\u002Fphd.md","PhD - Personal Hope Dashboard",{"type":9,"value":80,"toc":118},[81,92,96,99,102,104],[12,82,83],{},[15,84,85,86,91],{},"A hope tracker for PhD students to log and visualize their daily hope level across the thesis journey. The idea came from the ",[19,87,90],{"href":88,"rel":89},"https:\u002F\u002Fresearch.wmz.ninja\u002Fprojects\u002Fphd\u002Findex.html",[23],"phd simulator"," from Mianzhi Wang.",[27,93,95],{"id":94},"phd-personal-hope-dashboard","PhD — Personal Hope Dashboard",[15,97,98],{},"The Personal Hope Dashboard gives PhD students a simple way to track how their hope level changes day to day across the long arc of thesis work.",[15,100,101],{},"The idea came from the PhD Simulator and the very real emotional ups and downs that come with academic research. Logging a single value each day makes it easy to spot patterns and reflect on the journey over time.",[37,103,40],{"id":39},[42,105,106,109,112,115],{},[45,107,108],{},"Daily hope level input and storage",[45,110,111],{},"Time-series visualization of hope over the thesis timeline",[45,113,114],{},"A lightweight, low-friction interface designed for daily use",[45,116,117],{},"Inspired by the PhD Simulator project",{"title":58,"searchDepth":59,"depth":59,"links":119},[120],{"id":39,"depth":59,"text":40},"\u002Fimages\u002Fphd.png",{},"\u002Fprojects\u002Fphd",{"title":78,"description":58},[71,126,127],"Timeseries","Research","Completed","projects\u002Fphd","9sF9ln85fULJ6ujZakg-hdWwC8m7ofuKC8CIimav57w",{"id":132,"title":133,"body":134,"description":178,"extension":63,"image":179,"link":65,"meta":180,"navigation":67,"path":181,"seo":182,"stack":183,"status":186,"stem":187,"__hash__":188},"projects\u002Fprojects\u002Fpkt-money.md","PktMoney",{"type":9,"value":135,"toc":175},[136,142,145,148,152,172],[15,137,138,141],{},[139,140,133],"strong",{}," is a lightweight web application that helps parents track their children's pocket money in a digital world.",[15,143,144],{},"As cash becomes less common and children increasingly interact with digital payments from an early age, PktMoney provides a simple way to manage virtual savings. Parents can easily add or subtract money from a child's digital piggy bank while always having an up-to-date overview of the current balance.",[15,146,147],{},"Every transaction is stored in a history, allowing both parents and children to see how the money was earned, saved, or spent. This creates transparency and encourages conversations about responsible money management.",[37,149,151],{"id":150},"tech-stack","Tech Stack",[42,153,154,160,166],{},[45,155,156,159],{},[139,157,158],{},"Frontend:"," Nuxt",[45,161,162,165],{},[139,163,164],{},"Database & Backend:"," Supabase",[45,167,168,171],{},[139,169,170],{},"Architecture:"," Single Page Application (SPA)",[15,173,174],{},"The application follows a database-centric architecture: all business logic is implemented as PostgreSQL RPC functions inside Supabase. The frontend acts as a thin client, ensuring that every state change is validated and executed atomically by the database. This approach minimizes client-side complexity and prevents inconsistent application state.",{"title":58,"searchDepth":59,"depth":59,"links":176},[177],{"id":150,"depth":59,"text":151},"A small web app that allows parents to keep track of the pocket money of their kids. This came in handy for us when kids started to sell old toys on yard sales or ebay.","\u002Fimages\u002Fpkt-money.png",{},"\u002Fprojects\u002Fpkt-money",{"title":133,"description":178},[71,184,185],"Family","Supabase","Adding Features","projects\u002Fpkt-money","aGxeCnabZuIQA9Scef1TKxDcZd8MtdIe6bdoCmwuZvQ",1784665856024]