Skip to content

menu-ify/menu-ify-be-fastapi

Repository files navigation

Menuify Photo API

Deschutes Brewery GIF

Table of Contents

Project Overview

Menuify is a full-stack application created by Backend and Frontend students of Turing School of Software and Design. The Menuify app allows restaurant owners the ability to easily create mobile-friendly menus to increase user experience. Instead of scrolling through a difficult to navigate pdf of a menu, a restaurant diner can view menu items in our user friendly app. This repo is one of two REST API microservices created for the Frontend to implement. This REST API utilizes the Unsplash Photo Search API and returns 10 images for the keyword searched.


Learning Goals

Project Specs

  • Utilize Agile methodologies, Service Oriented Architecture, and Microservices to ensure deployment of a RESTful API with MVP

  • Develop quality communication between Frontend and Backend teams, including daily stand-ups, project retros, a project board, and a JSON contract

  • Gain experience using Continuous Integration tools to build and automate the deployment of features

  • Create API microservices to support application features for our end users

  • Learn new technologies and tools (Python with FastApi Framework)

Developer Setup

  1. Make sure to have Python 3.12.7 locally.
  2. Clone the repository
  3. cd into the root directory
  4. Create virtual environment python3 -m venv env
  5. Activate virtual environment source ./env/bin/activate
  6. Sign up for the free Unsplash photo API https://unsplash.com/developers add Menuify under Your apps. Scroll down to find your Access key
  7. Create a new file called .env in root directory and add your secret key as an api_key i.e. api_key=123445566
  8. To install requirements run: pip3 install -r requirements.txt
  9. To view endpoints locally run: uvicorn main:app --reload and navigate to url listed in terminal i.e. http://127.0.0.1:8000
  10. You can view the interactive docs by adding /docs to the url in step 5

Testing

To run the tests using Pytest, run the following commands. Results will show in the terminal.

  coverage run -m pytest
  coverage report -m 

To see a coverage report within your browser then run.

  coverage html 
  open htmlcov/index.html

Tech and Tools


Endpoint

Run in Postman

Request

Returns 10 photo links to photos of the keyword entered in the request

 GET /photos/{keyword}

JSON Response Example:

 {
    "results":
    [
      "photo_url",
      "photo_url",
      "photo_url",
      "...",
      "..."
    ]
 }

Contributors

Project Team

Emily Port
Gabe Nunez
Yuji Kosakowski

Project Manager

Heather Faerber

Advisor

Dara Rockwell

(back to top)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •