Add Doris Kitchen household recipe app
This commit is contained in:
28
home/doris-kitchen/app/templates/base.html
Normal file
28
home/doris-kitchen/app/templates/base.html
Normal file
@@ -0,0 +1,28 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>{{ title or 'Doris Kitchen' }}</title>
|
||||
<link rel="stylesheet" href="/static/app.css">
|
||||
</head>
|
||||
<body>
|
||||
<header class="site-header">
|
||||
<div>
|
||||
<p class="eyebrow">Doris Kitchen</p>
|
||||
<h1>Household Recipe Queue</h1>
|
||||
<p class="lede">Pick recipes, bin bad ones, learn the household taste, and build a cheaper meal week without wasting half a packet of mince. Ha ha.</p>
|
||||
</div>
|
||||
<nav>
|
||||
<a href="/">Queue</a>
|
||||
<a href="/search">Search</a>
|
||||
<a href="/planner">Planner</a>
|
||||
</nav>
|
||||
</header>
|
||||
<main class="page-shell">
|
||||
{% block content %}{% endblock %}
|
||||
</main>
|
||||
<script src="/static/app.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
73
home/doris-kitchen/app/templates/dashboard.html
Normal file
73
home/doris-kitchen/app/templates/dashboard.html
Normal file
@@ -0,0 +1,73 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
<section class="hero-grid">
|
||||
<article class="card spotlight">
|
||||
<p class="section-label">Household taste</p>
|
||||
<h2>Leanne picks. Doris learns.</h2>
|
||||
<p class="muted">Queue up web recipes, teach the household profile with yes/no decisions, and keep KitchenOwl for the final recipes worth keeping.</p>
|
||||
<div class="action-row">
|
||||
<button type="button" id="seed-button">Seed suggestion queue</button>
|
||||
<a class="button-link" href="/search">Search a recipe idea</a>
|
||||
</div>
|
||||
</article>
|
||||
<article class="card stats-card">
|
||||
<div class="stats-grid">
|
||||
<div><span>Suggested</span><strong id="count-suggested">0</strong></div>
|
||||
<div><span>Approved</span><strong id="count-approved">0</strong></div>
|
||||
<div><span>Saved</span><strong id="count-saved">0</strong></div>
|
||||
<div><span>Rejected</span><strong id="count-rejected">0</strong></div>
|
||||
<div><span>Plans</span><strong id="count-plans">0</strong></div>
|
||||
</div>
|
||||
<p class="muted" id="backend-note">Loading state…</p>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
<section class="split-grid">
|
||||
<article class="card">
|
||||
<div class="section-heading">
|
||||
<div>
|
||||
<p class="section-label">Soft blacklist</p>
|
||||
<h2>Terms to push down</h2>
|
||||
</div>
|
||||
</div>
|
||||
<form id="blacklist-form" class="inline-form">
|
||||
<input type="text" id="blacklist-name" placeholder="Add ingredient or term">
|
||||
<button type="submit">Add / enable</button>
|
||||
</form>
|
||||
<div id="blacklist-items" class="chip-list muted">Loading…</div>
|
||||
</article>
|
||||
|
||||
<article class="card">
|
||||
<div class="section-heading">
|
||||
<div>
|
||||
<p class="section-label">Preference notes</p>
|
||||
<h2>Household guidance</h2>
|
||||
</div>
|
||||
</div>
|
||||
<form id="settings-form" class="stack-form">
|
||||
<label>Notes
|
||||
<textarea id="profile-notes" rows="4" placeholder="Budget, texture issues, favourite cuisines, or anything else useful."></textarea>
|
||||
</label>
|
||||
<label>Auto-import threshold
|
||||
<input type="number" id="auto-import-threshold" min="50" max="100">
|
||||
</label>
|
||||
<label class="checkbox-row">
|
||||
<input type="checkbox" id="auto-import-enabled">
|
||||
<span>Allow auto-import when Doris is extremely confident</span>
|
||||
</label>
|
||||
<button type="submit">Save settings</button>
|
||||
</form>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
<section class="card">
|
||||
<div class="section-heading">
|
||||
<div>
|
||||
<p class="section-label">Queue</p>
|
||||
<h2>Recent recipe suggestions</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div id="suggestion-list" class="suggestion-grid muted">Loading…</div>
|
||||
</section>
|
||||
{% endblock %}
|
||||
|
||||
41
home/doris-kitchen/app/templates/planner.html
Normal file
41
home/doris-kitchen/app/templates/planner.html
Normal file
@@ -0,0 +1,41 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
<section class="hero-grid">
|
||||
<article class="card">
|
||||
<div class="section-heading">
|
||||
<div>
|
||||
<p class="section-label">Meal planner</p>
|
||||
<h2>Build the week around a few anchor meals</h2>
|
||||
</div>
|
||||
</div>
|
||||
<form id="planner-form" class="stack-form">
|
||||
<label>Week start
|
||||
<input type="date" id="week-start">
|
||||
</label>
|
||||
<label>How many dinners?
|
||||
<input type="number" id="target-meals" min="3" max="7" value="5">
|
||||
</label>
|
||||
<label>Anchor ideas
|
||||
<textarea id="planner-anchors" rows="5" placeholder="Ground beef potato skillet Chicken rice bowls Pasta bake"></textarea>
|
||||
</label>
|
||||
<button type="submit">Build the week</button>
|
||||
</form>
|
||||
</article>
|
||||
<article class="card">
|
||||
<p class="section-label">What this does</p>
|
||||
<h2>Waste-aware planning</h2>
|
||||
<p class="muted">The planner looks at approved and queued meals, then tries to pair dishes that reuse overlapping ingredients. That means less waste, less random spending, and fewer half-dead veg rattling in the fridge drawer.</p>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
<section class="card">
|
||||
<div class="section-heading">
|
||||
<div>
|
||||
<p class="section-label">Plan output</p>
|
||||
<h2>Suggested meal week</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div id="plan-output" class="plan-grid muted">Generate a plan to see the meal lineup.</div>
|
||||
</section>
|
||||
{% endblock %}
|
||||
|
||||
28
home/doris-kitchen/app/templates/search.html
Normal file
28
home/doris-kitchen/app/templates/search.html
Normal file
@@ -0,0 +1,28 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
<section class="card search-card">
|
||||
<div class="section-heading">
|
||||
<div>
|
||||
<p class="section-label">Recipe search</p>
|
||||
<h2>Tell Doris what sort of dinner you want</h2>
|
||||
</div>
|
||||
</div>
|
||||
<form id="search-form" class="stack-form">
|
||||
<label>Search request
|
||||
<textarea id="search-query" rows="3" placeholder="Asian inspired using ground beef with potatoes"></textarea>
|
||||
</label>
|
||||
<button type="submit">Find recipe suggestions</button>
|
||||
</form>
|
||||
</section>
|
||||
|
||||
<section class="card">
|
||||
<div class="section-heading">
|
||||
<div>
|
||||
<p class="section-label">Results</p>
|
||||
<h2>Candidate recipes</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div id="search-results" class="suggestion-grid muted">Search for something to load recipe cards.</div>
|
||||
</section>
|
||||
{% endblock %}
|
||||
|
||||
Reference in New Issue
Block a user