✔ Professional ✔ GitHub-friendly ✔ Includes screenshots placeholder ✔ Installation guide ✔ Features list ✔ Tech stack ✔ File structure ✔ Future roadmap ✔ License (MIT)
⸻
✅ Your Complete README.md
https://github.com/sridhar-panigrahi/recipe_01/blob/main/README.md
⸻
PantryClean is a client-side recipe parsing tool that converts messy ingredient text into a structured format.
It automatically detects quantities, units, ingredient names, health alternatives, and ambiguity flags — while keeping everything stored locally in the browser.
⚡ No backend. No database. No tracking. Everything happens locally.
| Feature | Status |
|---|---|
| Parse free-text recipe ingredients | ✅ |
| Unit normalization (ml/g/cups/oz/etc.) | ✅ |
| Detect ambiguous instructions (like "pinch", "to taste") | ✅ |
| Autofill common interpretations (eggs, onions, cloves, bunches) | ✅ |
| Editable ingredient corrections | ✅ |
| Export to CSV, JSON, clipboard | ✅ |
| Built-in sample recipes | ✅ |
| Settings for unit system & precision | ✅ |
| LocalStorage persistence (no server) | ✅ |
| Responsive UI with dark/light theme | ✅ |
| Layer | Technology |
|---|---|
| UI | HTML5 + CSS (custom styling, no framework) |
| Logic | Vanilla JavaScript |
| Storage | LocalStorage |
| UX | Tooltip parsing, modals, keyboard shortcuts |
| CSS Features | CSS variables, accessibility rules, responsive layout |
PantryClean/ │ ├── index.html # Landing page ├── app.html # Main recipe normalizing app ├── styles.css # Full UI styling (~500 lines) ├── app.js # Core parsing engine + UI logic └── README.md # You’re reading this 😄
git clone https://github.com/yourusername/PantryClean.git
cd PantryClean
2️⃣ Run locally:
No build step needed — just open:
index.html
in your browser.
3️⃣ (Optional) Run with a local server:
npx serve
or:
python3 -m http.server
Then visit:
http://localhost:8000
⸻
🧠 How Parsing Works
PantryClean uses multiple detection layers:
• Unicode fraction handling
• Regex quantity extraction
• Unit synonym mapping (e.g., tbsp, tablespoon, T → tablespoon)
• Ingredient cleanup
• Ambiguity scoring
• Conversion rules based on user settings
• Local corrections override future parsing
Example:
"2 tbsp chopped fresh coriander"
↓
Qty: 30 ml
Unit: ml
Ingredient: coriander
Flags: none
⸻
⚙️ Settings
Users can customize:
• Metric / Imperial formats
• Preferred volume unit (ml, cups, tablespoon, etc.)
• Preferred weight (g, oz, lb, etc.)
• Decimal precision
• Handling tiny measurements (pinch, <15ml, etc.)
All preferences are saved automatically.
⸻
💾 Data Persistence
• Saved parsing corrections are stored under:
localStorage.pantryClean_corrections
• Settings are stored under:
localStorage.pantryClean_settings
No backend is used — everything lives on the user’s device.
⸻
🧰 Keyboard Shortcuts
Shortcut Action
Ctrl + Enter Parse ingredients
Esc Close active modal
S Open Settings
⸻
📤 Export Options
Format Example Use
CSV Meal planning, spreadsheets
JSON Grocery apps, automation
Clipboard text Quick sharing or notes
⸻
🧩 Future Improvements (Roadmap)
• AI category tagging (vegetable, protein, spice, dairy, etc.)
• Shopping list grouping by aisle
• OCR support for printed recipes
• Multi-language ingredient dictionary
• Nutrition estimation API mode
⸻
📸 Screenshots
(Add images here after deployment)



⸻
🧑💻 Contributing
Pull requests are welcome!
Open an issue for bugs, enhancements, or new feature proposals.
⸻
📜 License
MIT License — free to use, modify, and distribute.
⸻
🌟 Credits
Built by Shridhar Panigrahi
Designed for clean cooking workflows, automation, and digital recipe storage.
---
Deployed link
> https://ojt-recipeunitnormalizer.vercel.app/