An open API service indexing awesome lists of open source software.

https://github.com/yusufyusie/recipe_app

Recipe-App is a comprehensive application designed to streamline your culinary experience. It efficiently manages your recipes, ingredients, and inventory. With features like ingredient tracking, recipe creation, and automated shopping list generation based on inventory and recipe requirements, it simplifies meal planning and preparation.
https://github.com/yusufyusie/recipe_app

devise jwt postgresql ruby ruby-on-rails testing

Last synced: 3 months ago
JSON representation

Recipe-App is a comprehensive application designed to streamline your culinary experience. It efficiently manages your recipes, ingredients, and inventory. With features like ingredient tracking, recipe creation, and automated shopping list generation based on inventory and recipe requirements, it simplifies meal planning and preparation.

Awesome Lists containing this project

README

          

Recipe App

# 📗 Table of Contents

- [📖 About the Project](#about-project)
- [🛠 Built With](#built-with)
- [Tech Stack](#tech-stack)
- [Key Features](#key-features)
- [💻 Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [Setup](#setup)
- [Install](#install)
- [Usage](#usage)
- [Run tests](#run-tests)
- [👥 Authors](#authors)
- [🔭 Future Features](#future-features)
- [🤝 Contributing](#contributing)
- [⭐️ Show your support](#support)
- [🙏 Acknowledgements](#acknowledgements)
- [❓ FAQ (OPTIONAL)](#faq)
- [📝 License](#license)

# 📖 Recipe App

The **Recipe app** keeps track of all your recipes, ingredients, and inventory. It will allow you to save ingredients, keep track of what you have, create recipes, and generate a shopping list based on what you have and what you are missing from a recipe. Also, since sharing recipes is an important part of cooking the app should allow you to make them public so anyone can access them.

## 🛠 Built With

### Tech Stack

Client

Server

Database

### Key Features

- **read public recipes and their ingredients**
- **authentication and authorization**
- **add/delete foods**
- **add/delete recipes**
- **add/edit/delete ingredients**
- **make a recipe private/public**
- **generate shopping list**

(back to top)

## 🚀 Live Demo

- The Live Demo:

(back to top)

## 💻 Getting Started

To get a local copy up and running, follow these steps.

### Prerequisites

In order to run this project you need:

- GitHub account;
- Git installed on your OS;
- VSCode (or another code editor);
- modern browser (supporting HTML5 and CSS3) is highly recommended;
- [Ruby](https://www.ruby-lang.org/en/documentation/installation/) installed;
- [Ruby on Rails](https://rubyonrails.org/) installed and running. To get more information, read the [installation guide](https://guides.rubyonrails.org/).
- [PostgreSQL](https://www.postgresql.org/) installed and running
- [Node.js and npm](https://nodejs.org/) installed.

### Setup

Clone this repository to your desired folder:

Login to your GitHub account. Clone this repository to your desired folder:

> git clone https://github.com/yusufyusie/recipe_app.git
> cd my-folder

Setup database:
> sudo -u postgres createuser --interactive --pwprompt your_username
> sudo -u postgres createdb -O your_username your_database
(provide the username and password described in [config/database.yml](./config/database.yml))

### Install

Install the dependencies:
> gem install or bundle install
> npm install
> GitHub Actions
> Linters
> Rubocop
> Ruby On Rails

Create database:
> bin/rails db:create

(OPTIONAL) Fill the database with sample records:
> bin/rails db:seed

### Usage

To run the server:
> rails server
To run the project, execute the following command:

- Run `bundle install` in the terminal from the root folder of the project.
- Run `rails db:create` in the terminal from the root folder of the project.
- Run `rails db:migrate` in the terminal from the root folder of the project.
- Run the app with `rails c` in the terminal from the root folder of the project.
- Create a new user

Open [http://localhost:3000](http://localhost:3000) to view it in your browser.

### Run tests

To run tests, run the following command:
> rspec

You can also check linter errors by running these commands:
> rubocop

(OPTIONAL) For testing the confirmation emails:
> gem install mailcatcher

Open [http://localhost:1080](http://localhost:1080) to view it in your browser.

(back to top)

## 👥 Authors

👤 **Yesuf Fenta**

- GitHub: [@yusufyusie](https://github.com/yusufyusie)
- LinkedIn: [in/yusufyusie](https://www.linkedin.com/in/yusufyusie)
- Twitter: [@yusufyusiee](https://twitter.com/yusufyusiee)

👤 **Omet Omeni**

- GitHub: [@ometman](https://github.com/ometman)
- LinkedIn: [in/ometman](https://www.linkedin.com/in/ometman)

(back to top)

## 🔭 Future Features

- [ ] **add inventories list (with all CRUD implementation)**
- [ ] **add food list for a given inventory (with all CRUD implementation)**
- [ ] **add inventory shopping list, a shopping list, but only taking into consideration a chosen recipe and inventory**
- [ ] **improve UX/UI design**

(back to top)

## 🤝 Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the [issues page](../../issues/).

(back to top)

## ⭐️ Show your support

If you like this project just star it!

(back to top)

## 🙏 Acknowledgments

We would like to thank the Microverse program for the knowledge and skills we have acquired in Modules 1-5.

We are grateful to all previous project reviewers for their advice. Thanks to them we could build this app.

(back to top)

## 📝 License

This project is [MIT](./LICENSE) licensed.

(back to top)