Page 1 of 18
System Requirements Document for agile-json
1. Introduction
agile-json is a standalone, adaptive HTML recipe application for home cooking and meal organization. It enables users to browse complete recipe records, filter and sort a recipe collection, inspect recipe details, calculate ingredient quantities for changed serving sizes, plan meals by date and meal slot, edit all recipe and meal-plan content, and manage the complete recipe database through JSON import, export, and restoration of the embedded database.
The application is intended for people who cook at home, organize meals over time, and maintain a portable personal recipe collection. It must preserve every available recipe field and detailed record from the authoritative spreadsheet source, including recipe metadata, ingredients, instructions, notes, servings, tags, times, categories, images or attachments where supplied, and any additional spreadsheet-defined fields.
The current delivery is a polished, locally usable, offline-first HTML application. It does not require a server.
Page 2 of 18
2. System Overview
agile-json shall provide a comprehensive recipe-management experience through the following current capabilities:
- Viewing complete recipe information.
- Browsing recipes in grid and list views.
- Searching, sorting, and filtering recipes by multiple criteria.
- Filtering by ingredient, cuisine, complexity, preparation time, category, and other available recipe metadata.
- Opening readable recipe-detail views with ingredients, preparation steps, metadata, notes, servings, tags, and images or attachments when supplied.
- Recalculating ingredient quantities when the user changes the serving count.
- Creating, editing, deleting, and reviewing meal plans.
- Assigning selected recipes to specified dates and meal slots, including breakfast, lunch, and dinner.
- Creating, editing, and deleting recipes while preserving the complete data structure.
- Importing compatible recipe databases from JSON files.
- Exporting the full current recipe collection as a JSON file.
- Restoring the recipe collection from the preloaded database embedded in the application code.
- Handling invalid navigation, malformed JSON, missing fields, unsupported data, invalid inputs, and incorrect operations with clear recovery guidance.
- Operating responsively on desktop, tablet, and mobile devices.
- Supporting local and offline use by default.
Page 3 of 18
2a. Product Interpretation and Delivery Boundary
agile-json is a browser-delivered, standalone HTML application with application-owned pages and no required authentication, user accounts, server, provider-owned workflow, or external destination.
The recipe database bundled in the application code shall include the recipes from the original spreadsheet for offline use. The user may modify all content after loading the embedded database, load a compatible JSON database, or export the complete currently active dataset.
All current features shall remain within the seven supplied application pages:
- Landing
- Recipes
- Recipe Details
- Meal Planner
- Calculator
- Recipe Editor
- Data Management
The application shall not introduce account management, online synchronization, role-based permissions, payment, social sharing, external recipe publishing, or server administration as current functionality.
The following source-listed extension points are future considerations only and are not required in current pages, acceptance criteria, or workflows:
- Multiple-language localization support.
- Favorites, ratings, or bookmarks.
- User notes or comments per recipe beyond recipe data already present in the authoritative spreadsheet.
- Shopping-list generation from meal plans.
- Print-friendly recipe or meal-plan views.
Page 4 of 18
2b. Source Content Inventory
The authoritative spreadsheet reference establishes the following verified content and minimum functionality that agile-json shall preserve.
Application and Purpose
- Project name:
agile-json.
- Application type: standalone adaptive, responsive HTML application; SPA delivery is preferred.
- Server requirement: no server is required.
- Purpose: comprehensive recipe management, meal planning, and ingredient calculation.
Page 5 of 18
Recipe Content and Data Fidelity
The application shall preserve and support all recipes and all fields from the spreadsheet with complete structure and fidelity.
The supported recipe record shall include, where present in the source data:
- Title.
- Category.
- Ingredients.
- Preparation steps.
- Preparation and other time values.
- Notes.
- Servings.
- Tags.
- Cuisine.
- Complexity.
- Images.
- Attachments.
- Any other metadata values or detailed fields contained in the authoritative spreadsheet.
All such fields shall be available for display and file persistence. Fields that are editable in the data model shall remain editable through the Recipe Editor.
Page 6 of 18
Required Functional Coverage
- Detailed recipe viewing with complete recipe information.
- Meal planning using selected recipes for specified dates or slots.
- Portion and serving calculation with dynamically recalculated ingredient quantities.
- Multi-criteria filtering by ingredient, cuisine, complexity, preparation time, category, and other available metadata.
- Full recipe-detail persistence.
- JSON import and export of recipe databases.
- Embedded, preloaded recipe database from the original spreadsheet.
- Robust management of invalid or missing data and incorrect operations.
- Creation, modification, and deletion of recipes and meal plans.
- Landing-page navigation to major features.
- Recipe browsing in grid and list displays.
- Recipe sorting.
- An interactive calendar or list-style meal-planning interface.
- A calculator panel or modal accessible from recipe details.
- Data-management tools for export, import, and reset to the embedded collection.
- An attractive error page or dialog for invalid navigation, failed file handling, and failed operations.
- Local and offline use by default.
- Use of browser-native APIs for JSON import and export.
2c. Page Content and Component Coverage
Page 9 of 18
Recipe Details
Page 10 of 18
Meal Planner
Page 12 of 18
Recipe Editor
Page 13 of 18
Data Management
Page 14 of 18
3. Functional Requirements
FR-01 — Recipe Collection Viewing
As a Recipe Browser / Home Cook, I should browse the active recipe collection so that I can discover recipes available for cooking.
- Provenance: explicit.
- Actor: Recipe Browser / Home Cook.
- Trigger/input: The user opens Recipes from Landing, navigation, or another application page.
- Access state: No authentication is required.
- Requirement: The system shall display recipes from the active local collection in grid and list views.
- Observable result: The user sees recipe cards or list records containing available summary data, including title, category, preparation time, servings, image when available, and applicable metadata.
- Failure/recovery: If the active collection is empty, the system shall show an empty state and direct the user to Data Management to load JSON data or restore the embedded database.
- Continuation: The user can filter, sort, open Recipe Details, begin recipe creation, or navigate to another current page.
FR-02 — Search, Sorting, and Multi-Field Filtering
As a Recipe Browser / Home Cook, I should search, sort, and filter recipes by multiple criteria so that I can quickly locate suitable recipes.
- Provenance: explicit.
- Actor: Recipe Browser / Home Cook.
- Trigger/input: The user enters a search phrase, selects filters, changes filter values, or chooses a sorting method on Recipes.
- Access state: No authentication is required.
- Requirement: The system shall support filtering by ingredient, cuisine, complexity, preparation time, category, and other available recipe metadata, as well as sorting and search.
- Observable result: The recipe result set updates to reflect all active criteria, applied sorting, and search input.
- Failure/recovery: When no recipes match, the system shall show a no-results state, display active criteria, and allow the user to clear individual filters or all filters.
- Continuation: The user can refine filters, reset filters, change display mode, or open a matching recipe.
- Acceptance: Filtering and sorting must not remove or alter recipe information in the active data collection.
Page 15 of 18
FR-03 — Complete Recipe Detail Viewing
As a Recipe Browser / Home Cook, I should open a recipe and read its complete information so that I can prepare it using the full preserved record.
- Provenance: explicit.
- Actor: Recipe Browser / Home Cook.
- Trigger/input: The user selects a recipe from Recipes, Meal Planner, Calculator, or another recipe reference.
- Access state: No authentication is required.
- Requirement: The system shall display a complete, readable recipe detail record containing all available source-defined recipe fields, including ingredients, steps, metadata, times, notes, servings, tags, images, attachments, and additional spreadsheet-defined fields where present.
- Observable result: The user sees the selected recipe’s full information without data loss.
- Failure/recovery: If the recipe identifier is missing or unavailable, the system shall show a not-found state and provide a return path to Recipes. Missing optional fields shall be represented as unavailable rather than fabricated.
- Continuation: The user can calculate portions, edit the recipe, assign it to a meal-plan slot, or return to Recipes.
FR-04 — Serving and Ingredient Quantity Calculation
As a Recipe Browser / Home Cook, I should change a recipe’s serving count and see recalculated ingredient quantities so that I can cook the needed amount.
- Provenance: explicit.
- Actor: Recipe Browser / Home Cook.
- Trigger/input: The user selects a recipe and enters or adjusts a requested serving count using Calculator or the calculation control in Recipe Details.
- Access state: No authentication is required.
- Requirement: The system shall dynamically calculate ingredient quantities proportionally from the recipe’s source serving count to the requested serving count.
- Observable result: Calculable ingredient quantities update for the selected number of servings while the original serving count remains available for reference.
- Failure/recovery: The system shall reject missing, non-numeric, zero, and negative serving values and preserve the last valid calculation. If an ingredient quantity cannot be safely parsed as numeric, the system shall preserve its original text and identify it as not automatically scaled.
- Continuation: The user can adjust the serving count again, restore source servings, return to Recipe Details, or use the recipe in Meal Planner.
Page 16 of 18
FR-05 — Meal Plan Creation and Review
As a Recipe Planner / Meal Scheduler, I should create and review meal plans by date and meal slot so that I can organize what to cook over time.
- Provenance: explicit.
- Actor: Recipe Planner / Meal Scheduler.
- Trigger/input: The user opens Meal Planner and chooses a date range, week, calendar position, or planning list context.
- Access state: No authentication is required.
- Requirement: The system shall allow users to create and manage meal plans using selected recipes for specified dates or slots, including breakfast, lunch, and dinner.
- Observable result: The user sees a meal-plan board or list showing dates, meal slots, assigned recipes, and unassigned slots.
- Failure/recovery: Invalid date selection shall be identified without changing the existing plan. Empty plans shall show available slots and clear assignment actions.
- Continuation: The user can assign recipes, edit plan assignments, remove assignments, review recipe details, or select another planning period.
FR-06 — Meal-Plan Assignment Modification and Deletion
As a Recipe Planner / Meal Scheduler, I should assign, modify, move, and remove recipes in meal-plan slots so that my plan remains accurate.
- Provenance: explicit.
- Actor: Recipe Planner / Meal Scheduler.
- Trigger/input: The user selects an empty or occupied meal-plan slot and chooses a recipe or assignment action.
- Access state: No authentication is required.
- Requirement: The system shall support creation, modification, movement, and deletion of meal-plan assignments. It shall allow assignment of selected recipes to a specified date and meal slot.
- Observable result: The selected meal-plan slot visibly reflects the current assigned recipe or returns to an empty state after removal.
- Failure/recovery: If the selected recipe does not exist, has been deleted, or cannot be assigned to the selected slot, the system shall preserve the prior valid plan state and show a corrective message. A missing recipe reference shall be identified with actions to remove or replace the assignment.
- Continuation: The user can continue scheduling recipes, open the assigned recipe, adjust the planning period, or return to Recipes.
Page 17 of 18
FR-07 — Recipe Creation and Full Content Editing
As a Recipe & Data Manager, I should create and edit recipes and all available recipe fields so that the collection remains complete and accurate.
- Provenance: explicit.
- Actor: Recipe & Data Manager.
- Trigger/input: The user opens Recipe Editor to create a new recipe or edit an existing recipe.
- Access state: No authentication is required.
- Requirement: The system shall support creation and modification of recipes and shall allow changes to all content. The editor shall honor all data fields and business rules represented in the authoritative spreadsheet data.
- Observable result: Saved recipes retain their edited title, category, ingredients, steps, times, notes, servings, tags, cuisine, complexity, images, attachments, and all additional supported fields.
- Failure/recovery: The system shall identify missing required values, invalid numeric values, and invalid field formats without overwriting the last saved record. The user shall be warned before abandoning unsaved changes.
- Continuation: The user can save and open Recipe Details, return to Recipes, continue editing, or manage the dataset in Data Management.
FR-08 — Recipe Deletion and Plan Integrity
As a Recipe & Data Manager, I should delete a recipe with clear consequences so that obsolete content can be removed without silently corrupting meal plans.
- Provenance: explicit.
- Actor: Recipe & Data Manager.
- Trigger/input: The user chooses to delete a recipe in Recipe Editor.
- Access state: No authentication is required.
- Requirement: The system shall support recipe deletion after explicit confirmation.
- Observable result: The deleted recipe is removed from the active collection and no longer appears in Recipes or Recipe Details.
- Failure/recovery: Before completion, the system shall identify affected Meal Planner assignments when the recipe is in use. If deletion cannot complete, the recipe and plan references shall remain unchanged and the user shall receive corrective guidance.
- Continuation: The user can return to Recipes, resolve affected meal-plan slots in Meal Planner, or cancel deletion.
Page 18 of 18
FR-09 — JSON Export
As a Recipe & Data Manager, I should export the full current recipe database as JSON so that I can retain a portable copy of all active content.
- Provenance: explicit.
- Actor: Recipe & Data Manager.
- Trigger/input: The user selects Export in Data Management.
- Access state: No authentication is required.
- Requirement: The system shall export and download the complete active recipe dataset as a
No comments yet. Be the first!