Skip to content

AravindVasudev/Noms

Repository files navigation

Noms

Overview

A light-weight open-sourced calorie tracker.

  1. Most trackers in the app store are bloated -- Include social features, recipes, cloud backup, etc.
  2. Heavily paywalled or too many ads.
  3. You don't own your data anymore, it's stored in the app's cloud where they get to decide what they want to do with it.

Noms is a simple food journal with daily aggregates and long-term visual insights using graphs that helps you track your food consumption. Everything is stored locally.

Screenshots

Diary Insights Settings
Diary Screenshot Diary Screenshot Diary Screenshot

Build

The app is only tested on iOS devices, android UX might be broken. The app uses expo, follow expo build instructions.

$ npm run ios # Start dev run on iOS.

TODOs

  • Implement a catalog of food entries to quick add.
  • Fix Set Goals UI to match add.tsx screen. The UX looks off.
  • Add goal direction, eating surplus calories is not always a negative.
  • Add barcode scanning option: items in catalog can be linked to a barcode value and used to quick add entries.
  • Implement option to import data.
  • Implement option to export data.
  • Allow selecting graphs in insights. Make it a customizable dashboard.
  • Read Apple Health data for calories burned, weight, etc to add new graph types for insights.
  • Add option to edit entries in diary and catalog.
  • Add swipe option to date picker in the diary screen. swipe is more intuitive.
  • For fortnight and month selection, instead of supporting side scroll, maybe sample the points and create a visual that fits in the screen.
  • Catalog entries should indicate if they have a barcode associated.
  • Add serving size and quantity options. I should be able to say apple serving: 1 apple, quantity: 2. UX should be simple to pick.
  • Fix gap between keyboard and done button when keyboard is open.
  • Fix "clear app data" to clear all app data.
  • Fix "clear app data" to have a warning pop-up.
  • Clean up the logo, looks off.
  • Clean the UI for sign up flow.
  • Add flow to suggest goals based on standard TDEE questionaire.
  • Tech Debt
    • Only load last X days of data into memory and load remaining on-demand.
    • Pre-aggregate old data and store it in a table to avoid re-computation.
    • Create combined stateless UI component for journal-entries and catalod entries.
    • Create a combined style for all text boxes, buttons, etc and maintain a standard theme across the app.
    • Create a SettingsList component and combine settings and manage-data screens.
    • Rename diarySlice & journal-store, use a consistent name.

About

A simple calorie tracker

Resources

Stars

Watchers

Forks