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

https://github.com/sayedshehata1/forkify

Forkify is a recipe web app that allows users to search, view, modify, bookmark and add recipes.
https://github.com/sayedshehata1/forkify

css html netlify npm sass

Last synced: 4 months ago
JSON representation

Forkify is a recipe web app that allows users to search, view, modify, bookmark and add recipes.

Awesome Lists containing this project

README

          

# Forkify

![HTML](https://img.shields.io/badge/HTML5-E34F26?style=for-the-badge&logo=html5&logoColor=white)
![CSS](https://img.shields.io/badge/CSS3-1572B6?style=for-the-badge&logo=css3&logoColor=white)
![Sass](https://img.shields.io/badge/SASS-hotpink.svg?style=for-the-badge&logo=SASS&logoColor=white)
![JS](https://img.shields.io/badge/JavaScript-F7DF1E?style=for-the-badge&logo=javascript&logoColor=black)
![NPM](https://img.shields.io/badge/NPM-%23000000.svg?style=for-the-badge&logo=npm&logoColor=white)
![Babel](https://img.shields.io/badge/Babel-F9DC3e?style=for-the-badge&logo=babel&logoColor=black)
![netlify](https://img.shields.io/badge/Netlify-00C7B7?style=for-the-badge&logo=netlify&logoColor=white)





Logo

Forkify


View Demo
·
Report Bug


Table of Contents



  1. About The Project



  2. Getting Started


  3. Contributing

  4. Acknowledgments

## About The Project

![Forkify preview](./src/img/preview.png)

Forkify is a recipe web app using the [Forkify API](https://forkify-api.herokuapp.com/v2) to allow users to search, view, modify, bookmark and add recipes.

- Available search queries : [Queries](https://forkify-api.herokuapp.com/phrases.html)

### Features

| User Stories | Features |
| -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Search for recipes |


  • functionality: input field to send request to API with searched keywords

  • Display results with pagination

  • Display recipe with cooking time, serving and ingredients

|
| Update the number of servings |
  • Change serving functionality: update all ingredients according ro current number of servings
|
| Bookmark recipes |
  • Bookmarking functionality: display list of all bookmarked recipes
|
| Create recipes |

  • Users can upload their own recipes

  • User recipes will automatically be bookmarked

  • User can only see their own recipes, not recipes from other users

|
| Access to bookmarks and recipes when leaving the app and coming back later |
  • Store bookmark data in the browser using "local storage"
|

(back to top)

---

### Built With

- [HTML](https://html.com/)
- [CSS](https://www.w3schools.com/css/)
- [SASS](https://www.npmjs.com/package/sass)
- [JavaScript](https://www.javascript.com/)
- [Parcel](https://www.npmjs.com/package/parcel)
- [Babel](https://babeljs.io/)
- [Forkify API](https://forkify-api.herokuapp.com/v2)
- Libraries
- [fractional](https://www.npmjs.com/package/fractional)

---

### Flowchart

flowchart

### Architecture

architecture

(back to top)

---

## Getting Started

This project require some prequesites and dependenscies to be installed, you can view it online using this [demo](https://forkify-sayedshehata.netlify.app/). or you can find the instructions below

> To get a local copy, follow these simple steps :

### Installation

1. Clone the repo
```sh
git clone https://github.com/SayedShehata1/Forkify.git
```
2. Go to project folder

```bash
cd forkify
```

3. install dependencies

```bash
npm install
```

4. Run start script

```bash
npm start
```

#### Tree structure

```
forkify
│ .gitignore
│ .prettierrc
│ index.html
│ package-lock.json
│ package.json
│ README.md

└───src
├───img
│ favicon.png
│ forkify-architecture-recipe-loading.png
│ forkify-flowchart.png
│ icons.svg
│ logo.png
│ preview.png

├───js
│ │ config.js
│ │ controller.js
│ │ helpers.js
│ │ model.js
│ │
│ └───views
│ addRecipeView.js
│ bookmarksView.js
│ paginationView.js
│ previewView.js
│ recipeView.js
│ resultsView.js
│ searchView.js
│ View.js

└───sass
main.scss
_base.scss
_components.scss
_header.scss
_preview.scss
_recipe.scss
_searchResults.scss
_upload.scss
```

(back to top)

## Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Don't forget to give the project a star! Thanks again!

1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

(back to top)

## Acknowledgments

- [Jonas schmedtmann](https://github.com/jonasschmedtmann)