Inspiration

The spark for NotteChat came from my passion for making knowledge accessible, especially for students and educators who juggle diverse document formats like legacy Word .doc files, modern .docx, PDFs, and Google Docs. I envisioned a Flutter app where users could paste a document URL and instantly chat with its content, democratizing learning in a vibrant, user-friendly interface.

The Perplexity Hackathon ignited my excitement, as its focus on knowledge-seeking and the Perplexity Sonar API aligned perfectly with NotteChat’s mission. Inspired by my previous viral Flutter projects (e.g., VibeCraft, MelodyMuse), I saw an opportunity to blend NotteChat’s document processing with Sonar’s real-time, cited AI answers, creating a “Perplexity for Document-Based Learning” to empower users globally.

What it does

NotteChat is an innovative Flutter app that transforms how users interact with documents. Users can extract text and engage in AI-powered chats about the content by pasting URLs for Word (.doc, .docx), PDF, or Google Docs. For the Perplexity Hackathon, we integrated the Perplexity Sonar API to summarize documents and answer queries with real-time, cited responses, enhancing NotteChat’s educational and productivity value. With offline .doc support and real filename extraction, NotteChat democratizes access to knowledge for students, educators, and professionals.

How we built it

NotteChat’s development was a structured yet creative process

Foundation

  • Built NotteChat in Flutter/Dart for cross-platform support, using syncfusion_flutter_pdf, archive, and xml for .docx and PDF parsing.
  • Implemented UrlHelper.dart to fetch and process .docx, PDF, and Google Docs URLs, extracting real filenames from Content-Disposition headers or Google Docs metadata.
  • Added Firebase analytics to track document types and user engagement

Offline .doc Support

  • Implemented offline .doc processing in Flutter, avoiding server-side conversion.
  • I developed a custom binary parser in UrlHelper.dart to extract ASCII text from .doc files, handling legacy formats without new dependencies.
  • Added error handling for unsupported .doc files, suggesting external conversion to .docx or PDF, ensuring a user-friendly experience.

Sonar API Integration

  • Inspired by the hackathon entry decision, I integrated the Perplexity Sonar API for document summarization and query answering.
  • Created SonarService.dart to send HTTP POST requests with document text (from UrlHelper) and user queries, using Sonar’s quick search for summaries and Reasoning mode for complex questions (e.g., “Analyze this report”).

Hackathon Submission Prep

  • Crafted a detailed README.md outlining NotteChat’s features, Sonar integration, and setup (Flutter, Firebase, Sonar API key).
  • Planned a 3-minute demo video showing .doc summarization, Google Docs filename extraction, and cited Sonar responses.
  • Set up a GitHub repo for judges (james.liounis@perplexity.ai, testing@devpost.com), ensuring a clean codebase with UrlHelper.dart, SonarService.dart, and ChatScreen.dart.

Testing and Polish

  • Tested on iOS and Android with sample .doc, .docx, PDF, and Google Docs URLs, verifying offline .doc parsing and Sonar response accuracy.
  • Optimized performance for large files (>10MB) with loading dialogs and ensured Firebase logged sonar_query and document_type_used events.

Challenges we ran into

Building NotteChat wasn’t without hurdles:

  • Legacy .doc Parsing: The proprietary .doc format lacked Dart libraries, so my basic ASCII parser missed Unicode text and complex formatting. I mitigated this with clear error messages suggesting .docx/PDF conversion, balancing functionality and time constraints.

  • Sonar API Learning Curve: Adapting to Sonar’s query structure and modes (search, Reasoning) required rapid learning via Perplexity’s documentation. Testing with sample queries ensured robust integration.

  • Time Management: Balancing hackathon deadlines (May 28, 2025) with other projects (e.g., Flutter tutorials) was tough. I prioritized Sonar integration and demo video production, leveraging NotteChat’s existing codebase.

  • Cross-Platform Stability: Ensuring .doc parsing and Sonar API calls worked on iOS and Android demanded rigorous testing. I used Flutter’s packages and Dart’s ByteData to maintain consistency.

  • Demo Video: Crafting a concise 3-minute video to showcase .doc summarization, Google Docs support, and Sonar citations was challenging. I planned a clear script (pasting URLs, showing responses) to keep it engaging.

Accomplishments that we're proud of

