FoodSaver is a smart, multi-user food inventory app designed to help reduce food waste. Users can manage their personal pantry, get alerts when items are nearing expiration, and discover tasty recipe ideas to make the most of what they have — all while making sustainable and budget-friendly choices.
A glimpse of the FoodSaver landing page, featuring a clean interface and Spanish translation.
Explore the FoodSaver dashboard: track your inventory, spot items about to expire, and turn ingredients into meals.
-
Personalized Inventories – Each user gets their own pantry space to track items.
-
Authentication System – Full user auth flow including sign up, login, and token protection.
-
Inventory CRUD – Users can add, edit, delete, and view food items in their inventory.
-
Expiration Alerts – Users receive notifications on the home dashboard for close-to-expire items in their inventory.
-
Recipe Suggestions – Based on available ingredients, users receive smart recipe suggestions to help use items before they expire.
Here’s what’s planned next for future versions of FoodSaver:
- Google Sign-In – Simplify access with one-click login.
- Basic Admin Panel – Start managing users and monitoring data.
- Search Function – Implement autocomplete and keyword search to quickly find items within the inventory.
- Inventory Tags & Categories – Make it easier to sort and filter food items.
- Changelog / History – Keep track of updates like item moves or edits.
- Soft Deletion – Allow recovery of deleted items (e.g., undo delete).
- Improved Version Control – Automate version incrementing for meaningful changes.
- Enhanced Notification System – Introduce a centralized notification model with read/dismiss tracking. Expiration checks run in the background, and alerts can be surfaced throughout the app—not just on the dashboard—for better visibility and user engagement.
- AI-Powered Insights – Analyze food usage and suggest waste-reducing habits.
- Personalized Menu Planning – Receive tailored meal suggestions based on preferences and inventory.
- Shared Pantries – Let households or roommates collaborate on one pantry.
- Localized Translations – Expand beyond Spanish and English.
- Item Image Support – Snap a pic instead of typing item details.
- Voice or Barcode Entry – Add food with a quick scan or voice command.
- Dashboard:
- Role-based access control for Admins and Users.
- Manage users, food inventory, and recipes in one central location.
- Landing Page:
- Visually appealing design with clear calls to action.
- Highlights FoodSaver's features and benefits.
- REST API: Provides endpoints for managing food items, users, and recipe suggestions.
- CRUD Operations: Supports creating, reading, updating, and deleting data.
- AI Integration: Utilizes AI algorithms to generate personalized recipe recommendations.
- React.js
- HTML5, TailwindCSS
- Context API for managing global state
- Node.js with Express
- Swagger for API documentation
- MongoDB for database management
- Node.js and npm (or yarn) installed
- MongoDB instance running (local or cloud-based)
- Clone the repository:
git clone [https://github.com/sandyFit/foodSaver.git](https://github.com/sandyFit/foodSaver.git)
- Navigate to the server directory:
cd foodsaver/server
- Install dependencies:
npm install
- Create a
.env
file in theserver
directory:MONGO_URI=<your_mongodb_connection_string> PORT=<your_desired_port> NODE_ENV=development JWT_SECRET=<your_secret_key> JWT_EXPIRE_TIME=1d COOKIE_EXPIRES_TIME=1
- Start the development server:
npm run dev
- Access the API documentation:
- Open your browser and go to
http://localhost:<your_desired_port>/api-docs
- Open your browser and go to
- Navigate to the client directory:
cd foodsaver/client
- Install dependencies:
npm install
- Start the development client:
npm run dev
- Problem: "Cannot connect to database" error.
- Solution: Ensure your MongoDB instance is running and that the
MONGO_URI
in your.env
file is correct.
- Solution: Ensure your MongoDB instance is running and that the
- Problem: Frontend cannot connect to the backend.
- Solution: Verify that both the frontend and backend servers are running and that the correct port is being used in the frontend's API calls.
For questions, feedback, or support, please contact us at support@foodsaver.com.