A weekly meal and grocery planner app built with React and TypeScript.
- Weekly Meal Planning: Plan your weekly meals by selecting from a list of available recipes
- Automatic Grocery Lists: Generate a grocery list based on your meal selections
- Meal Scheduling: Rearrange your meals in the schedule view with drag-and-drop functionality
- Ingredient Search: Find meals by searching for specific ingredients
- Grocery List Management: Sort and filter your grocery list, mark items as purchased
- Persistent Storage: All your data is saved locally in your browser
- Mobile-Friendly Design: Works great on both desktop and mobile devices
Check out the live demo at https://petitchampi.github.io/foodinator/
- React: UI library
- TypeScript: Type safety
- Vite: Build tool
- CSS: Styling (no external UI libraries)
- LocalStorage: For data persistence
src/
├── assets/ # Static assets like images
├── components/ # React components
├── hooks/ # Custom React hooks
├── models/ # TypeScript interfaces and data
├── styles/ # CSS styles
├── utils/ # Utility functions
├── App.tsx # Main application component
└── main.tsx # Application entry point
- Node.js (v18 or higher)
- npm (v9 or higher)
-
Clone the repository
git clone https://github.com/yourusername/foodinator.git cd foodinator -
Install dependencies
npm install -
Start the development server
npm run dev -
Open your browser and navigate to
http://localhost:5173/foodinator/
npm run build
The built files will be in the dist directory.
This project is configured to deploy automatically to GitHub Pages using GitHub Actions.
- Push your code to GitHub
- The GitHub Actions workflow will attempt to automatically enable GitHub Pages for your repository
- If the workflow fails with a "Pages not enabled" error, you'll need to manually enable it:
- Go to your repository on GitHub
- Go to Settings > Pages
- Under "Source", select "GitHub Actions" as the source
- After GitHub Pages is enabled, re-run the failed workflow:
- Go to the Actions tab
- Click on the failed workflow run
- Click "Re-run all jobs" button
- Once the workflow completes successfully, your site will be available at
https://yourusername.github.io/foodinator/
Note: Make sure to update the homepage field in package.json with your actual GitHub username before pushing to GitHub.
You can also trigger a deployment manually:
- Go to your repository on GitHub
- Go to the Actions tab
- Select the "Deploy to GitHub Pages" workflow
- Click "Run workflow"
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Add ability to create and edit custom meals
- Implement meal categories and filtering
- Add nutritional information for meals and ingredients
- Implement user accounts for data syncing across devices
- Add meal rating system
- Implement meal suggestions based on past selections
MIT
