A smart food ordering platform with an AI-powered nutritionist assistant
Report Bug
·
Request Feature
Smart Nutri Food Order is a web platform that allows users to browse restaurants and their menus, place food orders, and get personalized meal recommendations from an AI-powered nutritionist assistant.
The platform supports three types of users:
- Admin — manages the platform and adds restaurant managers
- Restaurant Manager — manages their restaurant's menu and dishes
- Customer — browses restaurants, places orders, and interacts with the smart assistant
The highlight of the platform is the AI nutritionist — a RAG-based model powered by OpenAI. Customers can describe their nutritional needs (calories, proteins, sugar limits, etc.) and the assistant recommends real dishes available on the platform. The knowledge base is enriched with local restaurant and food data (e.g. Novi Sad area), making recommendations contextually relevant.
Backend
Frontend
AI
The backend is built using .NET following the Clean Architecture pattern, organized into clearly separated layers:
📦 Solution
┣ 📂 Domain
┣ 📂 Application
┣ 📂 Infrastructure
┗ 📂 Web (API)
This structure ensures that business logic is fully decoupled from infrastructure concerns, making the codebase testable, maintainable, and easy to extend.
The frontend is an Angular SPA that communicates with the backend via REST API. It provides a seamless, dynamic user experience without full page reloads.
- .NET SDK (version 8 or later)
- Node.js & npm
- Angular CLI
- OpenAI API key
-
Clone the repository
git clone https://github.com/anasinik/smart-nutri-food-order.git cd smart-nutri-food-order -
Backend setup
cd backend/FoodOrderApi/src/FoodOrderApi.WebConfigure your connection string and OpenAI key in
appsettings.json:{ "AzureOpenAI": { "Endpoint": "https://your-resource.openai.azure.com/", "ApiKey": "your_azure_openai_api_key", "ModelName": "gpt-4o", "Deployment": "gpt-4o", "EmbeddingDeployment": "text-embedding-3-large", "ApiVersion": "2025-01-01-preview" } }Run the API:
dotnet run
-
Frontend setup
cd frontend npm install ng serve -
Open your browser at
http://localhost:4200
- Register or log in as a customer to browse restaurants and place orders
- Use the Smart Nutritionist chat to find meals that fit your dietary goals — just describe what you're looking for (e.g. "high protein, under 600 calories") and the assistant will suggest available dishes from real restaurants
- Admin users can manage restaurant managers through the admin panel
- Restaurant managers can add and update their menu items