🔗 Github repo

Rasoi

A social media for recipes 🍳.

Logo Source

Note: all of the specifications given below are not finalized, may change if required.

Note: running and setting up backend is complex, follow the README.md inside backend/ .

Folder Structure

  • backend: fastapi backend server, ml stuff and database seeding code.
  • docs: documentations like diagrams, progress report etc.
  • frontend: NextJs and Tailwind, Mobile app using React Native
  • res: random generated resources from web like icons, fonts etc (to be used in app and web both).
  • web: web only frontend code.

Features

  • Registration (Users can create accounts.They can log in to their account using emails and passwords).
  • Recommended recipes (based on a recommendation engine / most popular rating wise/user profile’s engagement).
  • Search for recipes through dish name / ingredients list / image of recipe.
  • Show recipe image, ratings and similar / related recipes.
  • Rating ,Comments.
  • Posts (like Recipe images).

Future Prospects

  • We will try to detect the ingredient name from ingredient’s image, if possible.
  • A mobile app, possibly in Flutter , React Native or even Kotlin (native android).
  • Adding related video tutorials in recipe details page, expert authored posts and blogs.
  • Reporting vulgar and offensive comments
  • Scalable image search solutions.
  • Better recommendation system.

Technologies

Backend

  • We developed a REST API. Templating (like PHP pages or JSP) isn’t a good option if we are planning for a mobile app. Also, a REST API in the backend with an interactive UI in the frontend gives better UX.
  • A python based backend (so that it will be easier to integrate ML features later).
  • We are using FastAPI , it has lot of features, fast and super simple to implement.
  • Uvicorn and nginx for production deployment.
  • A postgresql database. It is a widely used Open Source RDBMS and it has features like support for JSON and Array data type storage and querying.
  • We have also used the pgvector extension mainly for image search.
  • Using arrays, we can provide recipe search through ingredients and recipe recommendations.

ML / Dataset

Note : To make the DataSet we extract the ingredients part from Food.com and recipes from This Site. Some Indian recipes are also taken from Food.com and some Indian recipes are manually imported by our group members.

Frontend / UI

  • A social media website like instagram, X (twitter) is often used daily, for them a mobile app can be a better option. Our website will be used less frequently (similar to sites like StackOverflow), thus website is a better fit for frontend.
  • Following the trend, we are using NextJs and Tailwind for styling. Both of them have massive advantages over traditional web frameworks, like SEO and Image Optimization, small bundle size, multiple rendering techniques etc.
  • We are not using complex styles / components, because we have future plans to develop an app, possibly in React Native . React Native is a bit fragile, so the compromise.
  • We have used many libraries to provide a good user experience. Like: react-tag-input, react-toastify, react-dropzone etc.
  • This website helped us to decide theme colours and we are using the Itim font to match the context.

Applications

  • Cooking.
  • Learning / Education.
  • Social interaction.