Ingradient is a lightweight web application for discovering recipes based on the contents of your pantry. Built with Node.js, Express, and Firebase, it fetches data from the Edamam API and provides a responsive interface optimized for both desktop and mobile screens.
🌐 Available at: ingradient.site
- 🔎 Recipe Search – Queries the Edamam API and displays results with a skeleton loader for smooth user experience.
- 📋 Pantry Manager – Stores ingredients in
localStorageand suggests randomized recipes from your saved items. - 📱 Responsive UI – Sidebar navigation collapses on small screens and toggles with a menu icon.
- 🔒 Secure API Proxy – Express endpoint supplies Edamam credentials from environment variables.
- 🔥 Firebase Integration – Firebase Admin SDK set up for potential Firestore reads and writes.
- 🚀 CI/CD – GitHub Actions automate deployments to Firebase Hosting.
- Frontend: Vanilla JavaScript, HTML5, CSS3
- Deployment: Firebase Hosting, Heroku (Procfile)
- DevOps: GitHub Actions, dotenv for environment variables
Ingradient/
├── public/
│ ├── index.html
│ ├── router.js
│ ├── assets/
│ │ ├── ingradient tab logo.png
│ │ └── loading.webp
│ └── src/
│ ├── Search/
│ ├── Pantry/
│ ├── Account/
│ ├── About/
│ └── Settings/
├── server.js
├── firebase.json
├── .github/workflows/
└── package.json
- User Input – Search for recipes directly or add items to your pantry.
- Data Fetching – The frontend requests credentials from
/api/edamamand queries Edamam for matching recipes. - Display – Results appear with skeleton animations until the data is loaded.
- Pantry Suggestions – Ingredients saved locally generate randomized recipe recommendations.
- Deployment – Merges to
maintrigger GitHub Actions to deploy to Firebase Hosting.
This project is licensed under the MIT License.
For questions or feedback, please contact Justus Jones.
Built with ❤️