Here are the accomplishments we’re most proud of:

  • Innovative Document Processing: Built a robust Flutter app that processes Word (.doc, .docx), PDF, and Google Docs URLs, with a custom offline .doc parser to handle legacy files without external dependencies, making knowledge accessible to all.

  • Seamless Sonar API Integration: Integrated the Perplexity Sonar API to summarize documents and answer queries with real-time, cited responses, and enhanced NotteChat’s educational value with transparent, trustworthy answers.

  • Real Filename Extraction: Engineered a system to extract accurate document names from Content-Disposition headers and Google Docs metadata, creating intuitive session titles (e.g., “ProjectProposal.pdf”) for a polished user experience.

  • Cross-Platform Excellence: Delivered a vibrant, cross-platform app using Flutter, ensuring NotteChat runs smoothly on iOS, Android, with a user-friendly UI featuring intuitive onboarding

  • User-Centric Error Handling: Designed clear, actionable error messages for unsupported .doc files, suggesting .docx or PDF conversion, which empowers users and maintains NotteChat’s approachable vibe.

  • Robust Analytics: Implemented Firebase analytics to track document types and Sonar API usage, providing insights to refine the app

  • Hackathon-Ready Submission: Crafted a compelling submission with a detailed README, a 3-minute demo video plan, and a private GitHub repo, showcasing NotteChat’s technical and narrative strengths in the AI and Machine Learning category.

These accomplishments reflect our dedication to building a tool that empowers students, educators, and professionals to engage with documents in a new, AI-driven way. NotteChat’s blend of legacy support, cutting-edge AI, and vibrant design makes us proud to share it with the Perplexity Hackathon community!

What we learned

Building NotteChat for the hackathon taught me invaluable lessons:

  • Document Parsing: Crafting an offline .doc parser in Dart revealed the complexities of binary file formats, pushing me to balance simplicity with functionality.

  • Sonar API Power: Integrating the Sonar API showed me how real-time web access and Reasoning mode can elevate AI responses, especially for educational use cases.

  • Flutter’s Versatility: Deepening my Flutter expertise, I learned to optimize cross-platform performance (iOS, Android) while maintaining a polished UX with vibrant onboarding.

  • User-Centric Design: Feedback from friends emphasized intuitive error messages (e.g., suggesting .doc conversion) and real filename extraction, shaping NotteChat’s user focus.

  • Hackathon Strategy: Structuring a compelling submission—README, demo video, and Devpost form—taught me to showcase technical and narrative strengths effectively.

What's next for NotteChat

NotteChat’s journey doesn’t end with the Perplexity Hackathon. We’re excited to build on our AI-powered document chat platform, leveraging its robust features (offline .doc parsing, .docx, PDF, Google Docs URL support, and Perplexity Sonar API integration) to reach more users. Our next steps focus on monetization, web support, and running ads for promotions to users, ensuring NotteChat grows into a sustainable, impactful tool for students, educators, and professionals.

  • Enhanced Monetization: Strengthen our subscription model ($4.99/month after a 3-day free trial) by introducing tiered plans, such as a premium tier with unlimited Sonar API queries and advanced analytics. Offer in-app purchases for one-time document processing for non-subscribers, boosting revenue while maintaining accessibility.

  • Robust Web Support: Optimize NotteChat’s Flutter-based web app for broader reach, ensuring seamless .doc parsing, Sonar-powered chats, and UI performance in browsers. Add progressive web app (PWA) capabilities to enable offline access and app-like experiences, targeting users on desktops and low-bandwidth devices.

  • Targeted Ad Promotions: Launch ad campaigns on platforms like Google Ads, LinkedIn, and TikTok to attract users, highlighting NotteChat’s unique document chat and Sonar API summarization. Use Firebase analytics to personalize in-app ads (e.g., promoting premium features to frequent .doc users), driving trial sign-ups and subscriptions.

  • Feature Expansion: Enhance .doc parsing for Unicode support. Integrate Sonar’s Deep Research mode for in-depth document analysis, making NotteChat a go-to tool for research.

  • Community Engagement: Grow NotteChat’s community via social media (e.g., #NotteChat on X, TikTok tutorials) and a feedback portal, encouraging user-driven improvements. Partner with educational institutions to offer NotteChat as a learning aid, expanding our user base.

These steps will scale NotteChat’s impact, introducing monetization, web accessibility, and strategic ads to empower users worldwide with AI-driven document insights.

Built With

Share this project:

Updates