Dindin — Reviewing Home Dinners

A slightly over-engineered dinner tracking app that turns everyday meals into structured data, ratings, and visual trends.

Overview

Andrew Dinner started as a joke.

I built this after Andrew told me I have zero food knowledge, hoping he might finally teach me something, and expecing some structured feedback.

So I built a small app to log dinners and review them properly.

What started as a simple log quickly turned into a structured system with ratings, analytics, and visualisation.

Concept

The app splits dinner into two roles:

  • I log what we ate (main, side, dessert)
  • Andrew rates each part with a score and comment

Instead of giving a single score, the system breaks meals into components.

This made it possible to track not just what we ate, but which part of the meal actually worked.

What I built

At its core, the app is a small full-stack system built around structured daily data.

Each dinner entry is stored with an ISO date, allowing consistent querying and time-based aggregation.

From there, the system:

  • stores menu data
  • stores section-level ratings
  • calculates daily averages
  • visualises everything in a calendar and chart

Key features

Menu logging

  • main
  • side
  • dessert
  • notes

Each entry is tied to a specific date for aggregation.

Section-level reviews

  • main / side / dessert rated separately
  • 1–5 score + optional comment

This allows more detailed feedback and surprisingly better comparisons.

Calendar interface

Meals are visualised in a monthly calendar.

  • emoji-based indicators
  • average rating
  • review completion status

Analytics dashboard

A simple rating trend chart to visualise daily averages.

  • spot “good cooking days”
  • notice patterns
  • occasionally argue about them

Technical implementation

Frontend

  • React + TypeScript
  • component-based structure
  • custom data visualisation components
  • responsive layout

Backend / Data

  • Supabase (PostgreSQL + API)
  • structured tables for meals, metrics, comments

Technical exploration

  • date-based modeling (ISO format)
  • aggregating ratings into daily averages
  • calendar grid generation
  • SVG-based line chart
  • React state management
  • Supabase integration

Outcome

The app turned a very ordinary activity into something structured and trackable.

It combines structured input, relational data, simple analytics, and visual browsing, for something that is objectively unnecessary, but surprisingly satisfying to use.

Ending

The service was discontinued on 24 February 2026. Not because of technical issues, but because Andrew gradually stopped leaving reviews. Despite claiming that reading was his hobby, he showed little interest in reading my cooking logs. His actual hobbies turned out to be hotpot and mobile games.

After

The project was later repurposed into a pregnancy logging app, shifting from dinner tracking to life tracking. Same structure, different dataset!!