AIFR (Artificial Intelligence for Recipes) is a recipe recommendation platform powered by AI. Users can explore random recipes, search for meals, add favorites, and receive personalized suggestions based on their taste. The system is built using the ABP.io framework (DDD architecture) with Angular frontend and .NET backend.
-
📂 Recipe1M+ Dataset Integration
Recipe1M data (layer1, layer2, det_ingrs) is parsed using streaming and stored in a relational PostgreSQL database. -
🧱 Modular Architecture
Built with ABP.io’s layered architecture: Domain, Application, Entity Framework, and Angular. -
📸 Image Management
Recipes include images with a custom-built slider. A background job checks and removes broken image URLs. -
❤️ Favorites System
Users can add and view favorite recipes, stored via the ABP Identity system. -
🔍 Search & Discovery
Users can search by recipe title or ingredients, and explore random suggestions. -
🔐 Authorization
Role-based access control implemented in both backend and frontend.
-
Backend: .NET 9, ABP.io Framework, Entity Framework Core
-
Frontend: Angular 16 (ABP Angular template)
-
Database: PostgreSQL
-
Others: Serilog, Newtonsoft.Json, Swagger, Postman
| Table | Description |
|---|---|
| Recipes | Main recipe information |
| Ingredients | Raw ingredient strings |
| Instructions | Step-by-step instructions |
| RecipeImages | Recipe-related image URLs |
| IngredientDetails | Structured ingredients with units |
| UserFavoriteRecipes | User-specific favorites |
All tables are linked via foreign keys, designed for efficient querying.
-
Clone the repository:
git clone https://github.com/AlperenSamurlu/aifr.git cd aifr -
Install frontend libraries:
abp install-libs
-
Configure your database connection in:
-
AIFR.HttpApi.Host/appsettings.json -
AIFR.DbMigrator/appsettings.json
-
-
Run database migrations:
dotnet run --project AIFR.DbMigrator
-
Run the backend API:
dotnet run --project AIFR.HttpApi.Host
-
Run the Angular frontend:
cd angular npm install npm start
-
Do not use default certificate passwords in production. Always generate your own.
-
Check OpenIddict certificate guide for production configuration.