Skip to content

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

License

Notifications You must be signed in to change notification settings

fmanimashaun/recipe-app

Repository files navigation

Recipe App

📗 Table of Contents

📖 Recipe App

The 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.

🛠 Built With

Programming Language
  • Ruby 3.2.2
Web Application Framework
  • Rails 7.1.2
Database
  • PostgreSQL (pg gem)
Web Server
  • Puma
JavaScript Modules
  • ESM Import Maps (importmap-rails gem)
UI Styling
  • Tailwind CSS (tailwindcss-rails gem)
Hotwire
  • Turbo (turbo-rails gem)
  • Stimulus (stimulus-rails gem)
APIs
  • Jbuilder
Performance Optimization
  • Bootsnap
Testing
  • Debug
  • Factory Bot (factory_bot_rails gem)
  • RSpec (rspec-rails gem)
  • Capybara
  • Selenium Webdriver
Code Quality
  • Rubocop
Development Tools
  • Web Console (web-console gem)
Pagination
  • Kaminari
Authentication
  • Devise (devise gem)
Authorization
  • CanCanCan (cancancan gem)

Key Feature

  • Rails Setup
  • Data Model Setup
  • Models Created for Recipes, Ingredients, and Inventory
  • Class Association Implemented among Recipes, Ingredients, and Inventory
  • Custom Methods Implemented to Fetch and Manipulate Data
  • Models Data Validation Implemented for Recipe Creation and Ingredient Addition
  • Models Unit Testing Applied
  • Feature to Generate Shopping List Based on Inventory and Recipe Requirements
  • Feature to Make Recipes Public for Sharing
  • PostgreSQL Database Integration

👆

Screenshots

public index without login

public index with login

sign in page

Sign up page

recipes list page

food list page

shopping list page

detail page with user

detail page without user

Add food

Add ingredient

modify ingredient

👆

💻 Getting Started

To get started with the project, follow the steps below.

Prerequisites

To run this project, ensure you have the following installed:

Setup

Clone the repository to your local machine:

git clone https://github.com/fmanimashaun/recipe-app.git

cd recipe-app

bundle install

Database Setup

This application uses PostgreSQL as the database. Here are the steps to set it up:

  1. Ensure PostgreSQL is installed on your machine and running.

  2. Update the config/database.yml file with your PostgreSQL username and password in the default section.

  3. Create the database:

rails db:create
  1. Run migrations to set up the database schema:
rails db:migrate

Usage

To run the program, you can use a Ruby interpreter. For example, to interact with the code, use the following:

  1. Start the server
bin/dev
  1. Access the Blog app in your web browser at http://localhost:3000.

👆

👥 Authors

👤 Fisayo Michael Animashaun

👆

🔭 Future Features

  • implement database

👆

🤝 Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the issues page.

Issue Page

👆

⭐️ Show your support

If you like this project leave a start for it.

👆

🙏 Acknowledgments

I'd like to thank Microverse for helping us in the journey to become a Fullstack developer.

👆

📝 License

This project is MIT licensed.

👆

About

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

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published