{"id":15152492,"url":"https://github.com/fmanimashaun/recipe-app","last_synced_at":"2026-02-12T10:31:49.855Z","repository":{"id":216133928,"uuid":"740541288","full_name":"fmanimashaun/recipe-app","owner":"fmanimashaun","description":"The Recipe app, built with Ruby on Rails and PostgreSQL, is a one-stop solution for managing recipes and ingredients. It allows users to track inventory, create recipes, generate shopping lists, and share recipes publicly. It simplifies and enhances the cooking experience by organizing the process efficiently","archived":false,"fork":false,"pushed_at":"2024-01-15T11:48:29.000Z","size":575,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"dev","last_synced_at":"2025-08-21T15:58:19.374Z","etag":null,"topics":["database-application","inventory-management","postgresql","rails-api","rails-app","rails-application","recipe-app","recipe-managament","ruby-on-rails","shopping-list","web-application"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fmanimashaun.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-08T14:57:29.000Z","updated_at":"2024-01-09T21:40:35.000Z","dependencies_parsed_at":"2024-09-21T23:30:55.508Z","dependency_job_id":"cd90a4f8-9faa-4f7a-80da-1d848907abd4","html_url":"https://github.com/fmanimashaun/recipe-app","commit_stats":{"total_commits":66,"total_committers":1,"mean_commits":66.0,"dds":0.0,"last_synced_commit":"5daf62ccf9aa28d07d9e5d92f3003a712ec7b98e"},"previous_names":["fmanimashaun/recipe-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fmanimashaun/recipe-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fmanimashaun%2Frecipe-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fmanimashaun%2Frecipe-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fmanimashaun%2Frecipe-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fmanimashaun%2Frecipe-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fmanimashaun","download_url":"https://codeload.github.com/fmanimashaun/recipe-app/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fmanimashaun%2Frecipe-app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29363153,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T08:51:36.827Z","status":"ssl_error","status_checked_at":"2026-02-12T08:51:26.849Z","response_time":55,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database-application","inventory-management","postgresql","rails-api","rails-app","rails-application","recipe-app","recipe-managament","ruby-on-rails","shopping-list","web-application"],"created_at":"2024-09-26T16:02:42.151Z","updated_at":"2026-02-12T10:31:49.838Z","avatar_url":"https://github.com/fmanimashaun.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Recipe App\n\n\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\n# 📗 Table of Contents\n\n- [📖 About the Project](#about-project)\n- [🛠 Built With](#built-with)\n  - [Tech Stack](#tech-stack)\n  - [Key Features](#key-features)\n  - [Screenshots](#screenshots)\n- [💻 Getting Started](#getting-started)\n  - [Prerequisites](#prerequisites)\n  - [Setup](#setup)\n  - [Usage](#usage)\n- [👥 Authors](#authors)\n- [🔭 Future Features](#future-features)\n- [🤝 Contributing](#contributing)\n- [⭐️ Show your support](#support)\n- [🙏 Acknowledgements](#acknowledgements)\n- [📝 License](#license)\n\n\u003c!-- PROJECT DESCRIPTION --\u003e\n\n## 📖 Recipe App \u003ca name=\"about-project\"\u003e\u003c/a\u003e\n\nThe **Recipe app** is a comprehensive solution for managing recipes, ingredients, and inventory, designed using Ruby on Rails with a PostgreSQL database. This fully functional application allows users to save ingredients, keep track of their inventory, create recipes, and generate shopping lists based on what they have and what they are missing from a recipe. An important feature of the app is its ability to make recipes public, enabling anyone to access them. This promotes the sharing of recipes, which is a vital part of cooking. The Recipe app is not just an application, but a cooking companion that enhances the cooking experience by organizing and simplifying the process.\n\n## 🛠 Built With \u003ca name=\"built-with\"\u003e\u003c/a\u003e\n\n\u003cdetails\u003e \u003csummary\u003eProgramming Language\u003c/summary\u003e \u003cul\u003e \u003cli\u003eRuby 3.2.2\u003c/li\u003e \u003c/ul\u003e \u003c/details\u003e\n\n\u003cdetails\u003e \u003csummary\u003eWeb Application Framework\u003c/summary\u003e \u003cul\u003e \u003cli\u003eRails 7.1.2\u003c/li\u003e \u003c/ul\u003e \u003c/details\u003e\n\n\u003cdetails\u003e \u003csummary\u003eDatabase\u003c/summary\u003e \u003cul\u003e \u003cli\u003ePostgreSQL (pg gem)\u003c/li\u003e \u003c/ul\u003e \u003c/details\u003e\n\n\u003cdetails\u003e \u003csummary\u003eWeb Server\u003c/summary\u003e \u003cul\u003e \u003cli\u003ePuma\u003c/li\u003e \u003c/ul\u003e \u003c/details\u003e\n\n\u003cdetails\u003e \u003csummary\u003eJavaScript Modules\u003c/summary\u003e \u003cul\u003e \u003cli\u003eESM Import Maps (importmap-rails gem)\u003c/li\u003e \u003c/ul\u003e \u003c/details\u003e\n\n\u003cdetails\u003e \u003csummary\u003eUI Styling\u003c/summary\u003e \u003cul\u003e \u003cli\u003eTailwind CSS (tailwindcss-rails gem)\u003c/li\u003e \u003c/ul\u003e \u003c/details\u003e\n\n\u003cdetails\u003e \u003csummary\u003eHotwire\u003c/summary\u003e \u003cul\u003e \u003cli\u003eTurbo (turbo-rails gem)\u003c/li\u003e \u003cli\u003eStimulus (stimulus-rails gem)\u003c/li\u003e \u003c/ul\u003e \u003c/details\u003e\n\n\u003cdetails\u003e \u003csummary\u003eAPIs\u003c/summary\u003e \u003cul\u003e \u003cli\u003eJbuilder\u003c/li\u003e \u003c/ul\u003e \u003c/details\u003e\n\n\u003cdetails\u003e \u003csummary\u003ePerformance Optimization\u003c/summary\u003e \u003cul\u003e \u003cli\u003eBootsnap\u003c/li\u003e \u003c/ul\u003e \u003c/details\u003e\n\n\u003cdetails\u003e \u003csummary\u003eTesting\u003c/summary\u003e \u003cul\u003e \u003cli\u003eDebug\u003c/li\u003e \u003cli\u003eFactory Bot (factory_bot_rails gem)\u003c/li\u003e \u003cli\u003eRSpec (rspec-rails gem)\u003c/li\u003e \u003cli\u003eCapybara\u003c/li\u003e \u003cli\u003eSelenium Webdriver\u003c/li\u003e \u003c/ul\u003e \u003c/details\u003e\n\n\u003cdetails\u003e \u003csummary\u003eCode Quality\u003c/summary\u003e \u003cul\u003e \u003cli\u003eRubocop\u003c/li\u003e \u003c/ul\u003e \u003c/details\u003e\n\n\u003cdetails\u003e \u003csummary\u003eDevelopment Tools\u003c/summary\u003e \u003cul\u003e \u003cli\u003eWeb Console (web-console gem)\u003c/li\u003e \u003c/ul\u003e \u003c/details\u003e\n\n\u003cdetails\u003e \u003csummary\u003ePagination\u003c/summary\u003e \u003cul\u003e \u003cli\u003eKaminari\u003c/li\u003e \u003c/ul\u003e \u003c/details\u003e\n\n\u003cdetails\u003e \u003csummary\u003eAuthentication\u003c/summary\u003e \u003cul\u003e \u003cli\u003eDevise (devise gem)\u003c/li\u003e \u003c/ul\u003e \u003c/details\u003e\n\n\u003cdetails\u003e \u003csummary\u003eAuthorization\u003c/summary\u003e \u003cul\u003e \u003cli\u003eCanCanCan (cancancan gem)\u003c/li\u003e \u003c/ul\u003e \u003c/details\u003e\n\n\u003c!-- Features --\u003e\n\n### Key Feature \u003ca name=\"key-features\"\u003e\u003c/a\u003e\n\n- [x] Rails Setup\n- [x] Data Model Setup\n- [x] Models Created for Recipes, Ingredients, and Inventory\n- [x] Class Association Implemented among Recipes, Ingredients, and Inventory\n- [x] Custom Methods Implemented to Fetch and Manipulate Data\n- [x] Models Data Validation Implemented for Recipe Creation and Ingredient Addition\n- [x] Models Unit Testing Applied\n- [x] Feature to Generate Shopping List Based on Inventory and Recipe Requirements\n- [x] Feature to Make Recipes Public for Sharing\n- [x] PostgreSQL Database Integration\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#readme-top\"\u003e👆\u003c/a\u003e\u003c/p\u003e\n\n### Screenshots \u003ca name=\"key-features\"\u003e\u003c/a\u003e\n\n\u003cimg src=\"screenshots/public_index-1.png\" alt=\"public index without login\" width=\"500\"/\u003e\n\u003cimg src=\"screenshots/public_index-2.png\" alt=\"public index with login\" width=\"500\"/\u003e\n\u003cimg src=\"screenshots/login.png\" alt=\"sign in page\" width=\"500\"/\u003e\n\u003cimg src=\"screenshots/signup.png\" alt=\"Sign up page\" width=\"500\"/\u003e\n\u003cimg src=\"screenshots/recipes.png\" alt=\"recipes list page\" width=\"500\"/\u003e\n\u003cimg src=\"screenshots/foods.png\" alt=\"food list page\" width=\"500\"/\u003e\n\u003cimg src=\"screenshots/shoppinglist.png\" alt=\"shopping list page\" width=\"500\"/\u003e\n\u003cimg src=\"screenshots/details-1.png\" alt=\"detail page with user\" width=\"500\"/\u003e\n\u003cimg src=\"screenshots/details-2.png\" alt=\"detail page without user\" width=\"500\"/\u003e\n\u003cimg src=\"screenshots/add-food.png\" alt=\"Add food\" width=\"500\"/\u003e\n\u003cimg src=\"screenshots/add-ingredient.png\" alt=\"Add ingredient\" width=\"500\"/\u003e\n\u003cimg src=\"screenshots/modify-ingredient.png\" alt=\"modify ingredient\" width=\"500\"/\u003e\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#readme-top\"\u003e👆\u003c/a\u003e\u003c/p\u003e\n\n\u003c!-- Getting Started --\u003e\n\n## 💻 Getting Started \u003ca name=\"getting-started\"\u003e\u003c/a\u003e\n\nTo get started with the project, follow the steps below.\n\n### Prerequisites\n\nTo run this project, ensure you have the following installed:\n\n- [Git](https://git-scm.com/)\n- [Ruby](https://www.ruby-lang.org/en/)\n- A code editor (e.g., [VsCode](https://code.visualstudio.com/))\n\n### Setup\n\nClone the repository to your local machine:\n\n```bash\ngit clone https://github.com/fmanimashaun/recipe-app.git\n\ncd recipe-app\n\nbundle install\n```\n\n## Database Setup\n\nThis application uses PostgreSQL as the database. Here are the steps to set it up:\n\n1. Ensure PostgreSQL is installed on your machine and running.\n\n2. Update the config/database.yml file with your PostgreSQL username and password in the default section.\n\n3. Create the database:\n\n```bash\nrails db:create\n```\n\n4. Run migrations to set up the database schema:\n\n```bash\nrails db:migrate\n```\n\n### Usage\n\nTo run the program, you can use a Ruby interpreter. For example, to interact with the code, use the following:\n\n1. Start the server\n\n```bash\nbin/dev\n```\n\n2. Access the Blog app in your web browser at `http://localhost:3000`.\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#readme-top\"\u003e👆\u003c/a\u003e\u003c/p\u003e\n\n\u003c!-- AUTHORS --\u003e\n\n## 👥 Authors \u003ca name=\"authors\"\u003e\u003c/a\u003e\n\n👤 **Fisayo Michael Animashaun**\n\n- GitHub: [@fmanimashaun](https://github.com/fmanimashaun)\n- Twitter: [@fmanimashaun](https://twitter.com/fmanimashaun)\n- LinkedIn: [Fisayo Michael Animashaun ](https://linkedin.com/in/fmanimashaun)\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#readme-top\"\u003e👆\u003c/a\u003e\u003c/p\u003e\n\n\u003c!-- FUTURE FEATURES --\u003e\n\n## 🔭 Future Features \u003ca name=\"future-features\"\u003e\u003c/a\u003e\n\n- implement database\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#readme-top\"\u003e👆\u003c/a\u003e\u003c/p\u003e\n\n\u003c!-- Contributing --\u003e\n\n## 🤝 Contributing \u003ca name=\"contributing\"\u003e\u003c/a\u003e\n\nContributions, issues, and feature requests are welcome!\n\nFeel free to check the issues page.\n\n[Issue Page](https://github.com/fmanimashaun/myblog/issues)\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#readme-top\"\u003e👆\u003c/a\u003e\u003c/p\u003e\n\n\u003c!-- Show your support --\u003e\n\n## ⭐️ Show your support \u003ca name=\"support\"\u003e\u003c/a\u003e\n\nIf you like this project leave a start for it.\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#readme-top\"\u003e👆\u003c/a\u003e\u003c/p\u003e\n\n\u003c!-- ACKNOWLEDGEMENTS --\u003e\n\n## 🙏 Acknowledgments \u003ca name=\"acknowledgements\"\u003e\u003c/a\u003e\n\nI'd like to thank Microverse for helping us in the journey to become a Fullstack developer.\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#readme-top\"\u003e👆\u003c/a\u003e\u003c/p\u003e\n\n\u003c!-- LICENSE --\u003e\n\n## 📝 License \u003ca name=\"license\"\u003e\u003c/a\u003e\n\nThis project is [MIT](./LICENSE) licensed.\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#readme-top\"\u003e👆\u003c/a\u003e\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffmanimashaun%2Frecipe-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffmanimashaun%2Frecipe-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffmanimashaun%2Frecipe-app/lists"}