Because eating well shouldn't require a Ph.D. in meal planning!
A deliciously intelligent meal planning and nutrition tracking application that brings together the power of modern web technologies to satisfy your hunger for organization.
MealGen is your personal kitchen assistant that helps you:
- 🥦 Master Your Ingredients - Track nutrients, costs, and never run out of essentials
- 🍳 Create Culinary Masterpieces - Build meal recipes with automatic nutrition calculation
- 📅 Plan Like a Pro Chef - Drag-and-drop meal scheduling that Gordon Ramsay would approve
- 💰 Budget Like a Boss - Keep food costs under control without sacrificing flavor
- 🏋️ Crush Your Nutrition Goals - Track macros and micros with beautiful visualizations
- Next.js - The secret sauce for our responsive UI
- React - For components that look good enough to eat
- TypeScript - Because we like our code like our recipes: error-free!
- Material UI - Giving our app that chef's kiss look and feel
- DnD Kit - Making meal planning as fun as playing with your food (but more productive)
- GraphQL Request - Fetching data faster than raiding the fridge
- Node.js with Express - The reliable sous chef of our operation
- Apollo Server - Serving up GraphQL queries piping hot
- MongoDB - Where all your delicious data gets stored
- GraphQL Compose - Mixing the perfect schema ingredients together
- JWT - Keeping your culinary secrets safe from prying eyes
Tip
Most of my challenges and learning experiences are documented in the wiki pages.
While they generally document the process of building the application, quotes marked with > [!NOTE] are my personal cooking adventures and problem-solving recipes!
The project is organized like a well-planned kitchen:
MealGen/
├── graduate_frontend/ # The beautiful dining room experience
├── graduate_backend/ # Where all the cooking magic happens
Want the full blueprint? Check out the Project Structure wiki page!
- Node.js (v16+) - Fresh and ready to go
- MongoDB - Either locally grown or cloud-harvested from Atlas
The easiest way to get cooking is to clone the repository and follow the instructions in our Setup and Installation wiki page.
🐳 Pro Tip: Docker makes setup as easy as instant ramen, but way more impressive! Details in the wiki.
- Security that's tighter than the lid on a jam jar
- Protected routes that keep uninvited guests out of your kitchen
- Create, update, and delete ingredients faster than you can chop an onion
- Track nutritional data more accurately than your fitness-obsessed friend
- Combine ingredients to create meals worthy of Instagram
- Watch as nutritional values calculate themselves (it's like magic, but it's math!)
- Create meal plans that would make Marie Kondo proud
- Drag-and-drop interface so satisfying it should be considered therapy
- Nutritional summaries that tell you exactly what you're putting in your body
- Development Notes - The story behind the scenes (with all the kitchen fires included)
- Learning Resources - The cookbook collection that made this project possible
Test Setup-and-Installation.md informationAdd yarn prettier to package.jsonAdd wiki pagesFinish all wiki pages
Update README.md with up to date infoSwitch .env files with dummy data and reissue api keysauth Page Error HandlingSort out last minute dnd bugs
- 💣 Data purging of old or innappropriate data for demo (so take-out stays cheap)
- 🎨 Refactor page renders for a more appetizing visual experience
- 💄 Implement styling to reduce hand-written CSS (because we prefer our CSS pre-cooked)
⚠️ Enhance error handling and logging on the frontend (for when things get spicy)- 🛡️ Add more aggressive MongoDB validation (no bad data in our kitchen!)
- 🧮 Implement automatic calculation for nutrition values (math should be automatic)
- 🔄 Create more consistent live updates (fresher than farm-to-table)
- 👯 Enable shared meal plans between users (because good food is meant to be shared)
Made with 💖, ☕, and occasional bouts of frustration
MealGen - Where technology meets gastronomy!