Repository navigation
A8 - Tech Demo, pt.3
Demo Release 3: Proprietary Dataset, Onboarding Steps, and Intelligent Ranking Agent
Direct Links
- Backend Server
- Frontend App
- ADR 021 – Restaurant Owner Verification and Data Ownership
- ADR 022 – Migration from OpenAI API to Gemini 2.5 Flash
- ADR 023 – Basic Rank Agent for Restaurant Recommendations
- ADR 024 – Dataset Expansion & Detail
- ADR 025 – Digital Identity Formation Strategy
Roadmap Update
This release focused on refining our onboarding experience and digital identity schema (CUJ M1: User Onboarding) and building the intelligent recommendation pipeline central to our product (CUJ M2: Personalized Restaurant List). We implemented our first reasoning-based model powered by a LangChain Rank Agent, expanded our dataset using Google Places and Kaggle with richer metadata, and redesigned onboarding to feature shorter, more explicit questions. We also migrated backend reasoning from OpenAI to Gemini 2.5 Flash for faster, lower-cost inference, and introduced restaurant data-ownership standards for verified businesses. Thus, with many of our individual components nearing completion, these updates lay the groundwork for soon developing the full, end-to-end pipeline in future development.
Issue Summary
Most short-term development goals have now been completed or are currently under review:
- ST-3: M1: Implement authentication -> Complete. Users can now sign in seamlessly with their email or Google Account.
- ST-1: Initialize backend service with Python (FastAPI) -> Complete. We now have a stable FastAPI server environment for endpoint testing.
- MT-3: M2: Recommendations with rationale -> In Review. Our early rank agent marks a major step toward our recommendation backbone.
- ST-4: Validate onboarding questions and recommendation rationale clarity -> Complete. Received feedback from User Research, as discussed below.
- ST-3: M1: Onboarding quiz -> In Review. Updated based on user feedback.
Roadmap Change Details
This release involved frontend and backend updates supporting all three main CUJs.
Architecture
The current architecture now:
- Connects to our proprietary Firestore database, enriched with more restaurants and more detailed metadata for more thorough agentic reasoning (ADR 024). -> CUJ M3; Filter Categories.
- Uses LangChain agents to reason about user preferences derived from onboarding responses (ADR 023). ->CUJ M2; Personalized Restaurant List.
- Provides API endpoints for the aforementioned functions, allowing for testing and future frontend integration.
Each agent (Search and Rank) remains modular, allowing prompt-level experimentation without code restructuring.
UI/UX
Our onboarding design evolved significantly following this sprint's user testing. Initially, we built an exhaustive, mandatory questionnaire to capture as much detail of a user’s food and restaurant preferences as possible. However, feedback from our User Research revealed this created friction and would likely increase churn, as Palate may risk turning into “just another unused app that doesn’t pass beyond signup.”
Thus, we redesigned onboarding to balance explicit (questionnaire) and implicit (behavioral) signals (ADR 025). Explicit data now comes from a shorter quiz identifying broad “archetypes” (e.g., "comfort-seeker," "explorer"), while implicit data will accumulate from actions like bookmarks, likes, and visits. This hybrid model allows user profiles to grow organically and remain adaptive over time (CUJ M1; Build a Hyper-Personalized Profile).
User Research
We conducted a light CUJ test with two computer science classmates to evaluate our initial onboarding flow. Each participant was asked to complete the full questionnaire naturally, as a new user would. Both classmates appreciated the depth of the questionnaire, but found it somewhat long and cognitively demanding, especially with open-ended mood-based questions.
Users stated that they appreciated more direct, explicit questions (e.g., "Do you prefer casual or fine dining settings?") rather than more nuanced ones (e.g., "How would you describe your ideal dining experience?"). Based on this feedback, we plan to narrow down our onboarding quizzes by reducing the number of abstract questions and focusing on quick prompts that can be answered instinctively. The new design (ADR 025) aims to reduce cognitive load and completion time.
Decisions Log
-
ADR 021 – Restaurant Owner Verification and Data Ownership:
Introduced a framework for verifying restaurant data ownership, allowing authenticated updates by business owners and ensuring dataset credibility. -
ADR 022 – Migration from OpenAI API to Gemini 2.5 Flash:
Transitioned backend reasoning from OpenAI to Gemini 2.5 Flash for improved cost and latency performance. -
ADR 023 – Basic Rank Agent for Restaurant Recommendations:
Implemented a LangChain agent to rank restaurants based on metadata and user taste profiles. Returns an ordered list with concise reasoning for each result. -
ADR 024 – Dataset Expansion & Detail:
Expanded and enriched the restaurant dataset with Google Places and Kaggle metadata for richer contextual reasoning. -
ADR 025 – Digital Identity Formation Strategy
Redesigned the onboarding into a shorter questionnaire informed by user research, and began considering implicit signals for recommendations.
Summary
We now have a modular backend pipeline, a refined dataset, and an optimized onboarding experience that balances usability with personalization. Next steps will focus on connecting these modular components into a fully operational end-to-end pipeline capable of serving live, explainable recommendations to users.