An intelligent meal planning application with conversational AI assistant, built with modern microservices architecture.
- Real-time chat with streaming responses
- Intelligent agent powered by LangChain and OpenAI
- Contextual conversation management with persistence
- Specialized tools for recipe and meal plan management
- Create and edit detailed recipes
- Categorization by meal type (Breakfast, Lunch, Dinner, Snacks)
- Complete descriptions with ingredients, steps and chef tips
- Search and filtering by type or preferences
- Weekly meal organization
- Selection from personal recipe library
- Flexible management with easy add/remove
- Intuitive interface with swipe navigation
- Complete system for registration and login
- Personalized data per user
- Secure API with JWT tokens
- Robust validation with Zod schemas
MealPlanner/
├── apps/
│ ├── front/ # Vue.js 3 + TypeScript Interface
│ ├── api/ # Express REST API + TypeORM
│ ├── agent/ # LangChain + OpenAI AI Agent
│ └── db/ # PostgreSQL Configuration
└── packages/
├── shared-all/ # Shared Types & Services
└── shared-back/ # Backend Utilities
- Vue.js 3 with Composition API
- TypeScript for type safety
- Pinia for state management
- Vite for build and development
- Responsive interface with custom CSS
- Express.js with TypeScript
- TypeORM for PostgreSQL ORM
- JWT for authentication
- Zod validation on all endpoints
- Modular architecture by domain
- LangChain for AI orchestration
- OpenAI GPT (via OpenRouter) as LLM
- PostgreSQL for conversation persistence
- Specialized tools for each business action
- SSE streaming for real-time responses
- PostgreSQL 16 with Alpine Linux
- TypeORM migrations for schema management
- Optimized relational data
- Indexes for performance
- Docker for containerization
- Docker Compose for orchestration
- Configuration via environment variables
- Volumes for data persistence
- Node.js 18+
- pnpm 8+
- Docker and Docker Compose
- Clone the repository
git clone <repository-url>
cd MealPlanner- Install dependencies
pnpm install- Environment configuration
# Copy example files
cp apps/api/.env.example apps/api/.env
cp apps/agent/.env.example apps/agent/.env
# Edit variables (API keys, DB config, etc.)- Start the database
pnpm db:up- Launch development services
# Terminal 1 - API
pnpm dev:api
# Terminal 2 - AI Agent
pnpm dev:agent
# Terminal 3 - Frontend
pnpm dev:frontThe application will be available at http://localhost:5173
# Build all services
pnpm build
# Deploy with Docker Compose
docker compose -f docker-compose.prod.yml up -dpnpm dev:front- User interface (Vite dev server)pnpm dev:api- REST API (nodemon)pnpm dev:agent- AI Agent (tsx watch)pnpm dev:shared-all- Shared package (build watch)
pnpm db:up- Start PostgreSQLpnpm db:down- Stop PostgreSQLpnpm db:purge- Delete all datapnpm migration:generate- Generate a migrationpnpm migration:run- Run migrations
pnpm build- Build all servicespnpm preview- Frontend preview
- User profile with authentication
- One-to-many relationship with recipes and meals
- Recipe with name, description, types
- Belongs to a user
- Can be in multiple meals
- Planning item referencing a recipe
- Optional order for sequencing
- Belongs to a user
Breakfast- Morning mealLunch- Midday mealDinner- Evening mealSnacks- Light meals
POST /auth/register- Create accountPOST /auth/login- Login
GET /library- List recipesPOST /library- Create recipePUT /library/:id- Update recipeDELETE /library/:id- Delete recipe
GET /plan- List meal planPOST /plan/add- Add to planPOST /plan/remove- Remove from plan
POST /chat- Conversation with agent (SSE)
The agent uses several specialized tools:
read_library- Browse recipe libraryadd_or_update_recipe- Create/edit recipesremove_recipe- Delete a reciperead_plan- View current meal planadd_meal- Add recipe to planremove_meal- Remove item from plan
The agent understands business context and guides users in:
- Creating detailed recipes
- Organizing their meals
- Discovering their library
- Intelligent meal planning
- Recipe Creation - "Help me create a carbonara pasta recipe"
- Planning - "Add this recipe to my week"
- Organization - "Show me my dinner recipes"
- Management - "Remove meal number 3 from my plan"
- Modern microservices architecture
- Conversational AI integration
- TypeScript development patterns
- Frontend/backend state management
- Real-time streaming
- Secure authentication
- External integrations (nutrition APIs, shopping)
- AI recommendations based on history
- Recipe sharing between users
- Automatic generation of shopping lists
- Advanced planning (calories, allergens)
- Mobile application React Native/Flutter
- Microservices Architecture with inter-service communication
- Conversational Artificial Intelligence with LangChain
- Full-Stack TypeScript with type sharing
- Real-time streaming with Server-Sent Events
- Secure JWT Authentication
- Modern ORM with TypeORM and migrations
- Modern User Interface with Vue.js 3
- Multi-stage Docker containerization
- Monorepo with pnpm workspaces
- Data validation with Zod schemas
Built with TypeScript, Vue.js, Express.js, LangChain, and PostgreSQL