Planutri is a smart meal planning full-stack application built with Next.js. It helps users organize their meals effortlessly while automatically generating a shopping list. With Planutri, you can manage recipes, adjust portion sizes, and plan your meals efficiently — all in one place.
- Meal Planning: Assign meals to specific days with full flexibility.
- Recipe Management: Create, edit, and store recipes in a database. Mark recipes as favorites and filter them using tags.
- Automatic Shopping List: Generates a shopping list based on planned meals.
- Customizable Portions: Adjust recipe quantities based on the number of servings.
- User-Friendly Interface: Simple and intuitive design for easy meal planning.
- Testing: Includes three types of tests:
- Snapshot tests
- Unit tests
- Integration tests
- Frontend: Next.js (React)
- Backend: Next.js with MongoDB
- State Management: Context API & TanStack Query
- Authentication: Firebase
- Styling: Tailwind CSS
- API: Custom-built endpoints for CRUD operations
- Images: Cloudinary
- Testing: Jest
-
Clone the repository:
git clone https://github.com/annahilla/planutri cd planutri -
Install dependencies:
npm install
-
Set up environment variables. Create a .env.local file and add the environment variables.
-
Run the development server:
npm run dev
-
Open the app in your browser at http://localhost:3000
- Add and manage recipes from the dashboard.
- Assign meals to specific days.
- Adjust serving sizes.
- Generate the shopping list.
To run tests, use:
npm run test- Enable saving multiple meal plans.
- Add AI-powered meal suggestions.
- Implement user preferences for dietary restrictions.
- Add inernationalization with i18n.
- Implement drag & drop on meal planner.
- Allow users to post public recipes.
- Enable a voting system for public recipes.
- Support multi-week meal planning.
- Categorize shopping list.
Planutri is deployed with Vercel and accessible at: Planutri Live Demo
