What We Learned

Through our development journey at Garuda Hacks 7.0, we gained invaluable insights into designing medical technology centered around the nuanced needs of neurodivergent and highly vulnerable populations, specifically those with EUPD/BPD. We quickly learned that interfaces built for mental health cannot follow generic UX conventions. We discovered the clinical significance of color psychology, intentionally adopting desaturated cool tones, specifically muted greens and blues, which are empirically proven to lower autonomic nervous system arousal and soothe patients during hyperarousal states or acute emotional crises. Furthermore, we deepened our understanding of clinical workflows, learning how to break down complex therapeutic frameworks like the Stanley-Brown Safety Planning Intervention (SPI) and TIPP physical regulation skills into discrete, actionable steps that drastically minimize cognitive load when a patient is in their most fragile psychological state.

How We Built It

To bring CuraMind to life, team KucingTerbang engineered a robust three-tier architecture designed for cross-platform responsiveness. We utilized Flutter for the client application to ensure a fluid experience on both the patients' mobile devices and the clinicians' web dashboard. The backend API layer was architected using Node.js and Express in TypeScript, coupled with Prisma ORM to communicate with a PostgreSQL database hosted on Supabase. Protecting highly sensitive psychiatric data was our absolute priority; therefore, we implemented field-level encryption at the API layer using AES-256-GCM via the Node.js crypto module to encrypt coping entries and clinical session notes before they were stored. This was reinforced by Supabase Auth and strict PostgreSQL Row-Level Security (RLS) policies, guaranteeing that patient logs remain entirely confidential and isolated.

Challenges

Interestingly, our greatest obstacle during the hackathon did not stem from implementing cryptographic algorithms or integrating AI runtime features; rather, it was the chaotic reality of repository code management. Because our team members were unaccustomed to collaborating simultaneously on a single, shared codebase without a rigid monorepo framework, we constantly ran into exhausting GitHub merge conflicts. There were stressful stretches where backend routing endpoints and core Flutter shell widgets collided repeatedly as multiple members pushed feature updates at the exact same time. Overcoming this hurdle forced us to rapidly mature our development workflow; we learned to communicate with tactical precision, strictly enforce git branch boundaries, and run frequent, incremental codebase syncs to preserve the structural integrity of our application.

Share this project:

Updates