Skip to content

AlperenSamurlu/AIFR

Repository files navigation

🧠 AIFR - AI-Powered Recipe Recommendation Platform

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.


🚀 Features

  • 📂 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.


🧰 Tech Stack

  • Backend: .NET 9, ABP.io Framework, Entity Framework Core

  • Frontend: Angular 16 (ABP Angular template)

  • Database: PostgreSQL

  • Others: Serilog, Newtonsoft.Json, Swagger, Postman


🗃️ Database Tables

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.


⚙️ Getting Started

Requirements

Setup

  1. Clone the repository:

    git clone https://github.com/AlperenSamurlu/aifr.git
    cd aifr
  2. Install frontend libraries:

    abp install-libs
  3. Configure your database connection in:

    • AIFR.HttpApi.Host/appsettings.json

    • AIFR.DbMigrator/appsettings.json

  4. Run database migrations:

    dotnet run --project AIFR.DbMigrator
  5. Run the backend API:

    dotnet run --project AIFR.HttpApi.Host
  6. Run the Angular frontend:

    cd angular
    npm install
    npm start

📄 Notes

  • Do not use default certificate passwords in production. Always generate your own.

  • Check OpenIddict certificate guide for production configuration.


📚 Resources

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published