💡 Inspiration

FormSense was inspired by my real-life experiences helping others navigate frustrating form systems. Most personally, my mother recently had a stroke. Being unable to clearly communicate or advocate for herself made something as simple as filling out a form a stressful, overwhelming task.

Around the same time, I was job hunting and had to complete repetitive forms using clunky chatbots with poor user interfaces. The experience was tedious and inefficient.

Currently, I assist elderly and disabled individuals in completing paperwork — often under time pressure, often without the accessibility tools they need. These moments highlighted the urgent need for something better: a smarter, more human-centered form system.

🛠️ How I Built It

FormSense is a standalone Angular 19 demo application integrated with Google’s Gemini API. I used Angular Material to ensure strong accessibility and responsiveness. The AI layer parses narrative descriptions into structured data, validates user inputs, and offers helpful, human-like feedback.

Key features include:

  • Natural language form entry
  • Real-time AI validation with conversational messages
  • Completion scoring to assess form confidence
  • An accessible and responsive layout

📚 What I Learned

  • How to build with Angular 19’s standalone component architecture
  • Using signals for state management instead of services
  • Designing AI prompts to return strict JSON for app use
  • Building with accessibility and real-world edge cases in mind

⚠️ Challenges Faced

  • My laptop broke in the middle of the build. I had to rebuild the entire project from scratch on another machine in short amount of time which means not the best written code, relying on old school Angular Development to avoid relying on heavy research with Documentation and Ai assistants. Common module and RXJS maybe not preferred but tried and true.
  • Getting the Gemini API to return strict JSON reliably took significant trial-and-error ai outputs are unpredictable and finding the right prompts to ensure style consistency and field inputs are probably why we havent seen Ai used in this way surprisingly.
  • Styling validation messages to feel helpful (not robotic) while also highlighting errors, its the same issue with getting srtict json keeping consistent feedback while also justifying not using hard code error messages was hard.
  • Managing inputs across components using Angular signals instead of traditional services mainly in my original codebase I wanted to use this project to learn more modern practices in Angular not so much in my current repo accept for in the form-view component where I did take the time to implement signals. If you have any suggestions or insights on effectively using Angular signals for input management across components, I'd be very interested to connect and discuss them.

FormSense is still a demo but the vision is to create an application where individuals can freely express themselves, especially when clear communication matters most.

Built With

Share this project:

Updates