A smart pantry inventory tracker — know what you have, reduce waste, and never forget what's running low.
Pantry Pal is a full-stack smart inventory tracker that helps you manage what's in your pantry. Add and organize your pantry items, track quantities and expiration dates, and stay on top of what needs restocking — all in one place.
Built as a team project with a focus on high-performance form management using React Hook Form and a RESTful API backend, Pantry Pal is an ongoing project with a robust roadmap of features in active development.
| Feature | Status |
|---|---|
| View pantry inventory | ✅ |
| Add pantry item | ✅ |
| Auto-refresh after adding item | ⏳ |
| Edit pantry item | ⏳ |
| Delete pantry item | ⏳ |
| Search / filter inventory | ⏳ |
| Expiration date tracking | ⏳ |
| Low stock alerts | 🙏 |
| Barcode scanning | 🙏 |
| Recipe suggestions from inventory | 🙏 |
- ✅ Complete
- ⏳ In progress
- 🙏 Looking for contributors
Frontend: React, TypeScript, Vite, React Hook Form, React Router
Backend: Node.js, Express, TypeScript
Database: MongoDB Atlas, Mongoose
- Node.js
>=18.0.0 - A MongoDB Atlas account and cluster
Clone the repository and install dependencies for the root, client, and server in one command:
git clone https://github.com/BloodR00t/pantry-pal.git
cd pantry-pal
npm run install-allCreate a .env file inside the server/ directory:
cp server/.env.example server/.envThen open server/.env and fill in your values:
MONGODB_URI=your_mongodb_connection_string
PORT=3000
You can find your MongoDB connection string in Atlas under Database → Connect → Connect your application. Make sure to include your database name in the URI:
mongodb+srv://username:password@cluster.mongodb.net/your-database-name?appName=Cluster0
From the project root, run both the client and server concurrently:
npm run devThe client will be available at http://localhost:5173 and the server at http://localhost:3000.
To run them separately:
npm run client # frontend only
npm run server # backend only- View your pantry — The main view displays all items currently in your inventory.
- Add an item — Use the form to add a new pantry item including name, quantity, and other details.
Screenshot / GIF walkthrough coming soon.
See the Features table above for planned additions. Current development priorities include completing edit and delete functionality, connecting search and filter to the backend, and implementing expiration date tracking. Low stock alerts, barcode scanning, and recipe suggestions are planned for future iterations.
- Pantry inventory view
- Add pantry item with React Hook Form
- RESTful API with Express and Node.js
- MongoDB Atlas database with Mongoose
| Name | GitHub |
|---|---|
| Katy Wells | @katygus |
| Lawrenzo Lue | @lawrenzo456 |
| Robyn Geldner | @5Runi |
| Xavier (Sarai) Roberson | @SunnieSarai |