ATAnurag Thakurindevanuragt.hashnode.dev·13h ago · 2 min readGSoC 2026 Week 9: Making sync visible in the appLast week the backend side moved forward a lot. The server-wins conflict strategy is in place, and anything that cannot be safely merged is preserved in a local conflict_log so it is not lost. The Syn00
ATAnurag Thakurindevanuragt.hashnode.dev·Jul 12 · 2 min readGSoC 2026 Week 8: Wiring the queue into the actual UILast week's focus was building the offline sync engine itself, and it came together nicely. The queue is backed by SQLite, retries follow the exponential backoff schedule, and ConnectivityMonitor trig00
ATAnurag Thakurindevanuragt.hashnode.dev·Jul 5 · 3 min readGSoC 2026 Week 7: Midterm done, now building the offline queueLast week was a good one. I fixed the release build issues caused by R8 and got the midterm debug and release APK compiling cleanly. That was a relief because reflection-heavy native code can be annoy00
ATAnurag Thakurindevanuragt.hashnode.dev·Jun 29 · 2 min readGSoC 2026 Week 6: Bidirectional sync done, midterm milestone reachedThis was a big week and a satisfying one to wrap up. The full bidirectional sync engine is now complete. pullTrackedEntity fetches records from the local d2 database, pushEvent handles clinical events00
ATAnurag Thakurindevanuragt.hashnode.dev·Jun 21 · 2 min readGSoC 2026 Week 5: Infant push is done — now pulling data and mapping clinical eventsWeek 4 delivered the most satisfying milestone so far. End-to-end infant push is working through the d2 SDK tracker module. All 22 Dart model attributes are being mapped into the DHIS2 tracker payload00