GrowthPath — Project Story
Inspiration
Have you ever dreamed of writing a novel, traveling to space, launching a startup, or getting accepted into a highly competitive interdisciplinary Master's program before you turn 24? Everyone has dreams, but only a fraction of people actually achieve them. The gap between dreaming and doing is where most people get lost.
Having dreams is easy, and setting achievable, reasonable goals is a great start, but executing them consistently is the hard part. We realized this massive failure rate comes down to three missing pillars:
- Lack of Guidance: People don't have a personal mentor to map out the exact, actionable steps needed to get on the right track.
- Lack of Feedback: People execute daily activities in a vacuum, without regular, data-driven feedback on their actual progress.
- The Guilt Cycle: Current habit-tracking applications are rigid. If you fail to achieve a goal one day, failures accumulate, creating guilt that eventually burns the user out.
As first-generation university students (now graduates) navigating the highly competitive EECS landscape, we had no built-in roadmap for success. We spent countless hours hustling for coffee chats with senior engineers, desperately trying to reverse-engineer the "right" path.
Worse, the tools available were working against us. After having to pause our usual personal development goals to focus on exams, our traditional habit-tracking app had punished us with a mountain of glaring, overdue tasks. Instead of helping us recover, the rigid system just caused overwhelming burnout.
Eventually, through trial and error, we navigated the noise, landed the right internships, and established ourselves in specialized tech fields. Almost immediately, junior students started coming to us, asking the exact same questions we used to ask. We spent hours volunteering our time to mentor them, and we realized: high-quality mentorship and adaptable goal-tracking shouldn't be an exhausting hustle, and it shouldn't be a luxury. There was a massive demand for a dynamic system that doesn't just track tasks, but actually guides you and adapts to the chaos of real life. We couldn't mentor thousands of students personally, so we built an AI that could. That is how GrowthPath was born.
What it does
GrowthPath is a personal growth web application that combines structured goal setting, daily journaling, and AI-driven analysis to help users make measurable progress toward their life objectives.
Users define goals across any life domain — health, career, education, finance, personal development, relationships, learning, creativity, spirituality, or community engagement — and categorize them by time horizon (1 month to 1 year, or ongoing). Each goal supports ordered milestones with optional deadlines and completion tracking, giving users a clear roadmap of intermediate checkpoints on the way to their objective.
Users log daily activities — journal entries describing what they did, experienced, or reflected on — each optionally linked to a goal and tagged with a mood indicator (1–5 scale). Over time, these logs build a rich behavioral dataset.
The core differentiator is the AI analysis engine, powered by the You.com Express Agent API. When a user requests an analysis for a goal, GrowthPath gathers the goal definition, milestones, the last 14 days of linked activities, and up to 3 prior insights, then sends a structured prompt to the You.com API with real-time web search enabled. The AI evaluates the user's recent behavior against their stated objective, identifies patterns, and produces a structured insight with four components:
- Title — a concise headline summarizing the finding
- Observation — what the AI noticed in the user's activity data
- Assessment — how those patterns relate to the goal and what they mean for progress
- Recommendation — concrete, actionable next steps, grounded in current web research with citations
Because the You.com API performs live web searches, every recommendation is backed by credible, up-to-date sources rather than generic motivational platitudes. A user aiming to get into a Master's program who logs "researched 3 universities today" doesn't just get "keep it up" — they get specific advice on application strategies, timeline benchmarks, and preparation resources, each with a clickable citation.
Users get 5 AI analyses per week by default, ensuring they use them intentionally on the goals that matter most.
GrowthPath also lets users generate and download professional progress reports directly from the goal view. The report consolidates everything — goal details, milestones, recent activities, and the latest AI insight — into a polished, formatted document. Users can download the report in four formats: PDF, Word (.docx), plain text, or images (one per page). This is powered by two Foxit APIs working in tandem:
Foxit Document Generation API: Takes a pre-designed .docx template with placeholder tags and a JSON payload of the user's goal data, and produces a fully populated PDF or Word document. This is how we generate the base report — the template defines the professional layout (headers, tables for milestones and activities, sections for AI insights and summary statistics), and the API fills it with the user's real data at request time. We chose this approach over server-side HTML-to-PDF rendering because the template-based system gives us pixel-perfect control over the document layout, supports repeating table rows for variable-length data (milestones, activities), and produces high-quality output with zero rendering infrastructure on our end.
Foxit PDF Services API: Handles format conversion for the text and image download options. After the Document Generation API produces the PDF, we upload it to the PDF Services API, then call the conversion endpoints to transform it into plain text or page images. This gives users flexibility — plain text for accessibility or quick copying, and images for easy sharing on social media or messaging apps — without us needing to build or maintain separate conversion pipelines.
How we built it
Architecture
We architected a full-stack web application with a clean separation between a React frontend and a Python backend, connected through a RESTful API.
Backend: We built the API server with FastAPI running on Uvicorn, chosen for its native async support and automatic OpenAPI documentation. SQLAlchemy 2.0 in async mode handles the ORM layer, with asyncpg as the PostgreSQL driver for production and aiosqlite for local development with SQLite. Authentication uses JWT tokens (HS256 via python-jose) with bcrypt password hashing (passlib), giving users a 7-day session before re-authentication.
Frontend: The UI was initially scaffolded using Figma Make to establish the screen flow and component structure from our design prototype. From there, we built the production interface with React 18, TypeScript, and Vite, using shadcn/ui components (built on Radix UI primitives) styled with Tailwind CSS 4. This gave us accessible, composable UI building blocks — dialogs, dropdowns, tabs, progress bars, forms — with a consistent design language out of the box.
AI Engine: The insight generation pipeline is the intellectual core of the application. When the user triggers an analysis, the backend's InsightService fetches all relevant context — the goal with its milestones, linked activities from the past 14 days, and up to 3 prior insights — then passes it to the AI Engine. The engine constructs a detailed prompt instructing the You.com Express Agent API to act as a personal growth coach, evaluate the user's behavioral patterns, and return a structured JSON response. The API's web search tool ensures every recommendation is grounded in current, real-world information. The response is parsed, validated, and stored as an Insight record linked to both the goal and the source activities that informed it.
Data Model: The database centers on five primary entities. A User owns Goals, which contain ordered Milestones. A User logs Activities, each optionally linked to one or more Goals via a many-to-many join table. Insights are generated per-goal and reference the specific Activities that informed them through another many-to-many relationship.
Deployment: The entire application runs on Akamai Cloud (Linode). We containerized both services with Docker. Both images are pushed to GitHub Container Registry (ghcr.io) and deployed to a Linode Kubernetes Engine (LKE) cluster. The backend runs as a ClusterIP service, and the frontend runs behind a LoadBalancer service that auto-provisions a Linode NodeBalancer. The production database is Linode Managed PostgreSQL 16, accessed over SSL within Linode's private network. A Cloud Firewall restricts inbound traffic to HTTP and the required Kubernetes control-plane ports.
Key UI Flows
- Onboarding: New users sign up with email and password, then are guided through an initial goal setup flow before reaching the dashboard. This ensures every user has at least one goal from the start, reducing the cold-start problem.
- Dashboard: Displays a personalized greeting, the user's remaining AI quota for the week, the latest AI insight in an emerald-to-teal gradient card, and a responsive grid of active goals with domain icons, progress bars, and milestone summaries.
- Goal View: A three-tab interface — Overview (description, target outcome, milestones with drag-and-drop reordering), Activity (filtered timeline of linked journal entries), and Insights (history of AI analyses with an "Analyze Now" button).
- Activity Log: A chronological feed of all journal entries across goals, with inline editing and the ability to adjust timestamps for backdated entries.
- Insights Feed: A dedicated view collecting all AI-generated analyses in reverse chronological order, with click-through to a detail modal showing the full observation, assessment, recommendation, and cited sources.
Tools used
- Figma Make: For rapid prototyping and design iteration, allowing us to quickly test different UI layouts and flows before committing to code. Click to see our Figma Make prototype
- You.com Express Agent API: The backbone of our AI insights, providing a powerful language model with integrated web search capabilities. This allowed us to generate insights that are not only personalized but also grounded in real-time information.
- Foxit Document Generation API: For producing professional, template-based progress reports. We designed a .docx template with placeholder tags for all goal data (milestones, activities, AI insights, summary statistics), and the API populates it with real user data at request time, outputting a polished PDF or Word document. This replaced the need for server-side rendering or HTML-to-PDF libraries.
- Foxit PDF Services API: For converting the generated PDF reports into additional formats. After the Document Generation API produces a PDF, we upload it to the PDF Services API and convert it to plain text (for accessibility and quick copying) or page images (for sharing on social media). The async task-based architecture (upload → convert → poll → download) handles the heavy lifting without blocking our backend.
- GitHub Container Registry: For storing our Docker images in a private registry, enabling seamless integration with our CI/CD pipeline and Kubernetes deployment.
- Linode Kubernetes Engine (LKE): For hosting our application in a production environment with scalability, reliability, and managed infrastructure. LKE's integration with Linode's other services (Managed PostgreSQL, NodeBalancers, Cloud Firewall) made it an ideal choice for our deployment needs.
Challenges
Designing the AI prompt for consistent, structured output. Getting the You.com API to reliably return well-structured JSON with distinct observation, assessment, and recommendation sections — rather than a freeform essay — required careful prompt engineering. We iterated on the system prompt to balance specificity (so the output is parseable) with flexibility (so the AI can surface genuinely novel insights rather than formulaic responses). Including prior insights in the prompt context was key to preventing the AI from repeating the same advice.
Making AI insights feel grounded, not generic. The biggest risk with AI-powered coaching is producing vague platitudes. By leveraging You.com's web search tool, every insight is anchored to real, cited resources — research papers, expert articles, strategy guides — that the user can verify. This was a deliberate architectural choice: the AI doesn't just assess, it researches.
Deploying to Kubernetes on a budget. Running a full Kubernetes stack (LKE cluster + managed PostgreSQL + NodeBalancer) on minimal resources required careful right-sizing. We run on a single g6-standard-1 node (1 vCPU, 2 GB RAM) with one replica of each service, keeping the total infrastructure cost under $40/month while maintaining a production-grade deployment with health checks, rolling updates, and a proper firewall.
Accomplishments
- A working, deployed AI coaching product. GrowthPath is live on the cloud with real AI-generated insights backed by web research and citations — not a prototype, not a mockup.
- The insight quality. The You.com integration with web search produces genuinely useful, specific, and cited recommendations. The structured output format (observation → assessment → recommendation) gives users a consistent, trustworthy experience.
- End-to-end Kubernetes deployment. From Dockerfiles to K8s manifests to deploy scripts — the entire infrastructure is scripted, reproducible, and documented. A new developer can go from zero to a running cloud deployment by following the deploy guide.
What we learned
- Prompt engineering is product design. The quality of our AI output is directly determined by how we structure the prompt context — which activities to include, how to format milestones, whether to include prior insights. Small changes in prompt structure produced dramatically different output quality.
- Structured AI output requires structured input. The reason our insights are specific and actionable is that we feed the AI rich, structured context — not just "here are some journal entries." The goal definition, milestone progress percentages, mood trends, and activity timestamps all give the AI the signal it needs to produce meaningful analysis.
- Quota constraints improve user behavior. Limiting AI analyses to 5 per week was initially a cost decision, but it turned out to be a better product decision. Users think more carefully about which goals to analyze and accumulate more activity data between analyses, which produces richer insights.
- Deployment scripting pays for itself. Writing bash scripts for every infrastructure step (database creation, cluster provisioning, firewall setup, image building, deployment) took time upfront but made iteration painless. Redeploying after a code change is a single command.
What's next for GrowthPath
- Voice journaling: Integrating speech-to-text to let users speak their daily log instead of typing. Sentiment analysis on voice entries would add an emotional signal layer that the AI can correlate with goal progress.
- Automated weekly summaries: The prompt function and scheduler configuration already exist in the codebase. Wiring up the scheduler to generate a weekly insight every Sunday evening would give users proactive feedback without requiring them to spend their analysis quota.
- Multi-goal activity linking in the UI: The API already supports linking an activity to multiple goals. Surfacing this in the frontend would let users capture cross-domain activities (e.g., a networking event that advances both career and relationship goals).
- Activity templates: Exercise, study, meal, and mood check-in templates are defined in the data model. Building these into the entry flow would reduce logging friction and produce more structured data for the AI to analyze.
Demonstration Accounts
Email: alex@demo.growthpath.app | Goal: Get Accepted into a Master's Program (education, 43% progress)
Email: bella@demo.growthpath.app | Goals: Figure Out My Career Direction (career, 33%) + Build Foundational Skills (learning, 50%)
Email: steven@demo.growthpath.app | Goal: Transition to Amateur Freestyle Snowboarding (health, 25% progress)
Password for all demo accounts: DemoPass123!
Built With
- bash
- docker
- fastapi
- ghcr
- kubernetes
- linode
- nginx
- postgresql
- python
- react
- tailwind
- typescript
- uvicorn
- vite
- you.com

Log in or sign up for Devpost to join the conversation.