MealMind is an AI-powered meal planning web application that helps users generate a personalized 7-day meal plan based on their goals, food preferences, and allergies. The application also provides a grocery checklist and saves generated meal plans for later access.
https://mealplanner-five-delta.vercel.app/
https://github.com/GirindraSW/mealplanner.git
- Generate a personalized 7-day meal plan using AI
- Input user goals, allergies, and food preferences
- View generated meal plans in a structured format
- Save generated meal plans to Supabase
- Access meal plan history
- Generate grocery list based on the meal plan
- Export meal plan or grocery checklist to PDF
- Responsive web interface
- Next.js
- TypeScript
- Tailwind CSS
- Supabase
- Gemini API
- Vercel
This project uses a feature branch workflow to keep the main branch stable.
main: Stores the latest stable version of the application.
feat/gemini-api-prompt: Implements Gemini API integration and prompt handling.feat/pdf-export-grocery-checklist: Adds PDF export and grocery checklist features.feat/save-to-supabase: Saves generated meal plans to Supabase.feat/swapmeal-grocerylist-categorized: Adds meal day swapping, grocery list categorization, and UI components.
This project uses a simple Conventional Commit style to make the commit history easier to understand.
Examples:
feat: gemini API + promt
feat: PDF export, grocery checklist, input review
feat: swap meal plan days, grocery list & categorization, add shadcn components
feat: with history page, save each generated plane to supabaseRecommended format:
<type>: <short description>Common types:
feat: Adds a new featurefix: Fixes a bugdocs: Updates documentationstyle: Changes formatting or stylingrefactor: Improves code structure without changing functionalitytest: Adds or updates testschore: Updates configuration, dependencies, or maintenance tasks
Make sure you have the following installed:
- Node.js
- npm, yarn, pnpm, or bun
- Git
Clone the repository:
git clone https://github.com/GirindraSW/mealplanner.gitMove into the project directory:
cd mealplannerInstall dependencies:
npm installCreate a .env.local file in the root project directory.
Example:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=your_supabase_publishable_key
GEMINI_API_KEY=your_gemini_api_keyDo not commit .env.local or any secret keys to GitHub.
npm run devOpen the application in your browser:
http://localhost:3000
To build the application for production:
npm run buildTo start the production build locally:
npm startThe application is deployed on Vercel.
Production URL:
https://mealplanner-five-delta.vercel.app/
Recommended workflow for future development:
- Update the local
mainbranch.
git checkout main
git pull origin main- Create a new feature branch.
git checkout -b feat/feature-name- Make changes and commit them using a clear commit message.
git add .
git commit -m "feat: add feature description"- Push the branch to GitHub.
git push -u origin feat/feature-name-
Create a Pull Request to merge the feature branch into
main. -
Review the changed files before merging.
-
Delete the feature branch after it is merged.
mealplanner/
├── app/
├── components/
├── lib/
├── public/
├── README.md
├── package.json
├── next.config.ts
└── tsconfig.json
This project was created as part of the DumbWays.id learning program. The current repository already uses multiple feature branches and a deployed production version. Pull Request usage is recommended for future improvements to make the workflow more structured and easier to review.
Girindra Sulistiyo Wardoyo
DumbWays.id