DEV Community

n00bgineer
n00bgineer

Posted on • Originally published at n00bgineer.wordpress.com on

Building a privacy-first health app - update #4

Introduction

Yesterday, I was not able to make enough progress, but fortunately today I was able to spend enough time to complete many required changes.

Updates

Here are some of the changes that I’ve made today:

  1. Pushing database migration to the PostgreSQL database, after making some of the schema-level changes previously in User , FoodItem & PaidSubscription models.
  2. Since, I’d previously re-generated scaffolding for the User model as well, so I’d to fix things to make authentication work again. This is primarily why I never re-generated scaffold once the basic structure is set. Once I was done with this, I also updated the OnboardingModal component.
  3. Once I was done with the above-mentioned tasks, I decided to build the TopNavigation component (as opposed to using the SideNavigation component used in Tracepath). But before that, I also discovered that there’s a separate component for SideNavigationElement , while there is no navigation element component for BottomNavigation , so I decided to place the SideNavigationElement component within the SideNavigation component. I’m not sure how I missed out on such an inconsistency, but nonetheless I fixed this and went on to create the TopNavigation component.
  4. After creating the TopNavigation component, I updated the NavigationLayout and PositionScreen components. And then, I updated the FoodItemsCell state components (i.e. Empty , Error & Loading ), though I’ve not updated the FoodItems component which is the return value for the Success component in the cell. Actually, I was supposed to come to the FoodItemsPage later, but decided to update these components anyway & this took away from the final task in this post.
  5. Finally, I was onto the FoodItemSearchPage & FoodItemSearch components, for which I’ve only added how these components would look, but I’ve not added any functionality to it, that is integrating the upload/scan feature with Cloudinary widget.

Next steps

  1. Making the search form functional, which will include integrating the upload/scan feature with the Cloudinary upload widget. This time, I also want to set specific security settings for the Cloudinary widget.
  2. Completing the food item search service (i.e. foodItemSearch.sdl.js & foodItemSearch.js ), which will be used to query paginated results from the USDA’s FDC API.
  3. Figuring out google’s image labeling API.
  4. Integrating food item search service with the image labeling function.
  5. Completing the food item mutation to add food items to the user’s food consumption history.

Screenshots


OnboardingModal component in large desktop, small desktop & mobile modes


TopNavigation component in the desktop mode


A collage of different state components for FoodItemsCell


A collage of FoodItemsSearchPage component

Quadratic AI

Quadratic AI – The Spreadsheet with AI, Code, and Connections

  • AI-Powered Insights: Ask questions in plain English and get instant visualizations
  • Multi-Language Support: Seamlessly switch between Python, SQL, and JavaScript in one workspace
  • Zero Setup Required: Connect to databases or drag-and-drop files straight from your browser
  • Live Collaboration: Work together in real-time, no matter where your team is located
  • Beyond Formulas: Tackle complex analysis that traditional spreadsheets can't handle

Get started for free.

Watch The Demo 📊✨

Top comments (0)

Hot sauce if you're wrong - web dev trivia for staff engineers

Hot sauce if you're wrong · web dev trivia for staff engineers (Chris vs Jeremy, Leet Heat S1.E4)

  • Shipping Fast: Test your knowledge of deployment strategies and techniques
  • Authentication: Prove you know your OAuth from your JWT
  • CSS: Demonstrate your styling expertise under pressure
  • Acronyms: Decode the alphabet soup of web development
  • Accessibility: Show your commitment to building for everyone

Contestants must answer rapid-fire questions across the full stack of modern web development. Get it right, earn points. Get it wrong? The spice level goes up!

Watch Video 🌶️🔥

👋 Kindness is contagious

Explore a trove of insights in this engaging article, celebrated within our welcoming DEV Community. Developers from every background are invited to join and enhance our shared wisdom.

A genuine "thank you" can truly uplift someone’s day. Feel free to express your gratitude in the comments below!

On DEV, our collective exchange of knowledge lightens the road ahead and strengthens our community bonds. Found something valuable here? A small thank you to the author can make a big difference.

Okay